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
|
@@ -1,1103 +1,1039 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OpenAI-compatible function schemas for the CLI's tool catalog.
|
|
3
|
-
*
|
|
4
|
-
* Purpose:
|
|
5
|
-
* Reasoning models on the Responses API (codex, o-series, gpt-5-pro) are
|
|
6
|
-
* RLHFed against the CLI's inline JSON-block protocol and need native
|
|
7
|
-
* function declarations to emit tool calls. The CLI owns these schemas
|
|
8
|
-
* (tools + their rendering are a CLI concern, never a backend concern) and
|
|
9
|
-
* passes them through the chat payload's `options.tools` field. The Azure
|
|
10
|
-
* backend forwards them verbatim to the Responses API and converts incoming
|
|
11
|
-
* function_call SSE events back into the CLI's inline JSON-block format.
|
|
12
|
-
*
|
|
13
|
-
* Shape convention:
|
|
14
|
-
* Each schema mirrors the `parsedData` shape expected by (a) the tool's
|
|
15
|
-
* `execute()` / `parseParameters()` in src/tools/*.js, and (b) the matching
|
|
16
|
-
* renderer in web-ui/src/components/toolRenderers/*.jsx. Keeping all three
|
|
17
|
-
* in sync here means specific renderers (TaskManagerRenderer, TerminalRenderer,
|
|
18
|
-
* etc.) render their native visualizations without the backend needing to
|
|
19
|
-
* know anything about UI.
|
|
20
|
-
*
|
|
21
|
-
* When you add a new tool to the CLI, add its schema here. The backend
|
|
22
|
-
* remains tool-agnostic.
|
|
23
|
-
*/
|
|
24
|
-
|
|
25
|
-
export const OPENAI_FUNCTION_SCHEMAS = [
|
|
26
|
-
// TaskManager — actions-array with flat task fields per action.
|
|
27
|
-
// Field names mirror the tool's system-prompt protocol (src/tools/taskManagerTool.js
|
|
28
|
-
// doc block) and the tool's runtime read-sites, so Responses-API models and
|
|
29
|
-
// chat-completion models produce identical payloads.
|
|
30
|
-
// create: {type, title, description?, priority?}
|
|
31
|
-
// update: {type, taskId, title?, description?, priority?, status?}
|
|
32
|
-
// complete|cancel: {type, taskId}
|
|
33
|
-
// list|clear: {type}
|
|
34
|
-
// One call = one task action. Parallel tool calls cover multi-task cases.
|
|
35
|
-
{
|
|
36
|
-
type: 'function',
|
|
37
|
-
name: 'taskmanager',
|
|
38
|
-
description: 'Create, update, complete, cancel, list, clear, or SEARCH tasks. `search` ranks tasks by semantic similarity (with substring fallback when embeddings are disabled). `backfill-search-index` rebuilds the vector index — run after enabling embeddings or after switching provider.',
|
|
39
|
-
parameters: {
|
|
40
|
-
type: 'object',
|
|
41
|
-
properties: {
|
|
42
|
-
actions: {
|
|
43
|
-
type: 'array',
|
|
44
|
-
description: 'Array with a single action object.',
|
|
45
|
-
items: {
|
|
46
|
-
type: 'object',
|
|
47
|
-
properties: {
|
|
48
|
-
type: { type: 'string', enum: ['create', 'update', 'complete', 'cancel', 'list', 'clear', 'search', 'backfill-search-index'] },
|
|
49
|
-
taskId: { type: 'string', description: 'Task id — required for update/complete/cancel. Omit for create/list/clear.' },
|
|
50
|
-
query: { type: 'string', description: 'Search query — required for search.' },
|
|
51
|
-
topK: { type: 'integer', description: 'Max ranked results for search. Default 10.' },
|
|
52
|
-
hybrid: { type: 'boolean', description: 'Mix substring scoring via RRF for search. Default true.' },
|
|
53
|
-
title: { type: 'string', description: 'Task title — required for create; optional for update.' },
|
|
54
|
-
description: { type: 'string' },
|
|
55
|
-
priority: { type: 'string', enum: ['high', 'medium', 'low'], description: 'Only set for create/update. Omit for list — do NOT use as a filter.' },
|
|
56
|
-
status: { type: 'string', enum: ['pending', 'in_progress', 'completed'], description: 'Only set for update. Omit for create (defaults to pending) and for list (returns all tasks).' },
|
|
57
|
-
},
|
|
58
|
-
required: ['type'],
|
|
59
|
-
},
|
|
60
|
-
minItems: 1,
|
|
61
|
-
maxItems: 1,
|
|
62
|
-
},
|
|
63
|
-
},
|
|
64
|
-
required: ['actions'],
|
|
65
|
-
},
|
|
66
|
-
},
|
|
67
|
-
// JobDone — actions-array with action+summary.
|
|
68
|
-
{
|
|
69
|
-
type: 'function',
|
|
70
|
-
name: 'jobdone',
|
|
71
|
-
description: 'Signal that all tasks are complete and the agent should stop.',
|
|
72
|
-
parameters: {
|
|
73
|
-
type: 'object',
|
|
74
|
-
properties: {
|
|
75
|
-
actions: {
|
|
76
|
-
type: 'array',
|
|
77
|
-
items: {
|
|
78
|
-
type: 'object',
|
|
79
|
-
properties: {
|
|
80
|
-
action: { type: 'string', enum: ['complete'] },
|
|
81
|
-
summary: { type: 'string', description: 'Brief summary of what was accomplished' },
|
|
82
|
-
},
|
|
83
|
-
required: ['action', 'summary'],
|
|
84
|
-
},
|
|
85
|
-
},
|
|
86
|
-
},
|
|
87
|
-
required: ['actions'],
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
// Filesystem — actions-array with per-action-typed field names (filePath /
|
|
91
|
-
// outputPath / sourcePath + destPath / directory). Aligned with the tool's
|
|
92
|
-
// system-prompt protocol (src/tools/fileSystemTool.js doc block) and the
|
|
93
|
-
// tool's validate/execute read-sites.
|
|
94
|
-
// read|delete|exists|stats: {type, filePath}
|
|
95
|
-
// write: {type, outputPath, content}
|
|
96
|
-
// append: {type, filePath, content}
|
|
97
|
-
// copy|move: {type, sourcePath, destPath}
|
|
98
|
-
// create-dir: {type, directory}
|
|
99
|
-
// list: {type, directory}
|
|
100
|
-
{
|
|
101
|
-
type: 'function',
|
|
102
|
-
name: 'filesystem',
|
|
103
|
-
description: 'Read, write, create, delete, copy/move, append, or list files and directories. Emit one action object per file operation (multiple allowed in the actions array).',
|
|
104
|
-
parameters: {
|
|
105
|
-
type: 'object',
|
|
106
|
-
properties: {
|
|
107
|
-
actions: {
|
|
108
|
-
type: 'array',
|
|
109
|
-
items: {
|
|
110
|
-
type: 'object',
|
|
111
|
-
properties: {
|
|
112
|
-
type: { type: 'string', enum: ['read', 'write', 'append', 'delete', 'copy', 'move', 'exists', 'stats', 'create-dir', 'list'], description: 'The filesystem operation to perform.' },
|
|
113
|
-
filePath: { type: 'string', description: 'Target file path. Required for: read, append, delete, exists, stats.' },
|
|
114
|
-
outputPath: { type: 'string', description: 'Destination file path. Required for: write.' },
|
|
115
|
-
sourcePath: { type: 'string', description: 'Source file path. Required for: copy, move.' },
|
|
116
|
-
destPath: { type: 'string', description: 'Destination file path. Required for: copy, move.' },
|
|
117
|
-
directory: { type: 'string', description: 'Directory path. Required for: create-dir, list.' },
|
|
118
|
-
content: { type: 'string', description: 'File content. Required for: write, append.' },
|
|
119
|
-
},
|
|
120
|
-
required: ['type'],
|
|
121
|
-
},
|
|
122
|
-
},
|
|
123
|
-
},
|
|
124
|
-
required: ['actions'],
|
|
125
|
-
},
|
|
126
|
-
},
|
|
127
|
-
// Terminal — actions-array. Tool supports run-command, change-directory,
|
|
128
|
-
// list-directory, create-directory, get-working-directory (see
|
|
129
|
-
// src/tools/terminalTool.js switch on action.type).
|
|
130
|
-
{
|
|
131
|
-
type: 'function',
|
|
132
|
-
name: 'terminal',
|
|
133
|
-
description: 'Run shell commands, change/list/create working directories, or report the current working directory.',
|
|
134
|
-
parameters: {
|
|
135
|
-
type: 'object',
|
|
136
|
-
properties: {
|
|
137
|
-
actions: {
|
|
138
|
-
type: 'array',
|
|
139
|
-
items: {
|
|
140
|
-
type: 'object',
|
|
141
|
-
properties: {
|
|
142
|
-
type: { type: 'string', enum: ['run-command', 'change-directory', 'list-directory', 'create-directory', 'get-working-directory'], description: 'The terminal operation to perform.' },
|
|
143
|
-
command: { type: 'string', description: 'Shell command to run. Required for: run-command.' },
|
|
144
|
-
directory: { type: 'string', description: 'Directory path. Required for: change-directory, list-directory, create-directory.' },
|
|
145
|
-
timeout: { type: 'number', description: 'Timeout in ms for run-command. Default 30000.' },
|
|
146
|
-
},
|
|
147
|
-
required: ['type'],
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
required: ['actions'],
|
|
152
|
-
},
|
|
153
|
-
},
|
|
154
|
-
// Seek — uses filePaths + searchTerms (matches tool's and renderer's flat shape).
|
|
155
|
-
{
|
|
156
|
-
type: 'function',
|
|
157
|
-
name: 'seek',
|
|
158
|
-
description: 'Search for text/patterns across project files (grep-like).',
|
|
159
|
-
parameters: {
|
|
160
|
-
type: 'object',
|
|
161
|
-
properties: {
|
|
162
|
-
searchTerms: {
|
|
163
|
-
type: 'array',
|
|
164
|
-
items: { type: 'string' },
|
|
165
|
-
description: 'Patterns to search for (regex supported)',
|
|
166
|
-
},
|
|
167
|
-
filePaths: {
|
|
168
|
-
type: 'array',
|
|
169
|
-
items: { type: 'string' },
|
|
170
|
-
description: 'Directories or files to search in (defaults to project root)',
|
|
171
|
-
},
|
|
172
|
-
},
|
|
173
|
-
required: ['searchTerms'],
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
// File-content-replace — files array with nested replacements.
|
|
177
|
-
// Field names mirror src/tools/fileContentReplaceTool.js runtime (file.path,
|
|
178
|
-
// replacement.oldContent/newContent) so the same payload shape works for
|
|
179
|
-
// both native function calls and the system-prompt inline protocol.
|
|
180
|
-
{
|
|
181
|
-
type: 'function',
|
|
182
|
-
name: 'file-content-replace',
|
|
183
|
-
description: 'Find and replace exact text spans within one or more files.',
|
|
184
|
-
parameters: {
|
|
185
|
-
type: 'object',
|
|
186
|
-
properties: {
|
|
187
|
-
files: {
|
|
188
|
-
type: 'array',
|
|
189
|
-
items: {
|
|
190
|
-
type: 'object',
|
|
191
|
-
properties: {
|
|
192
|
-
path: { type: 'string', description: 'File path relative to the project root.' },
|
|
193
|
-
replacements: {
|
|
194
|
-
type: 'array',
|
|
195
|
-
items: {
|
|
196
|
-
type: 'object',
|
|
197
|
-
properties: {
|
|
198
|
-
oldContent: { type: 'string', description: 'Exact text to find (whitespace-sensitive).' },
|
|
199
|
-
newContent: { type: 'string', description: 'Replacement text.' },
|
|
200
|
-
all: { type: 'boolean', description: 'Replace every occurrence. Default false (replace first only).' },
|
|
201
|
-
},
|
|
202
|
-
required: ['oldContent', 'newContent'],
|
|
203
|
-
},
|
|
204
|
-
},
|
|
205
|
-
},
|
|
206
|
-
required: ['path', 'replacements'],
|
|
207
|
-
},
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
required: ['files'],
|
|
211
|
-
},
|
|
212
|
-
},
|
|
213
|
-
// File-tree — flat params using `directory` + `maxDepth`.
|
|
214
|
-
{
|
|
215
|
-
type: 'function',
|
|
216
|
-
name: 'file-tree',
|
|
217
|
-
description: 'Get a tree-view of the project directory structure.',
|
|
218
|
-
parameters: {
|
|
219
|
-
type: 'object',
|
|
220
|
-
properties: {
|
|
221
|
-
directory: { type: 'string', description: 'Root directory (defaults to project root)' },
|
|
222
|
-
maxDepth: { type: 'number', description: 'Max depth (default 3)' },
|
|
223
|
-
showHidden: { type: 'boolean' },
|
|
224
|
-
},
|
|
225
|
-
},
|
|
226
|
-
},
|
|
227
|
-
// Memory — flat params (no actions array). Field names mirror the tool's
|
|
228
|
-
// validate/execute sites in src/tools/memoryTool.js.
|
|
229
|
-
//
|
|
230
|
-
// Memory-entry actions (user-authored notes):
|
|
231
|
-
// add: {action, title, content, description?}
|
|
232
|
-
// update: {action, id, title?, content?, description?}
|
|
233
|
-
// delete|read: {action, id}
|
|
234
|
-
// list: {action, level?}
|
|
235
|
-
// search: {action, query, level?}
|
|
236
|
-
// stats: {action}
|
|
237
|
-
//
|
|
238
|
-
// Conversation-archive action (read-only browse of the agent's own past
|
|
239
|
-
// conversation — survives compaction; see src/services/conversationQuery.js):
|
|
240
|
-
// reminisce: {action, mode, ...mode-specific params}
|
|
241
|
-
// overview — {mode}
|
|
242
|
-
// range — {mode, from?, to?, offset?, limit?, detail?}
|
|
243
|
-
// search — {mode, query, role?, maxResults?, cursor?, detail?}
|
|
244
|
-
// around — {mode, messageId, before?, after?, detail?}
|
|
245
|
-
// byTool — {mode, toolId?, limit?, cursor?}
|
|
246
|
-
// read — {mode, messageId, lineFrom?/lineTo? OR contentFrom?/contentTo?, detail?}
|
|
247
|
-
// Web — operation-router envelope. Top-level `operation` picks one of
|
|
248
|
-
// four sub-routines (search/fetch/interactive/authenticate). Interactive
|
|
249
|
-
// takes a nested `actions[]` array with its own per-action discriminator,
|
|
250
|
-
// but that surface is huge (~30 action types) — the schema captures the
|
|
251
|
-
// top-level shape and lets the model emit free-form objects inside
|
|
252
|
-
// `actions`. The tool's parseParameters is permissive about unknown
|
|
253
|
-
// keys, so this remains safe.
|
|
254
|
-
// search: {operation, query, engine?, maxResults?, stealthLevel?}
|
|
255
|
-
// fetch: {operation, url, formats?[], stealthLevel?}
|
|
256
|
-
// interactive: {operation, actions: [{action, ...args}], stealthLevel?,
|
|
257
|
-
// humanMode?, headless?}
|
|
258
|
-
// authenticate: {operation, siteId, loginUrl?, tabName?, stealthLevel?,
|
|
259
|
-
// usernameSelector?, passwordSelector?, submitSelector?,
|
|
260
|
-
// keepTabOpen?}
|
|
261
|
-
{
|
|
262
|
-
type: 'function',
|
|
263
|
-
name: 'web',
|
|
264
|
-
description: 'Search the web, fetch URL content, drive a real browser, or perform credentialed login. Pick the right operation: search→Google-like, fetch→static page text, interactive→stateful browser session, authenticate→OAuth/form login.',
|
|
265
|
-
parameters: {
|
|
266
|
-
type: 'object',
|
|
267
|
-
properties: {
|
|
268
|
-
operation: {
|
|
269
|
-
type: 'string',
|
|
270
|
-
enum: ['search', 'fetch', 'interactive', 'authenticate'],
|
|
271
|
-
description: 'Top-level routine. Pick exactly one.',
|
|
272
|
-
},
|
|
273
|
-
// search params
|
|
274
|
-
query: { type: 'string', description: 'Search query (operation=search).' },
|
|
275
|
-
engine: { type: 'string', description: 'Search engine — "duckduckgo" (default) or "google".' },
|
|
276
|
-
maxResults: { type: 'integer', description: 'Max search results (operation=search). Default 10.' },
|
|
277
|
-
// fetch params
|
|
278
|
-
url: { type: 'string', description: 'URL to fetch (operation=fetch).' },
|
|
279
|
-
formats: {
|
|
280
|
-
type: 'array',
|
|
281
|
-
items: { type: 'string', enum: ['title', 'text', 'links', 'html', 'console'] },
|
|
282
|
-
description: 'Output formats to extract (operation=fetch). Default [title,text].',
|
|
283
|
-
},
|
|
284
|
-
// interactive params
|
|
285
|
-
actions: {
|
|
286
|
-
type: 'array',
|
|
287
|
-
description: 'Browser action chain (operation=interactive). Each item: {action, ...args} — see tool description for the full action vocabulary (navigate, click, type, screenshot, wait-for, …).',
|
|
288
|
-
items: { type: 'object', additionalProperties: true },
|
|
289
|
-
},
|
|
290
|
-
tabName: { type: 'string', description: 'Tab identifier for stateful sessions (operation=interactive|authenticate).' },
|
|
291
|
-
humanMode: { type: 'boolean', description: 'Human-like timing for anti-detection (operation=interactive). Default true.' },
|
|
292
|
-
headless: { type: 'boolean', description: 'Run browser headless (operation=interactive). Default true unless stealthLevel="maximum".' },
|
|
293
|
-
// authenticate params
|
|
294
|
-
siteId: { type: 'string', description: 'Credential-vault site key (operation=authenticate).' },
|
|
295
|
-
loginUrl: { type: 'string', description: 'Custom login URL (operation=authenticate).' },
|
|
296
|
-
usernameSelector: { type: 'string', description: 'CSS selector for username field (operation=authenticate).' },
|
|
297
|
-
passwordSelector: { type: 'string', description: 'CSS selector for password field (operation=authenticate).' },
|
|
298
|
-
submitSelector: { type: 'string', description: 'CSS selector for submit button (operation=authenticate).' },
|
|
299
|
-
keepTabOpen: { type: 'boolean', description: 'Leave the authenticated tab open for follow-up browsing (operation=authenticate).' },
|
|
300
|
-
// shared
|
|
301
|
-
stealthLevel: {
|
|
302
|
-
type: 'string',
|
|
303
|
-
enum: ['standard', 'maximum'],
|
|
304
|
-
description: 'Anti-detection level. "standard" is headless; "maximum" opens a visible browser window with full stealth (slower).',
|
|
305
|
-
},
|
|
306
|
-
},
|
|
307
|
-
required: ['operation'],
|
|
308
|
-
},
|
|
309
|
-
},
|
|
310
|
-
// AgentCommunication — actions-array, 5 typed actions.
|
|
311
|
-
// get-available-agents: {type}
|
|
312
|
-
// send-message: {type, recipient, subject?, message, priority?, requiresReply?}
|
|
313
|
-
// reply-to-message: {type, messageId, message}
|
|
314
|
-
// get-unreplied-messages: {type}
|
|
315
|
-
// mark-conversation-ended: {type, conversationId, reason?}
|
|
316
|
-
{
|
|
317
|
-
type: 'function',
|
|
318
|
-
name: 'agentcommunication',
|
|
319
|
-
description: 'Send/receive messages between live agents, and find the right agent for a task. Prefer `find-agent` (semantic routing) when you know what kind of work you need done but not which agent; use `get-available-agents` for the full enumeration. `backfill-agents-index` rebuilds the routing index (run after agent CRUD activity or after switching embedding provider).',
|
|
320
|
-
parameters: {
|
|
321
|
-
type: 'object',
|
|
322
|
-
properties: {
|
|
323
|
-
actions: {
|
|
324
|
-
type: 'array',
|
|
325
|
-
items: {
|
|
326
|
-
type: 'object',
|
|
327
|
-
properties: {
|
|
328
|
-
type: {
|
|
329
|
-
type: 'string',
|
|
330
|
-
enum: ['get-available-agents', 'send-message', 'reply-to-message', 'get-unreplied-messages', 'mark-conversation-ended', 'find-agent', 'backfill-agents-index'],
|
|
331
|
-
},
|
|
332
|
-
recipient: { type: 'string', description: 'Full agent id (from get-available-agents or find-agent). Required for send-message.' },
|
|
333
|
-
subject: { type: 'string', description: 'Optional short subject for send-message.' },
|
|
334
|
-
message: { type: 'string', description: 'Message body. Required for send-message and reply-to-message.' },
|
|
335
|
-
priority: { type: 'string', enum: ['low', 'normal', 'high'], description: 'Send-message priority. Default normal.' },
|
|
336
|
-
requiresReply: { type: 'boolean', description: 'Send-message expects a reply. Default true.' },
|
|
337
|
-
messageId: { type: 'string', description: 'Message id to reply to (reply-to-message).' },
|
|
338
|
-
conversationId: { type: 'string', description: 'Conversation id to close (mark-conversation-ended).' },
|
|
339
|
-
query: { type: 'string', description: 'Natural-language description of the task / role for find-agent. e.g. "good at SQL migrations".' },
|
|
340
|
-
topK: { type: 'integer', description: 'Max ranked results for find-agent. Default 5.' },
|
|
341
|
-
hybrid: { type: 'boolean', description: 'For find-agent: mix substring scoring via RRF. Default true.' },
|
|
342
|
-
includeSelf: { type: 'boolean', description: 'For find-agent: include the requesting agent in results. Default false.' },
|
|
343
|
-
reason: { type: 'string', description: 'Optional close reason (mark-conversation-ended).' },
|
|
344
|
-
},
|
|
345
|
-
required: ['type'],
|
|
346
|
-
},
|
|
347
|
-
minItems: 1,
|
|
348
|
-
},
|
|
349
|
-
},
|
|
350
|
-
required: ['actions'],
|
|
351
|
-
},
|
|
352
|
-
},
|
|
353
|
-
// AgentDelay — flat params. One pause per call; chain via parallel tool calls.
|
|
354
|
-
// {duration, reason?}
|
|
355
|
-
{
|
|
356
|
-
type: 'function',
|
|
357
|
-
name: 'agentdelay',
|
|
358
|
-
description: 'Pause this agent for `duration` seconds. Use after long-running shell commands or while waiting on external processes — never to "think harder".',
|
|
359
|
-
parameters: {
|
|
360
|
-
type: 'object',
|
|
361
|
-
properties: {
|
|
362
|
-
duration: { type: 'integer', description: 'Seconds to pause. Bounded by the tool’s configured min/max range.' },
|
|
363
|
-
reason: { type: 'string', description: 'Optional human-readable reason (logged with the pause).' },
|
|
364
|
-
},
|
|
365
|
-
required: ['duration'],
|
|
366
|
-
},
|
|
367
|
-
},
|
|
368
|
-
// Help — flat params. List all tools OR fetch full docs for a specific one.
|
|
369
|
-
// list-all: {list: true}
|
|
370
|
-
// describe: {tool: "<toolId>"}
|
|
371
|
-
{
|
|
372
|
-
type: 'function',
|
|
373
|
-
name: 'help',
|
|
374
|
-
description: 'Fetch full documentation for a tool, or list every tool you have access to. Call this before invoking a tool for the first time if you’re unsure of its parameters.',
|
|
375
|
-
parameters: {
|
|
376
|
-
type: 'object',
|
|
377
|
-
properties: {
|
|
378
|
-
tool: { type: 'string', description: 'Tool id whose full docs you want — e.g. "filesystem", "terminal", "web".' },
|
|
379
|
-
list: { type: 'boolean', description: 'Set true to list every tool id with a one-line summary.' },
|
|
380
|
-
},
|
|
381
|
-
},
|
|
382
|
-
},
|
|
383
|
-
// UserPrompt — flat params: an optional context message and an array
|
|
384
|
-
// of question objects. Each option can be a plain string or a richer
|
|
385
|
-
// {id, label, description}. Agent execution PAUSES until the user
|
|
386
|
-
// responds — use sparingly and only for irreversible/ambiguous decisions.
|
|
387
|
-
// {message?, questions: [{id?, message, options?, allowFreeText?, allowWebSearch?, multiSelect?, required?}]}
|
|
388
|
-
{
|
|
389
|
-
type: 'function',
|
|
390
|
-
name: 'userprompt',
|
|
391
|
-
description: 'Ask the user a question and pause until they answer. Use ONLY when you genuinely cannot proceed without their input — never to confirm reversible work.',
|
|
392
|
-
parameters: {
|
|
393
|
-
type: 'object',
|
|
394
|
-
properties: {
|
|
395
|
-
message: { type: 'string', description: 'Optional context message shown above the questions.' },
|
|
396
|
-
questions: {
|
|
397
|
-
type: 'array',
|
|
398
|
-
minItems: 1,
|
|
399
|
-
items: {
|
|
400
|
-
type: 'object',
|
|
401
|
-
properties: {
|
|
402
|
-
id: { type: 'string', description: 'Stable question id. Auto-generated if omitted.' },
|
|
403
|
-
message: { type: 'string', description: 'The question text.' },
|
|
404
|
-
options: {
|
|
405
|
-
type: 'array',
|
|
406
|
-
description: 'Suggested answers. Each entry is a plain string OR an object {id, label, description}.',
|
|
407
|
-
items: {
|
|
408
|
-
oneOf: [
|
|
409
|
-
{ type: 'string' },
|
|
410
|
-
{
|
|
411
|
-
type: 'object',
|
|
412
|
-
properties: {
|
|
413
|
-
id: { type: 'string' },
|
|
414
|
-
label: { type: 'string' },
|
|
415
|
-
description: { type: 'string' },
|
|
416
|
-
},
|
|
417
|
-
required: ['label'],
|
|
418
|
-
},
|
|
419
|
-
],
|
|
420
|
-
},
|
|
421
|
-
},
|
|
422
|
-
allowFreeText: { type: 'boolean', description: 'Allow free-text response. Default true.' },
|
|
423
|
-
allowWebSearch: { type: 'boolean', description: 'Show a web-search hint icon. Default true.' },
|
|
424
|
-
multiSelect: { type: 'boolean', description: 'Allow multiple option selection. Default false.' },
|
|
425
|
-
required: { type: 'boolean', description: 'Answer required to continue. Default true.' },
|
|
426
|
-
},
|
|
427
|
-
required: ['message'],
|
|
428
|
-
},
|
|
429
|
-
},
|
|
430
|
-
},
|
|
431
|
-
required: ['questions'],
|
|
432
|
-
},
|
|
433
|
-
},
|
|
434
|
-
// PDF — actions-array; per-tool the inner discriminator is `action`
|
|
435
|
-
// (legacy shape; the runtime accepts both `type` and `action`).
|
|
436
|
-
// get-info: {action, filePath}
|
|
437
|
-
// read-pages: {action, filePath, startPage?, endPage?} 1-indexed; endPage exclusive; max 10 pages/call
|
|
438
|
-
// create-pdf: {action, outputPath, htmlContent, pageSize?, orientation?, margins?, ...}
|
|
439
|
-
{
|
|
440
|
-
type: 'function',
|
|
441
|
-
name: 'pdf',
|
|
442
|
-
description: 'Inspect, read, or create PDF files. Read max 10 pages per call to stay within token limits.',
|
|
443
|
-
parameters: {
|
|
444
|
-
type: 'object',
|
|
445
|
-
properties: {
|
|
446
|
-
actions: {
|
|
447
|
-
type: 'array',
|
|
448
|
-
items: {
|
|
449
|
-
type: 'object',
|
|
450
|
-
properties: {
|
|
451
|
-
action: { type: 'string', enum: ['get-info', 'read-pages', 'create-pdf'] },
|
|
452
|
-
filePath: { type: 'string', description: 'Source PDF path. Required for get-info and read-pages.' },
|
|
453
|
-
startPage: { type: 'integer', description: '1-indexed first page (read-pages). Default 1.' },
|
|
454
|
-
endPage: { type: 'integer', description: 'Exclusive last page (read-pages). Default startPage+10.' },
|
|
455
|
-
outputPath: { type: 'string', description: 'Output file path (create-pdf). Relative to project dir or absolute.' },
|
|
456
|
-
htmlContent: { type: 'string', description: 'Full HTML to render into the PDF (create-pdf).' },
|
|
457
|
-
pageSize: { type: 'string', enum: ['A3', 'A4', 'A5', 'Letter', 'Legal', 'Tabloid'], description: 'Page size for create-pdf. Default A4.' },
|
|
458
|
-
orientation: { type: 'string', enum: ['portrait', 'landscape'], description: 'Orientation for create-pdf. Default portrait.' },
|
|
459
|
-
margins: { type: 'object', description: 'CSS-unit margins {top, right, bottom, left}.', additionalProperties: { type: 'string' } },
|
|
460
|
-
printBackground: { type: 'boolean', description: 'Whether to print background colors/images (create-pdf). Default true.' },
|
|
461
|
-
displayHeaderFooter: { type: 'boolean', description: 'Show header/footer (create-pdf). Default false.' },
|
|
462
|
-
headerTemplate: { type: 'string', description: 'HTML template for the header (create-pdf).' },
|
|
463
|
-
footerTemplate: { type: 'string', description: 'HTML template for the footer (create-pdf).' },
|
|
464
|
-
},
|
|
465
|
-
required: ['action'],
|
|
466
|
-
},
|
|
467
|
-
minItems: 1,
|
|
468
|
-
},
|
|
469
|
-
},
|
|
470
|
-
required: ['actions'],
|
|
471
|
-
},
|
|
472
|
-
},
|
|
473
|
-
// Vision — flat params; one analyze/ask per call. Maintains sessions
|
|
474
|
-
// so follow-up questions reuse the uploaded image without re-sending.
|
|
475
|
-
// analyze: {action, imagePath, question, model?}
|
|
476
|
-
// ask: {action, sessionId, question}
|
|
477
|
-
// list-sessions: {action}
|
|
478
|
-
// close-session: {action, sessionId}
|
|
479
|
-
{
|
|
480
|
-
type: 'function',
|
|
481
|
-
name: 'vision',
|
|
482
|
-
description: 'Analyze an image with a natural-language question, then ask follow-ups in the same session without re-uploading. Session-based.',
|
|
483
|
-
parameters: {
|
|
484
|
-
type: 'object',
|
|
485
|
-
properties: {
|
|
486
|
-
action: { type: 'string', enum: ['analyze', 'ask', 'list-sessions', 'close-session'] },
|
|
487
|
-
imagePath: { type: 'string', description: 'Local path to the image (analyze).' },
|
|
488
|
-
question: { type: 'string', description: 'Natural-language question (analyze, ask).' },
|
|
489
|
-
sessionId: { type: 'string', description: 'Vision session id from a previous analyze (ask, close-session).' },
|
|
490
|
-
model: { type: 'string', description: 'Optional model override for analyze.' },
|
|
491
|
-
},
|
|
492
|
-
required: ['action'],
|
|
493
|
-
},
|
|
494
|
-
},
|
|
495
|
-
// Image-gen — flat params; one image per call.
|
|
496
|
-
// {prompt, outputPath?, outputType?, size?, model?, sourceImage?, transparency?}
|
|
497
|
-
{
|
|
498
|
-
type: 'function',
|
|
499
|
-
name: 'image-gen',
|
|
500
|
-
description: 'Generate or edit an image. WebP by default; force PNG/JPEG via outputPath extension or outputType. sourceImage lets you edit an existing file (background removal, style transfer, etc.).',
|
|
501
|
-
parameters: {
|
|
502
|
-
type: 'object',
|
|
503
|
-
properties: {
|
|
504
|
-
prompt: { type: 'string', description: 'Detailed description of the image OR edit instruction when sourceImage is provided.' },
|
|
505
|
-
outputPath: { type: 'string', description: 'Where to save the image. Extension picks the format (.webp/.png/.jpg).' },
|
|
506
|
-
outputType: { type: 'string', enum: ['webp', 'png', 'jpg', 'jpeg'], description: 'Explicit format. Used when outputPath has no extension.' },
|
|
507
|
-
size: { type: 'string', description: 'Image size, e.g. "1024x1024" or "1792x1024".' },
|
|
508
|
-
model: { type: 'string', description: 'Optional model override.' },
|
|
509
|
-
sourceImage: { type: 'string', description: 'Path to an existing image to edit instead of generating from scratch.' },
|
|
510
|
-
transparency: { type: 'boolean', description: 'Request a transparent background (WebP/PNG output).' },
|
|
511
|
-
},
|
|
512
|
-
required: ['prompt'],
|
|
513
|
-
},
|
|
514
|
-
},
|
|
515
|
-
// Video-gen — flat params; one video per call.
|
|
516
|
-
// {prompt, outputPath?, model?, duration?}
|
|
517
|
-
{
|
|
518
|
-
type: 'function',
|
|
519
|
-
name: 'video-gen',
|
|
520
|
-
description: 'Generate a short video clip from a text prompt. Provider-side files expire in 24h — set outputPath to keep a local copy.',
|
|
521
|
-
parameters: {
|
|
522
|
-
type: 'object',
|
|
523
|
-
properties: {
|
|
524
|
-
prompt: { type: 'string', description: 'Detailed scene description.' },
|
|
525
|
-
outputPath: { type: 'string', description: 'Local .mp4 path. Omit for a temp file that expires.' },
|
|
526
|
-
model: { type: 'string', description: 'Optional model override.' },
|
|
527
|
-
duration: { type: 'integer', description: 'Clip duration in seconds (model-dependent maximum).' },
|
|
528
|
-
},
|
|
529
|
-
required: ['prompt'],
|
|
530
|
-
},
|
|
531
|
-
},
|
|
532
|
-
// Skills — flat params with an `action` enum + per-action fields.
|
|
533
|
-
// Shape mirrors src/tools/skillsTool.js getParameterSchema().
|
|
534
|
-
{
|
|
535
|
-
type: 'function',
|
|
536
|
-
name: 'skills',
|
|
537
|
-
description: 'Browse and load reusable skill recipes from the agent\'s skill library. Use describe → read-section to load only the parts you need. `search` ranks skills by semantic similarity (falls back to substring when embeddings are off). `backfill-search-index` rebuilds the vector index — run after enabling embeddings.',
|
|
538
|
-
parameters: {
|
|
539
|
-
type: 'object',
|
|
540
|
-
properties: {
|
|
541
|
-
action: {
|
|
542
|
-
type: 'string',
|
|
543
|
-
enum: ['list', 'describe', 'read', 'read-section', 'read-file', 'create', 'update', 'delete', 'import', 'search', 'backfill-search-index'],
|
|
544
|
-
},
|
|
545
|
-
name: { type: 'string', description: 'Skill name in kebab-case. Required for describe/read/read-section/read-file/create/update/delete.' },
|
|
546
|
-
content: { type: 'string', description: 'Markdown body. Required for create.' },
|
|
547
|
-
section: { type: 'string', description: 'Section heading to read (read-section).' },
|
|
548
|
-
file: { type: 'string', description: 'Relative file path within the skill directory (read-file).' },
|
|
549
|
-
query: { type: 'string', description: 'Natural-language query for search.' },
|
|
550
|
-
topK: { type: 'integer', description: 'Max ranked results for search. Default 5.' },
|
|
551
|
-
hybrid: { type: 'boolean', description: 'Mix substring scoring via RRF for search. Default true.' },
|
|
552
|
-
source: { type: 'string', description: 'Source file or directory path (import).' },
|
|
553
|
-
files: {
|
|
554
|
-
type: 'array',
|
|
555
|
-
items: {
|
|
556
|
-
type: 'object',
|
|
557
|
-
properties: {
|
|
558
|
-
path: { type: 'string' },
|
|
559
|
-
content: { type: 'string' },
|
|
560
|
-
},
|
|
561
|
-
required: ['path', 'content'],
|
|
562
|
-
},
|
|
563
|
-
description: 'Optional supporting files (create/update).',
|
|
564
|
-
},
|
|
565
|
-
},
|
|
566
|
-
required: ['action'],
|
|
567
|
-
},
|
|
568
|
-
},
|
|
569
|
-
// Code-map — actions-array with `type` discriminator.
|
|
570
|
-
// skeleton: {type, path, level?, includeImports?}
|
|
571
|
-
// read-range: {type, filePath, startLine, endLine}
|
|
572
|
-
{
|
|
573
|
-
type: 'function',
|
|
574
|
-
name: 'code-map',
|
|
575
|
-
description: 'Explore code structure without reading whole files. Two-step: skeleton gives signatures with line numbers; read-range pulls the exact span. Batches both actions in one call.',
|
|
576
|
-
parameters: {
|
|
577
|
-
type: 'object',
|
|
578
|
-
properties: {
|
|
579
|
-
actions: {
|
|
580
|
-
type: 'array',
|
|
581
|
-
items: {
|
|
582
|
-
type: 'object',
|
|
583
|
-
properties: {
|
|
584
|
-
type: { type: 'string', enum: ['skeleton', 'read-range'] },
|
|
585
|
-
path: { type: 'string', description: 'File or directory to scan (skeleton).' },
|
|
586
|
-
level: { type: 'string', enum: ['A.0', 'A.1', 'B.0', 'B.1'], description: 'Skeleton detail level. A=public only, B=all; .0=signatures only, .1=+docstrings. Default B.0.' },
|
|
587
|
-
includeImports: { type: 'boolean', description: 'Include import statements in skeleton output. Default false.' },
|
|
588
|
-
filePath: { type: 'string', description: 'File to read a range from (read-range).' },
|
|
589
|
-
startLine: { type: 'integer', description: '1-indexed first line (read-range).' },
|
|
590
|
-
endLine: { type: 'integer', description: '1-indexed last line, inclusive (read-range).' },
|
|
591
|
-
},
|
|
592
|
-
required: ['type'],
|
|
593
|
-
},
|
|
594
|
-
minItems: 1,
|
|
595
|
-
},
|
|
596
|
-
},
|
|
597
|
-
required: ['actions'],
|
|
598
|
-
},
|
|
599
|
-
},
|
|
600
|
-
// Office — actions-array with dot-namespaced `type` ({family.verb}).
|
|
601
|
-
// Family is one of doc / sheet / pres. Verb is create / read / info.
|
|
602
|
-
// Content shape varies per type; see src/tools/officeTool.js getDescription().
|
|
603
|
-
{
|
|
604
|
-
type: 'function',
|
|
605
|
-
name: 'office',
|
|
606
|
-
description: 'Create or read Word (.docx), Excel (.xlsx), and PowerPoint (.pptx) files. Type is "family.verb" — e.g. "doc.create", "sheet.read", "pres.info".',
|
|
607
|
-
parameters: {
|
|
608
|
-
type: 'object',
|
|
609
|
-
properties: {
|
|
610
|
-
actions: {
|
|
611
|
-
type: 'array',
|
|
612
|
-
items: {
|
|
613
|
-
type: 'object',
|
|
614
|
-
properties: {
|
|
615
|
-
type: {
|
|
616
|
-
type: 'string',
|
|
617
|
-
enum: ['doc.create', 'doc.read', 'doc.info', 'sheet.create', 'sheet.read', 'sheet.info', 'pres.create', 'pres.info'],
|
|
618
|
-
},
|
|
619
|
-
outputPath: { type: 'string', description: 'Destination path for *.create actions. Extension is auto-appended if missing.' },
|
|
620
|
-
filePath: { type: 'string', description: 'Source path for *.read and *.info actions.' },
|
|
621
|
-
content: { type: 'object', description: 'Family-specific document model — see the office tool description for doc/sheet/pres content shapes.', additionalProperties: true },
|
|
622
|
-
format: { type: 'string', enum: ['text', 'html'], description: 'Output format for doc.read. Default text.' },
|
|
623
|
-
sheetName: { type: 'string', description: 'Sheet name to read (sheet.read). Defaults to first sheet.' },
|
|
624
|
-
startRow: { type: 'integer', description: 'First row, 1-indexed (sheet.read). Default 1.' },
|
|
625
|
-
endRow: { type: 'integer', description: 'Last row, 1-indexed inclusive (sheet.read).' },
|
|
626
|
-
includeFormulas: { type: 'boolean', description: 'Return formulas instead of values (sheet.read).' },
|
|
627
|
-
},
|
|
628
|
-
required: ['type'],
|
|
629
|
-
},
|
|
630
|
-
minItems: 1,
|
|
631
|
-
},
|
|
632
|
-
},
|
|
633
|
-
required: ['actions'],
|
|
634
|
-
},
|
|
635
|
-
},
|
|
636
|
-
// Visual-editor — flat params; one action per call. Drives the live
|
|
637
|
-
// visual editor UI (element selection, app navigation, server mgmt).
|
|
638
|
-
// {action, url?, selector?, mode?, projectRoot?}
|
|
639
|
-
{
|
|
640
|
-
type: 'function',
|
|
641
|
-
name: 'visual-editor',
|
|
642
|
-
description: 'Drive the visual editor: pick elements on a live page, navigate the embedded preview, start/stop a dev server, switch select vs preview mode.',
|
|
643
|
-
parameters: {
|
|
644
|
-
type: 'object',
|
|
645
|
-
properties: {
|
|
646
|
-
action: {
|
|
647
|
-
type: 'string',
|
|
648
|
-
enum: [
|
|
649
|
-
'get-context', 'set-app-url', 'get-status', 'clear-context',
|
|
650
|
-
'start-server', 'serve-static', 'detect-project', 'open-editor',
|
|
651
|
-
'highlight', 'scroll-to', 'get-source', 'reload', 'set-mode',
|
|
652
|
-
],
|
|
653
|
-
},
|
|
654
|
-
url: { type: 'string', description: 'Target URL (set-app-url, open-editor).' },
|
|
655
|
-
selector: { type: 'string', description: 'CSS selector (highlight, scroll-to, get-source).' },
|
|
656
|
-
mode: { type: 'string', enum: ['select', 'preview'], description: 'Interaction mode (set-mode).' },
|
|
657
|
-
projectRoot: { type: 'string', description: 'Project root for start-server / serve-static / detect-project.' },
|
|
658
|
-
},
|
|
659
|
-
required: ['action'],
|
|
660
|
-
},
|
|
661
|
-
},
|
|
662
|
-
// WhatsApp — flat params, mirrors the tool's getParameterSchema() exactly.
|
|
663
|
-
// READ-ONLY surface: no message sending.
|
|
664
|
-
// {action, chatId?, messageId?, searchTerm?, chatIds?, filter?, type?, page?, pageSize?, unreadOnly?, limit?, before?, after?}
|
|
665
|
-
{
|
|
666
|
-
type: 'function',
|
|
667
|
-
name: 'whatsapp',
|
|
668
|
-
description: 'Read-only access to the user\'s linked WhatsApp account (list chats, fetch messages, search, download media). No send capability.',
|
|
669
|
-
parameters: {
|
|
670
|
-
type: 'object',
|
|
671
|
-
properties: {
|
|
672
|
-
action: { type: 'string', enum: ['list-chats', 'get-messages', 'search', 'chat-info', 'get-media', 'status'] },
|
|
673
|
-
chatId: { type: 'string', description: 'WhatsApp chat id (get-messages, chat-info, get-media).' },
|
|
674
|
-
messageId: { type: 'string', description: 'Message id with attached media (get-media).' },
|
|
675
|
-
searchTerm: { type: 'string', description: 'Full-text search query (search).' },
|
|
676
|
-
chatIds: { type: 'array', items: { type: 'string' }, description: 'Restrict search to specific chats.' },
|
|
677
|
-
filter: { type: 'string', description: 'List-chats free-text filter (matches chat name).' },
|
|
678
|
-
type: { type: 'string', enum: ['all', 'group', 'individual'], description: 'Filter list-chats by chat type.' },
|
|
679
|
-
page: { type: 'integer', description: 'List-chats pagination (1-indexed).' },
|
|
680
|
-
pageSize: { type: 'integer', description: 'List-chats page size.' },
|
|
681
|
-
unreadOnly: { type: 'boolean', description: 'List-chats: only chats with unread messages.' },
|
|
682
|
-
limit: { type: 'integer', description: 'Get-messages max count.' },
|
|
683
|
-
before: { type: 'string', description: 'Get-messages cursor: messages before this id.' },
|
|
684
|
-
after: { type: 'string', description: 'Get-messages cursor: messages after this id.' },
|
|
685
|
-
},
|
|
686
|
-
required: ['action'],
|
|
687
|
-
},
|
|
688
|
-
},
|
|
689
|
-
// Memory — actions-array (canonical plural shape, matches filesystem /
|
|
690
|
-
// terminal / taskmanager). Supports batching multiple ops in one
|
|
691
|
-
// tool call: e.g. read three memories at once, or list+search in
|
|
692
|
-
// the same turn. Singular {action, ...} is still accepted by the
|
|
693
|
-
// runtime as backward-compat but the schema teaches plural.
|
|
694
|
-
{
|
|
695
|
-
type: 'function',
|
|
696
|
-
name: 'memory',
|
|
697
|
-
description: 'Store and retrieve persistent memories across sessions, semantic-search them (when embeddings are enabled — gracefully falls back to substring otherwise), and browse your own pre-compaction conversation archive via the `reminisce` action. Pack multiple operations into one call.',
|
|
698
|
-
parameters: {
|
|
699
|
-
type: 'object',
|
|
700
|
-
properties: {
|
|
701
|
-
actions: {
|
|
702
|
-
type: 'array',
|
|
703
|
-
items: {
|
|
704
|
-
type: 'object',
|
|
705
|
-
properties: {
|
|
706
|
-
type: { type: 'string', enum: ['add', 'update', 'append', 'delete', 'read', 'list', 'search', 'semantic-search', 'backfill-embeddings', 'reminisce-backfill-embeddings', 'forget-stale', 'publish-to-team', 'search-team', 'unpublish-from-team', 'stats', 'reminisce'], description: 'The memory operation to perform. `semantic-search` uses embeddings over declared memories. `backfill-embeddings` rebuilds the memory index. `reminisce-backfill-embeddings` rebuilds the conversation-archive index. `forget-stale` deletes memories older than ageDays. `publish-to-team` copies an existing memory into a team\'s shared pool (requires team membership). `search-team` semantic-searches a team pool. `unpublish-from-team` removes from a team pool.' },
|
|
707
|
-
id: { type: 'string', description: 'Memory id. Required for: update, append, delete, read (of memory entries).' },
|
|
708
|
-
title: { type: 'string', description: 'Short title. Required for: add. Optional for: update.' },
|
|
709
|
-
content: { type: 'string', description: 'Full memory content. Required for: add, append. Optional for: update.' },
|
|
710
|
-
description: { type: 'string', description: 'Short summary. Optional for: add, update.' },
|
|
711
|
-
query: { type: 'string', description: 'Search query. Required for: search, semantic-search, reminisce search.' },
|
|
712
|
-
topK: { type: 'integer', description: 'Max ranked results for semantic-search. Default 10. Positive integer.' },
|
|
713
|
-
hybrid: { type: 'boolean', description: 'For semantic-search: mix substring scoring via Reciprocal Rank Fusion. Default true — preserves exact-match precision while adding paraphrase recall.' },
|
|
714
|
-
ageDays: { type: 'number', description: 'Age threshold for forget-stale. Default 90. Memories older than this become candidates for deletion.' },
|
|
715
|
-
dryRun: { type: 'boolean', description: 'For forget-stale: preview candidates without deleting. Default false.' },
|
|
716
|
-
includePlans: { type: 'boolean', description: 'For forget-stale: include plan/* memories. Default false (they\'re the active working plan).' },
|
|
717
|
-
teamId: { type: 'string', description: 'Team identifier — required for publish-to-team, search-team, unpublish-from-team. Caller must be a member of the team.' },
|
|
718
|
-
level: { type: 'string', enum: ['titles', 'descriptions', 'full'], description: 'Detail level for memory list/search output.' },
|
|
719
|
-
|
|
720
|
-
// ── reminisce-specific params ─────────────────────────
|
|
721
|
-
mode: { type: 'string', enum: ['overview', 'range', 'search', 'semantic-search', 'around', 'byTool', 'read'], description: 'Reminisce sub-mode. Required when type="reminisce". `semantic-search` ranks archived messages by embedding similarity to `query` (hybrid: semantic + substring via RRF when embeddings are enabled; falls back to substring `search` when disabled).' },
|
|
722
|
-
messageId: { type: 'string', description: 'Stable pointer into the conversation archive (reminisce around/read).' },
|
|
723
|
-
from: { type: 'string', description: 'ISO timestamp lower bound (reminisce range).' },
|
|
724
|
-
to: { type: 'string', description: 'ISO timestamp upper bound (reminisce range).' },
|
|
725
|
-
offset: { type: 'integer', description: 'Pagination offset (reminisce range).' },
|
|
726
|
-
limit: { type: 'integer', description: 'Max entries returned (reminisce range/byTool). 1–100.' },
|
|
727
|
-
maxResults: { type: 'integer', description: 'Max search matches returned (reminisce search). 1–50.' },
|
|
728
|
-
role: { type: 'string', enum: ['user', 'assistant', 'system'], description: 'Filter by message role (reminisce search).' },
|
|
729
|
-
cursor: { type: 'string', description: 'Opaque pagination cursor from a previous reminisce search/byTool response.' },
|
|
730
|
-
toolId: { type: 'string', description: 'Filter by toolId (reminisce byTool).' },
|
|
731
|
-
before: { type: 'integer', description: 'Number of MESSAGES before the target to include (reminisce around). 0–20.' },
|
|
732
|
-
after: { type: 'integer', description: 'Number of MESSAGES after the target to include (reminisce around). 0–20.' },
|
|
733
|
-
lineFrom: { type: 'integer', description: 'First line to read (reminisce read).' },
|
|
734
|
-
lineTo: { type: 'integer', description: 'Last line to read (reminisce read). Window capped at 500 lines.' },
|
|
735
|
-
contentFrom: { type: 'integer', description: 'First character offset (reminisce read).' },
|
|
736
|
-
contentTo: { type: 'integer', description: 'Last character offset (reminisce read). Window capped at 16000 chars.' },
|
|
737
|
-
detail: { type: 'string', enum: ['default', 'full'], description: 'Return shape for reminisce results.' },
|
|
738
|
-
},
|
|
739
|
-
required: ['type'],
|
|
740
|
-
},
|
|
741
|
-
},
|
|
742
|
-
},
|
|
743
|
-
required: ['actions'],
|
|
744
|
-
},
|
|
745
|
-
},
|
|
746
|
-
// Composio — third-party integration hub (~250 apps). actions-array with
|
|
747
|
-
// type discriminator. One operation per call to keep the OAuth + execute
|
|
748
|
-
// round-trips traceable per tool invocation.
|
|
749
|
-
{
|
|
750
|
-
type: 'function',
|
|
751
|
-
name: 'composio',
|
|
752
|
-
description: 'Third-party integration hub: connect to apps like Gmail, Slack, GitHub, Linear, Notion, Drive, Sheets, Calendar via Composio. Prefer `find-action` (semantic search across the whole catalog) when you don\'t already know the slug — it returns ranked candidates with their inputSchemas attached. Use `list-toolkits` / `list-tools` only when you need the full enumeration. `backfill-actions-index` builds the search index (run it once after enabling embeddings or after Composio refreshes its catalog).',
|
|
753
|
-
parameters: {
|
|
754
|
-
type: 'object',
|
|
755
|
-
properties: {
|
|
756
|
-
actions: {
|
|
757
|
-
type: 'array',
|
|
758
|
-
description: 'Array with a single action object.',
|
|
759
|
-
items: {
|
|
760
|
-
type: 'object',
|
|
761
|
-
properties: {
|
|
762
|
-
type: { type: 'string', enum: ['list-toolkits', 'list-tools', 'connect', 'connection-status', 'execute', 'find-action', 'backfill-actions-index'] },
|
|
763
|
-
toolkitSlug: { type: 'string', description: 'Toolkit slug — required for list-tools, connect, connection-status, execute. Optional for find-action (narrows the search to one toolkit). e.g. "github", "slack".' },
|
|
764
|
-
actionSlug: { type: 'string', description: 'Composio action slug — required for execute. e.g. "GITHUB_CREATE_AN_ISSUE".' },
|
|
765
|
-
arguments: { type: 'object', additionalProperties: true, description: 'Arguments for execute, matching the action\'s inputSchema (discover via list-tools or find-action).' },
|
|
766
|
-
query: { type: 'string', description: 'Natural-language query for find-action. e.g. "send a DM in Slack", "open a GitHub issue".' },
|
|
767
|
-
topK: { type: 'integer', description: 'Max ranked results for find-action. Default 10. Positive integer.' },
|
|
768
|
-
hybrid: { type: 'boolean', description: 'For find-action: mix substring scoring via Reciprocal Rank Fusion. Default true.' },
|
|
769
|
-
},
|
|
770
|
-
required: ['type'],
|
|
771
|
-
},
|
|
772
|
-
minItems: 1,
|
|
773
|
-
maxItems: 1,
|
|
774
|
-
},
|
|
775
|
-
},
|
|
776
|
-
required: ['actions'],
|
|
777
|
-
},
|
|
778
|
-
},
|
|
779
|
-
// PlatformControl — control Loxia platform features (schedules, agents,
|
|
780
|
-
// teams, flows). Wide param union; per-action requirements are validated
|
|
781
|
-
// server-side. Call list-capabilities first to discover this agent's
|
|
782
|
-
// permission level for each feature.
|
|
783
|
-
{
|
|
784
|
-
type: 'function',
|
|
785
|
-
name: 'platformcontrol',
|
|
786
|
-
description: 'Control Loxia platform features: scheduled tasks, agents, teams, and flows (CRUD + execute). Per-feature permission applies. Call list-capabilities to discover what this agent can do.',
|
|
787
|
-
parameters: {
|
|
788
|
-
type: 'object',
|
|
789
|
-
properties: {
|
|
790
|
-
actions: {
|
|
791
|
-
type: 'array',
|
|
792
|
-
description: 'Array with a single action object.',
|
|
793
|
-
items: {
|
|
794
|
-
type: 'object',
|
|
795
|
-
properties: {
|
|
796
|
-
type: {
|
|
797
|
-
type: 'string',
|
|
798
|
-
enum: [
|
|
799
|
-
'list-capabilities',
|
|
800
|
-
// Scheduled tasks
|
|
801
|
-
'list-schedules', 'get-schedule', 'create-schedule', 'update-schedule',
|
|
802
|
-
'delete-schedule', 'toggle-schedule', 'trigger-schedule', 'list-presets',
|
|
803
|
-
'schedule-self-resume',
|
|
804
|
-
// Agent CRUD
|
|
805
|
-
'list-agents', 'create-agent', 'update-agent', 'delete-agent',
|
|
806
|
-
// Team CRUD + membership
|
|
807
|
-
'list-teams', 'create-team', 'update-team', 'delete-team',
|
|
808
|
-
'add-team-member', 'remove-team-member',
|
|
809
|
-
// Flow CRUD + execution
|
|
810
|
-
'list-flows', 'get-flow', 'create-flow', 'update-flow',
|
|
811
|
-
'delete-flow', 'execute-flow', 'dry-run-flow',
|
|
812
|
-
],
|
|
813
|
-
},
|
|
814
|
-
// ── Schedule fields ──
|
|
815
|
-
scheduleId: { type: 'string', description: 'Required for get/update/delete/toggle/trigger-schedule.' },
|
|
816
|
-
name: { type: 'string', description: 'Name — required for create-schedule, create-agent, create-team, create-flow. Optional for updates and schedule-self-resume.' },
|
|
817
|
-
prompt: { type: 'string', description: 'Required for create-schedule and schedule-self-resume.' },
|
|
818
|
-
cronExpression: { type: 'string', description: 'Required for create-schedule. 5-field cron OR a preset name (call list-presets).' },
|
|
819
|
-
targetAgentId: { type: 'string', description: 'create-schedule target. "self" = this agent. Defaults to caller in "own" mode.' },
|
|
820
|
-
enabled: { type: 'boolean', description: 'Defaults to true on create. Used by toggle-schedule.' },
|
|
821
|
-
runOnce: { type: 'boolean' },
|
|
822
|
-
maxRuns: { type: 'integer' },
|
|
823
|
-
startDate: { type: 'string', description: 'ISO datetime.' },
|
|
824
|
-
endDate: { type: 'string', description: 'ISO datetime.' },
|
|
825
|
-
description: { type: 'string' },
|
|
826
|
-
runAt: { type: 'string', description: 'ISO datetime — one-shot wake time for schedule-self-resume (future, minute-resolution).' },
|
|
827
|
-
// ── Agent fields ──
|
|
828
|
-
agentId: { type: 'string', description: 'Required for update-agent, delete-agent, add/remove-team-member. "self" sugar accepted by team ops.' },
|
|
829
|
-
systemPrompt: { type: 'string', description: 'Required for create-agent.' },
|
|
830
|
-
model: { type: 'string' },
|
|
831
|
-
capabilities: { type: 'array', items: { type: 'string' } },
|
|
832
|
-
skills: { type: 'array', items: { type: 'string' } },
|
|
833
|
-
toolConfig: { type: 'object', additionalProperties: true, description: 'Per-tool config object. Child platformcontrol.* is CLAMPED to caller\'s level (no privilege escalation).' },
|
|
834
|
-
directoryAccess: { type: 'object', additionalProperties: true },
|
|
835
|
-
// ── Team fields ──
|
|
836
|
-
teamId: { type: 'string', description: 'Required for update-team, delete-team, add/remove-team-member.' },
|
|
837
|
-
color: { type: 'string' },
|
|
838
|
-
// ── Flow fields ──
|
|
839
|
-
flowId: { type: 'string', description: 'Required for get/update/delete/execute/dry-run-flow.' },
|
|
840
|
-
nodes: { type: 'array', items: { type: 'object', additionalProperties: true } },
|
|
841
|
-
edges: { type: 'array', items: { type: 'object', additionalProperties: true } },
|
|
842
|
-
variables: { type: 'object', additionalProperties: true },
|
|
843
|
-
flow: { type: 'object', additionalProperties: true, description: 'Full flow definition — alternative to flowId for dry-run-flow (lint without saving).' },
|
|
844
|
-
input: { type: 'object', additionalProperties: true, description: 'Execution input for execute-flow.' },
|
|
845
|
-
},
|
|
846
|
-
required: ['type'],
|
|
847
|
-
},
|
|
848
|
-
minItems: 1,
|
|
849
|
-
maxItems: 1,
|
|
850
|
-
},
|
|
851
|
-
},
|
|
852
|
-
required: ['actions'],
|
|
853
|
-
},
|
|
854
|
-
},
|
|
855
|
-
// Desktop — flat params per call (desktop's parseParameters() returns
|
|
856
|
-
// parsed.parameters || parsed). Coord-or-intent unions: click/scroll/drag
|
|
857
|
-
// accept either raw (x, y) OR a natural-language `intent` the grounding
|
|
858
|
-
// model resolves to coords from a fresh screenshot.
|
|
859
|
-
{
|
|
860
|
-
type: 'function',
|
|
861
|
-
name: 'desktop',
|
|
862
|
-
description: 'Drive the user\'s OS: screenshot, click, type, key_press, scroll, drag, list/focus windows. Prefer intent-driven actions (e.g. {"action":"click","intent":"orange Save button"}) over raw coords — they screenshot + ground + act in one step.',
|
|
863
|
-
parameters: {
|
|
864
|
-
type: 'object',
|
|
865
|
-
properties: {
|
|
866
|
-
action: {
|
|
867
|
-
type: 'string',
|
|
868
|
-
enum: ['screenshot', 'click', 'type', 'key_press', 'scroll', 'drag', 'list_windows', 'focus_window', 'describe_capabilities'],
|
|
869
|
-
},
|
|
870
|
-
// ── Coord-or-intent (click, scroll, drag) ──
|
|
871
|
-
x: { type: 'number', description: 'X coord. Use when not passing intent.' },
|
|
872
|
-
y: { type: 'number', description: 'Y coord. Use when not passing intent.' },
|
|
873
|
-
intent: { type: 'string', description: 'Natural-language description ("the orange Save button"). Tool screenshots, grounds via vision LLM, then clicks/scrolls/drags.' },
|
|
874
|
-
// ── Click ──
|
|
875
|
-
button: { type: 'string', enum: ['left', 'right', 'middle'], description: 'Click/drag button. Defaults to left.' },
|
|
876
|
-
count: { type: 'integer', description: '1 = single click (default), 2 = double click.' },
|
|
877
|
-
// ── Type ──
|
|
878
|
-
text: { type: 'string', description: 'Required for action="type".' },
|
|
879
|
-
delayMs: { type: 'integer', description: 'Optional per-keystroke delay for type.' },
|
|
880
|
-
// ── KeyPress ──
|
|
881
|
-
keys: { type: 'array', items: { type: 'string' }, description: 'Required for action="key_press". Chord like ["Control","S"].' },
|
|
882
|
-
// ── Scroll ──
|
|
883
|
-
dy: { type: 'number', description: 'Required for action="scroll". Positive = down.' },
|
|
884
|
-
// ── Drag ──
|
|
885
|
-
from: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' } }, description: 'Drag start coords (alternative to fromIntent).' },
|
|
886
|
-
to: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' } }, description: 'Drag end coords (alternative to toIntent).' },
|
|
887
|
-
fromIntent: { type: 'string', description: 'Drag start intent.' },
|
|
888
|
-
toIntent: { type: 'string', description: 'Drag end intent.' },
|
|
889
|
-
// ── FocusWindow ──
|
|
890
|
-
titleMatch: { type: 'string', description: 'Required for action="focus_window". Substring match against window titles.' },
|
|
891
|
-
// ── Screenshot ──
|
|
892
|
-
region: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' }, width: { type: 'number' }, height: { type: 'number' } }, description: 'Optional capture region; defaults to full screen.' },
|
|
893
|
-
},
|
|
894
|
-
required: ['action'],
|
|
895
|
-
},
|
|
896
|
-
},
|
|
897
|
-
// Import Analyzer — flat params. Single-operation tool; parseParameters
|
|
898
|
-
// accepts the object directly.
|
|
899
|
-
{
|
|
900
|
-
type: 'function',
|
|
901
|
-
name: 'import-analyzer',
|
|
902
|
-
description: 'Analyze JS/TS imports: detect missing files, missing exports, circular dependencies, and unused exports. Use mode="quick" for fast scans.',
|
|
903
|
-
parameters: {
|
|
904
|
-
type: 'object',
|
|
905
|
-
properties: {
|
|
906
|
-
path: { type: 'string', description: 'Directory to analyze. Default ".".' },
|
|
907
|
-
mode: { type: 'string', enum: ['full', 'quick', 'fix'], description: 'Default "full".' },
|
|
908
|
-
output: { type: 'string', enum: ['summary', 'detailed', 'json'], description: 'Default "summary".' },
|
|
909
|
-
ignoreFile: { type: 'string', description: 'Ignore file name. Default ".gitignore".' },
|
|
910
|
-
},
|
|
911
|
-
},
|
|
912
|
-
},
|
|
913
|
-
// Dependency Resolver — flat params. Single-operation tool. Always creates
|
|
914
|
-
// a backup before modifying package.json.
|
|
915
|
-
{
|
|
916
|
-
type: 'function',
|
|
917
|
-
name: 'dependency-resolver',
|
|
918
|
-
description: 'Check or update npm dependencies to latest compatible versions. Creates a .backup.json before modifying package.json. mode="check" is read-only.',
|
|
919
|
-
parameters: {
|
|
920
|
-
type: 'object',
|
|
921
|
-
properties: {
|
|
922
|
-
path: { type: 'string', description: 'Project directory with package.json. Default ".".' },
|
|
923
|
-
mode: { type: 'string', enum: ['check', 'fix', 'auto'], description: 'Default "check" (read-only).' },
|
|
924
|
-
includeDev: { type: 'boolean', description: 'Include devDependencies. Default true.' },
|
|
925
|
-
},
|
|
926
|
-
},
|
|
927
|
-
},
|
|
928
|
-
// Static Analysis — actions-array with type discriminator. Heterogeneous
|
|
929
|
-
// surface across JS/TS/Python/CSS analysis, ESLint, Prettier, Sparrow SAST,
|
|
930
|
-
// and structured-file validation.
|
|
931
|
-
{
|
|
932
|
-
type: 'function',
|
|
933
|
-
name: 'staticanalysis',
|
|
934
|
-
description: 'Static code analysis: syntax/type/import errors, ESLint, Prettier formatting, Sparrow SAST (12 languages, no external deps), structured-file validation (JSON/YAML/XML/TOML/INI/ENV). One action per call.',
|
|
935
|
-
parameters: {
|
|
936
|
-
type: 'object',
|
|
937
|
-
properties: {
|
|
938
|
-
actions: {
|
|
939
|
-
type: 'array',
|
|
940
|
-
description: 'Array with a single action object.',
|
|
941
|
-
items: {
|
|
942
|
-
type: 'object',
|
|
943
|
-
properties: {
|
|
944
|
-
type: {
|
|
945
|
-
type: 'string',
|
|
946
|
-
enum: [
|
|
947
|
-
'analyze', 'analyze-project', 'fix', 'format',
|
|
948
|
-
'security-scan', 'security-scan-project',
|
|
949
|
-
'sparrow-scan', 'sparrow-scan-project',
|
|
950
|
-
'validate-config', 'validate-config-directory',
|
|
951
|
-
'validate-structured',
|
|
952
|
-
],
|
|
953
|
-
},
|
|
954
|
-
filePath: { type: 'string', description: 'Required for single-file actions (analyze, fix, format, security-scan, sparrow-scan, validate-config, validate-structured by path).' },
|
|
955
|
-
directory: { type: 'string', description: 'Required for project-wide actions (analyze-project, security-scan-project, sparrow-scan-project, validate-config-directory).' },
|
|
956
|
-
pattern: { type: 'string', description: 'Optional glob pattern, e.g. "**/*.js".' },
|
|
957
|
-
includeWarnings: { type: 'boolean', description: 'Include warnings in results. Default true.' },
|
|
958
|
-
maxErrors: { type: 'integer', description: 'Cap number of errors returned.' },
|
|
959
|
-
writeFile: { type: 'boolean', description: 'For fix/format: write the result back to disk.' },
|
|
960
|
-
content: { type: 'string', description: 'Inline content for validate-structured (requires format).' },
|
|
961
|
-
format: { type: 'string', enum: ['json', 'yaml', 'xml', 'toml', 'ini', 'env'], description: 'Format override for validate-structured (auto-detected from filePath if omitted).' },
|
|
962
|
-
},
|
|
963
|
-
required: ['type'],
|
|
964
|
-
},
|
|
965
|
-
minItems: 1,
|
|
966
|
-
maxItems: 1,
|
|
967
|
-
},
|
|
968
|
-
},
|
|
969
|
-
required: ['actions'],
|
|
970
|
-
},
|
|
971
|
-
},
|
|
972
|
-
// Clone Detection — actions-array, currently a single type. Future
|
|
973
|
-
// detection modes will land alongside detect-clones in this enum.
|
|
974
|
-
{
|
|
975
|
-
type: 'function',
|
|
976
|
-
name: 'clonedetection',
|
|
977
|
-
description: 'Detect exact and similar code clones in JS/TS/Vue projects. Returns refactoring recommendations with priorities. One action per call.',
|
|
978
|
-
parameters: {
|
|
979
|
-
type: 'object',
|
|
980
|
-
properties: {
|
|
981
|
-
actions: {
|
|
982
|
-
type: 'array',
|
|
983
|
-
description: 'Array with a single action object.',
|
|
984
|
-
items: {
|
|
985
|
-
type: 'object',
|
|
986
|
-
properties: {
|
|
987
|
-
type: { type: 'string', enum: ['detect-clones'] },
|
|
988
|
-
directory: { type: 'string', description: 'Directory to analyze. Required.' },
|
|
989
|
-
minTokens: { type: 'integer', description: 'Minimum token count per clone. Default 50; lower = more sensitive.' },
|
|
990
|
-
minLines: { type: 'integer', description: 'Minimum line count per clone. Default 5.' },
|
|
991
|
-
similarityThreshold: { type: 'number', description: '0-1 similarity threshold. Default 0.85.' },
|
|
992
|
-
priorityFilter: { type: 'string', enum: ['high', 'medium', 'low'], description: 'Filter detected clones by priority.' },
|
|
993
|
-
maxResults: { type: 'integer', description: 'Cap number of clones returned.' },
|
|
994
|
-
outputMode: { type: 'string', enum: ['summary', 'detailed', 'recommendations'], description: 'Default "detailed".' },
|
|
995
|
-
},
|
|
996
|
-
required: ['type', 'directory'],
|
|
997
|
-
},
|
|
998
|
-
minItems: 1,
|
|
999
|
-
maxItems: 1,
|
|
1000
|
-
},
|
|
1001
|
-
},
|
|
1002
|
-
required: ['actions'],
|
|
1003
|
-
},
|
|
1004
|
-
},
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
name: 'spreadsheet',
|
|
1041
|
-
description: 'LEGACY Excel (.xlsx) tool — prefer the "office" tool with sheet.* actions instead. Get info, read sheet data, or create XLSX files.',
|
|
1042
|
-
parameters: {
|
|
1043
|
-
type: 'object',
|
|
1044
|
-
properties: {
|
|
1045
|
-
actions: {
|
|
1046
|
-
type: 'array',
|
|
1047
|
-
description: 'Array with a single action object.',
|
|
1048
|
-
items: {
|
|
1049
|
-
type: 'object',
|
|
1050
|
-
properties: {
|
|
1051
|
-
action: { type: 'string', enum: ['get-info', 'read', 'create'] },
|
|
1052
|
-
filePath: { type: 'string', description: 'Required for get-info and read.' },
|
|
1053
|
-
sheetName: { type: 'string', description: 'Sheet to read (defaults to first sheet).' },
|
|
1054
|
-
startRow: { type: 'integer', description: '1-indexed start row for read.' },
|
|
1055
|
-
endRow: { type: 'integer', description: 'Inclusive end row for read.' },
|
|
1056
|
-
includeFormulas: { type: 'boolean', description: 'Return formulas instead of values for read.' },
|
|
1057
|
-
outputPath: { type: 'string', description: 'Required for create.' },
|
|
1058
|
-
content: { type: 'object', additionalProperties: true, description: 'Required for create. { sheets: [{ name, columns, rows, headerStyle?, freezeRow?, autoFilter?, formulas? }] }.' },
|
|
1059
|
-
},
|
|
1060
|
-
required: ['action'],
|
|
1061
|
-
},
|
|
1062
|
-
minItems: 1,
|
|
1063
|
-
maxItems: 1,
|
|
1064
|
-
},
|
|
1065
|
-
},
|
|
1066
|
-
required: ['actions'],
|
|
1067
|
-
},
|
|
1068
|
-
},
|
|
1069
|
-
];
|
|
1070
|
-
|
|
1071
|
-
/**
|
|
1072
|
-
* Build the tools array for a specific agent based on its enabled capabilities.
|
|
1073
|
-
* Keeps the model's tool list minimal — it sees only what the agent actually
|
|
1074
|
-
* has access to, which also reduces prompt size and ambiguity.
|
|
1075
|
-
*
|
|
1076
|
-
* @param {string[]} capabilities - Agent capabilities (matches tool ids)
|
|
1077
|
-
* @returns {Array} Function schemas the agent is allowed to invoke
|
|
1078
|
-
*/
|
|
1079
|
-
export function getToolSchemasForAgent(capabilities = []) {
|
|
1080
|
-
if (!Array.isArray(capabilities) || capabilities.length === 0) {
|
|
1081
|
-
// Agent has no capability list — give it the full catalog rather than
|
|
1082
|
-
// leaving it tool-less. Matches the CLI's existing "include all" fallback.
|
|
1083
|
-
return OPENAI_FUNCTION_SCHEMAS;
|
|
1084
|
-
}
|
|
1085
|
-
const allowed = new Set(capabilities.map(c => String(c).toLowerCase()));
|
|
1086
|
-
return OPENAI_FUNCTION_SCHEMAS.filter(s => allowed.has(s.name.toLowerCase()));
|
|
1087
|
-
}
|
|
1088
|
-
|
|
1089
|
-
/**
|
|
1090
|
-
* Names of every tool that has a native function schema in this file.
|
|
1091
|
-
* Importable as a Set so other modules (notably baseTool's system-prompt
|
|
1092
|
-
* builder) can decide "is the structured schema the canonical source of
|
|
1093
|
-
* truth for this tool, or do we still need to bake a text description
|
|
1094
|
-
* into the system prompt?". When a model uses the Responses API (which
|
|
1095
|
-
* is RLHFed for native function-calling), the structured schema in
|
|
1096
|
-
* `tools:` is the canonical source — emitting the text description as
|
|
1097
|
-
* well doubles the same information in the context window.
|
|
1098
|
-
*/
|
|
1099
|
-
export const NATIVE_SCHEMA_TOOL_NAMES = new Set(
|
|
1100
|
-
OPENAI_FUNCTION_SCHEMAS.map(s => s.name.toLowerCase())
|
|
1101
|
-
);
|
|
1102
|
-
|
|
1103
|
-
export default OPENAI_FUNCTION_SCHEMAS;
|
|
1
|
+
/**
|
|
2
|
+
* OpenAI-compatible function schemas for the CLI's tool catalog.
|
|
3
|
+
*
|
|
4
|
+
* Purpose:
|
|
5
|
+
* Reasoning models on the Responses API (codex, o-series, gpt-5-pro) are
|
|
6
|
+
* RLHFed against the CLI's inline JSON-block protocol and need native
|
|
7
|
+
* function declarations to emit tool calls. The CLI owns these schemas
|
|
8
|
+
* (tools + their rendering are a CLI concern, never a backend concern) and
|
|
9
|
+
* passes them through the chat payload's `options.tools` field. The Azure
|
|
10
|
+
* backend forwards them verbatim to the Responses API and converts incoming
|
|
11
|
+
* function_call SSE events back into the CLI's inline JSON-block format.
|
|
12
|
+
*
|
|
13
|
+
* Shape convention:
|
|
14
|
+
* Each schema mirrors the `parsedData` shape expected by (a) the tool's
|
|
15
|
+
* `execute()` / `parseParameters()` in src/tools/*.js, and (b) the matching
|
|
16
|
+
* renderer in web-ui/src/components/toolRenderers/*.jsx. Keeping all three
|
|
17
|
+
* in sync here means specific renderers (TaskManagerRenderer, TerminalRenderer,
|
|
18
|
+
* etc.) render their native visualizations without the backend needing to
|
|
19
|
+
* know anything about UI.
|
|
20
|
+
*
|
|
21
|
+
* When you add a new tool to the CLI, add its schema here. The backend
|
|
22
|
+
* remains tool-agnostic.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
export const OPENAI_FUNCTION_SCHEMAS = [
|
|
26
|
+
// TaskManager — actions-array with flat task fields per action.
|
|
27
|
+
// Field names mirror the tool's system-prompt protocol (src/tools/taskManagerTool.js
|
|
28
|
+
// doc block) and the tool's runtime read-sites, so Responses-API models and
|
|
29
|
+
// chat-completion models produce identical payloads.
|
|
30
|
+
// create: {type, title, description?, priority?}
|
|
31
|
+
// update: {type, taskId, title?, description?, priority?, status?}
|
|
32
|
+
// complete|cancel: {type, taskId}
|
|
33
|
+
// list|clear: {type}
|
|
34
|
+
// One call = one task action. Parallel tool calls cover multi-task cases.
|
|
35
|
+
{
|
|
36
|
+
type: 'function',
|
|
37
|
+
name: 'taskmanager',
|
|
38
|
+
description: 'Create, update, complete, cancel, list, clear, or SEARCH tasks. `search` ranks tasks by semantic similarity (with substring fallback when embeddings are disabled). `backfill-search-index` rebuilds the vector index — run after enabling embeddings or after switching provider.',
|
|
39
|
+
parameters: {
|
|
40
|
+
type: 'object',
|
|
41
|
+
properties: {
|
|
42
|
+
actions: {
|
|
43
|
+
type: 'array',
|
|
44
|
+
description: 'Array with a single action object.',
|
|
45
|
+
items: {
|
|
46
|
+
type: 'object',
|
|
47
|
+
properties: {
|
|
48
|
+
type: { type: 'string', enum: ['create', 'update', 'complete', 'cancel', 'list', 'clear', 'search', 'backfill-search-index'] },
|
|
49
|
+
taskId: { type: 'string', description: 'Task id — required for update/complete/cancel. Omit for create/list/clear.' },
|
|
50
|
+
query: { type: 'string', description: 'Search query — required for search.' },
|
|
51
|
+
topK: { type: 'integer', description: 'Max ranked results for search. Default 10.' },
|
|
52
|
+
hybrid: { type: 'boolean', description: 'Mix substring scoring via RRF for search. Default true.' },
|
|
53
|
+
title: { type: 'string', description: 'Task title — required for create; optional for update.' },
|
|
54
|
+
description: { type: 'string' },
|
|
55
|
+
priority: { type: 'string', enum: ['high', 'medium', 'low'], description: 'Only set for create/update. Omit for list — do NOT use as a filter.' },
|
|
56
|
+
status: { type: 'string', enum: ['pending', 'in_progress', 'completed'], description: 'Only set for update. Omit for create (defaults to pending) and for list (returns all tasks).' },
|
|
57
|
+
},
|
|
58
|
+
required: ['type'],
|
|
59
|
+
},
|
|
60
|
+
minItems: 1,
|
|
61
|
+
maxItems: 1,
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
required: ['actions'],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
// JobDone — actions-array with action+summary.
|
|
68
|
+
{
|
|
69
|
+
type: 'function',
|
|
70
|
+
name: 'jobdone',
|
|
71
|
+
description: 'Signal that all tasks are complete and the agent should stop.',
|
|
72
|
+
parameters: {
|
|
73
|
+
type: 'object',
|
|
74
|
+
properties: {
|
|
75
|
+
actions: {
|
|
76
|
+
type: 'array',
|
|
77
|
+
items: {
|
|
78
|
+
type: 'object',
|
|
79
|
+
properties: {
|
|
80
|
+
action: { type: 'string', enum: ['complete'] },
|
|
81
|
+
summary: { type: 'string', description: 'Brief summary of what was accomplished' },
|
|
82
|
+
},
|
|
83
|
+
required: ['action', 'summary'],
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
required: ['actions'],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
// Filesystem — actions-array with per-action-typed field names (filePath /
|
|
91
|
+
// outputPath / sourcePath + destPath / directory). Aligned with the tool's
|
|
92
|
+
// system-prompt protocol (src/tools/fileSystemTool.js doc block) and the
|
|
93
|
+
// tool's validate/execute read-sites.
|
|
94
|
+
// read|delete|exists|stats: {type, filePath}
|
|
95
|
+
// write: {type, outputPath, content}
|
|
96
|
+
// append: {type, filePath, content}
|
|
97
|
+
// copy|move: {type, sourcePath, destPath}
|
|
98
|
+
// create-dir: {type, directory}
|
|
99
|
+
// list: {type, directory}
|
|
100
|
+
{
|
|
101
|
+
type: 'function',
|
|
102
|
+
name: 'filesystem',
|
|
103
|
+
description: 'Read, write, create, delete, copy/move, append, or list files and directories. Emit one action object per file operation (multiple allowed in the actions array).',
|
|
104
|
+
parameters: {
|
|
105
|
+
type: 'object',
|
|
106
|
+
properties: {
|
|
107
|
+
actions: {
|
|
108
|
+
type: 'array',
|
|
109
|
+
items: {
|
|
110
|
+
type: 'object',
|
|
111
|
+
properties: {
|
|
112
|
+
type: { type: 'string', enum: ['read', 'write', 'append', 'delete', 'copy', 'move', 'exists', 'stats', 'create-dir', 'list'], description: 'The filesystem operation to perform.' },
|
|
113
|
+
filePath: { type: 'string', description: 'Target file path. Required for: read, append, delete, exists, stats.' },
|
|
114
|
+
outputPath: { type: 'string', description: 'Destination file path. Required for: write.' },
|
|
115
|
+
sourcePath: { type: 'string', description: 'Source file path. Required for: copy, move.' },
|
|
116
|
+
destPath: { type: 'string', description: 'Destination file path. Required for: copy, move.' },
|
|
117
|
+
directory: { type: 'string', description: 'Directory path. Required for: create-dir, list.' },
|
|
118
|
+
content: { type: 'string', description: 'File content. Required for: write, append.' },
|
|
119
|
+
},
|
|
120
|
+
required: ['type'],
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
required: ['actions'],
|
|
125
|
+
},
|
|
126
|
+
},
|
|
127
|
+
// Terminal — actions-array. Tool supports run-command, change-directory,
|
|
128
|
+
// list-directory, create-directory, get-working-directory (see
|
|
129
|
+
// src/tools/terminalTool.js switch on action.type).
|
|
130
|
+
{
|
|
131
|
+
type: 'function',
|
|
132
|
+
name: 'terminal',
|
|
133
|
+
description: 'Run shell commands, change/list/create working directories, or report the current working directory.',
|
|
134
|
+
parameters: {
|
|
135
|
+
type: 'object',
|
|
136
|
+
properties: {
|
|
137
|
+
actions: {
|
|
138
|
+
type: 'array',
|
|
139
|
+
items: {
|
|
140
|
+
type: 'object',
|
|
141
|
+
properties: {
|
|
142
|
+
type: { type: 'string', enum: ['run-command', 'change-directory', 'list-directory', 'create-directory', 'get-working-directory'], description: 'The terminal operation to perform.' },
|
|
143
|
+
command: { type: 'string', description: 'Shell command to run. Required for: run-command.' },
|
|
144
|
+
directory: { type: 'string', description: 'Directory path. Required for: change-directory, list-directory, create-directory.' },
|
|
145
|
+
timeout: { type: 'number', description: 'Timeout in ms for run-command. Default 30000.' },
|
|
146
|
+
},
|
|
147
|
+
required: ['type'],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
},
|
|
151
|
+
required: ['actions'],
|
|
152
|
+
},
|
|
153
|
+
},
|
|
154
|
+
// Seek — uses filePaths + searchTerms (matches tool's and renderer's flat shape).
|
|
155
|
+
{
|
|
156
|
+
type: 'function',
|
|
157
|
+
name: 'seek',
|
|
158
|
+
description: 'Search for text/patterns across project files (grep-like).',
|
|
159
|
+
parameters: {
|
|
160
|
+
type: 'object',
|
|
161
|
+
properties: {
|
|
162
|
+
searchTerms: {
|
|
163
|
+
type: 'array',
|
|
164
|
+
items: { type: 'string' },
|
|
165
|
+
description: 'Patterns to search for (regex supported)',
|
|
166
|
+
},
|
|
167
|
+
filePaths: {
|
|
168
|
+
type: 'array',
|
|
169
|
+
items: { type: 'string' },
|
|
170
|
+
description: 'Directories or files to search in (defaults to project root)',
|
|
171
|
+
},
|
|
172
|
+
},
|
|
173
|
+
required: ['searchTerms'],
|
|
174
|
+
},
|
|
175
|
+
},
|
|
176
|
+
// File-content-replace — files array with nested replacements.
|
|
177
|
+
// Field names mirror src/tools/fileContentReplaceTool.js runtime (file.path,
|
|
178
|
+
// replacement.oldContent/newContent) so the same payload shape works for
|
|
179
|
+
// both native function calls and the system-prompt inline protocol.
|
|
180
|
+
{
|
|
181
|
+
type: 'function',
|
|
182
|
+
name: 'file-content-replace',
|
|
183
|
+
description: 'Find and replace exact text spans within one or more files.',
|
|
184
|
+
parameters: {
|
|
185
|
+
type: 'object',
|
|
186
|
+
properties: {
|
|
187
|
+
files: {
|
|
188
|
+
type: 'array',
|
|
189
|
+
items: {
|
|
190
|
+
type: 'object',
|
|
191
|
+
properties: {
|
|
192
|
+
path: { type: 'string', description: 'File path relative to the project root.' },
|
|
193
|
+
replacements: {
|
|
194
|
+
type: 'array',
|
|
195
|
+
items: {
|
|
196
|
+
type: 'object',
|
|
197
|
+
properties: {
|
|
198
|
+
oldContent: { type: 'string', description: 'Exact text to find (whitespace-sensitive).' },
|
|
199
|
+
newContent: { type: 'string', description: 'Replacement text.' },
|
|
200
|
+
all: { type: 'boolean', description: 'Replace every occurrence. Default false (replace first only).' },
|
|
201
|
+
},
|
|
202
|
+
required: ['oldContent', 'newContent'],
|
|
203
|
+
},
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
required: ['path', 'replacements'],
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
required: ['files'],
|
|
211
|
+
},
|
|
212
|
+
},
|
|
213
|
+
// File-tree — flat params using `directory` + `maxDepth`.
|
|
214
|
+
{
|
|
215
|
+
type: 'function',
|
|
216
|
+
name: 'file-tree',
|
|
217
|
+
description: 'Get a tree-view of the project directory structure.',
|
|
218
|
+
parameters: {
|
|
219
|
+
type: 'object',
|
|
220
|
+
properties: {
|
|
221
|
+
directory: { type: 'string', description: 'Root directory (defaults to project root)' },
|
|
222
|
+
maxDepth: { type: 'number', description: 'Max depth (default 3)' },
|
|
223
|
+
showHidden: { type: 'boolean' },
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
// Memory — flat params (no actions array). Field names mirror the tool's
|
|
228
|
+
// validate/execute sites in src/tools/memoryTool.js.
|
|
229
|
+
//
|
|
230
|
+
// Memory-entry actions (user-authored notes):
|
|
231
|
+
// add: {action, title, content, description?}
|
|
232
|
+
// update: {action, id, title?, content?, description?}
|
|
233
|
+
// delete|read: {action, id}
|
|
234
|
+
// list: {action, level?}
|
|
235
|
+
// search: {action, query, level?}
|
|
236
|
+
// stats: {action}
|
|
237
|
+
//
|
|
238
|
+
// Conversation-archive action (read-only browse of the agent's own past
|
|
239
|
+
// conversation — survives compaction; see src/services/conversationQuery.js):
|
|
240
|
+
// reminisce: {action, mode, ...mode-specific params}
|
|
241
|
+
// overview — {mode}
|
|
242
|
+
// range — {mode, from?, to?, offset?, limit?, detail?}
|
|
243
|
+
// search — {mode, query, role?, maxResults?, cursor?, detail?}
|
|
244
|
+
// around — {mode, messageId, before?, after?, detail?}
|
|
245
|
+
// byTool — {mode, toolId?, limit?, cursor?}
|
|
246
|
+
// read — {mode, messageId, lineFrom?/lineTo? OR contentFrom?/contentTo?, detail?}
|
|
247
|
+
// Web — operation-router envelope. Top-level `operation` picks one of
|
|
248
|
+
// four sub-routines (search/fetch/interactive/authenticate). Interactive
|
|
249
|
+
// takes a nested `actions[]` array with its own per-action discriminator,
|
|
250
|
+
// but that surface is huge (~30 action types) — the schema captures the
|
|
251
|
+
// top-level shape and lets the model emit free-form objects inside
|
|
252
|
+
// `actions`. The tool's parseParameters is permissive about unknown
|
|
253
|
+
// keys, so this remains safe.
|
|
254
|
+
// search: {operation, query, engine?, maxResults?, stealthLevel?}
|
|
255
|
+
// fetch: {operation, url, formats?[], stealthLevel?}
|
|
256
|
+
// interactive: {operation, actions: [{action, ...args}], stealthLevel?,
|
|
257
|
+
// humanMode?, headless?}
|
|
258
|
+
// authenticate: {operation, siteId, loginUrl?, tabName?, stealthLevel?,
|
|
259
|
+
// usernameSelector?, passwordSelector?, submitSelector?,
|
|
260
|
+
// keepTabOpen?}
|
|
261
|
+
{
|
|
262
|
+
type: 'function',
|
|
263
|
+
name: 'web',
|
|
264
|
+
description: 'Search the web, fetch URL content, drive a real browser, or perform credentialed login. Pick the right operation: search→Google-like, fetch→static page text, interactive→stateful browser session, authenticate→OAuth/form login.',
|
|
265
|
+
parameters: {
|
|
266
|
+
type: 'object',
|
|
267
|
+
properties: {
|
|
268
|
+
operation: {
|
|
269
|
+
type: 'string',
|
|
270
|
+
enum: ['search', 'fetch', 'interactive', 'authenticate'],
|
|
271
|
+
description: 'Top-level routine. Pick exactly one.',
|
|
272
|
+
},
|
|
273
|
+
// search params
|
|
274
|
+
query: { type: 'string', description: 'Search query (operation=search).' },
|
|
275
|
+
engine: { type: 'string', description: 'Search engine — "duckduckgo" (default) or "google".' },
|
|
276
|
+
maxResults: { type: 'integer', description: 'Max search results (operation=search). Default 10.' },
|
|
277
|
+
// fetch params
|
|
278
|
+
url: { type: 'string', description: 'URL to fetch (operation=fetch).' },
|
|
279
|
+
formats: {
|
|
280
|
+
type: 'array',
|
|
281
|
+
items: { type: 'string', enum: ['title', 'text', 'links', 'html', 'console'] },
|
|
282
|
+
description: 'Output formats to extract (operation=fetch). Default [title,text].',
|
|
283
|
+
},
|
|
284
|
+
// interactive params
|
|
285
|
+
actions: {
|
|
286
|
+
type: 'array',
|
|
287
|
+
description: 'Browser action chain (operation=interactive). Each item: {action, ...args} — see tool description for the full action vocabulary (navigate, click, type, screenshot, wait-for, …).',
|
|
288
|
+
items: { type: 'object', additionalProperties: true },
|
|
289
|
+
},
|
|
290
|
+
tabName: { type: 'string', description: 'Tab identifier for stateful sessions (operation=interactive|authenticate).' },
|
|
291
|
+
humanMode: { type: 'boolean', description: 'Human-like timing for anti-detection (operation=interactive). Default true.' },
|
|
292
|
+
headless: { type: 'boolean', description: 'Run browser headless (operation=interactive). Default true unless stealthLevel="maximum".' },
|
|
293
|
+
// authenticate params
|
|
294
|
+
siteId: { type: 'string', description: 'Credential-vault site key (operation=authenticate).' },
|
|
295
|
+
loginUrl: { type: 'string', description: 'Custom login URL (operation=authenticate).' },
|
|
296
|
+
usernameSelector: { type: 'string', description: 'CSS selector for username field (operation=authenticate).' },
|
|
297
|
+
passwordSelector: { type: 'string', description: 'CSS selector for password field (operation=authenticate).' },
|
|
298
|
+
submitSelector: { type: 'string', description: 'CSS selector for submit button (operation=authenticate).' },
|
|
299
|
+
keepTabOpen: { type: 'boolean', description: 'Leave the authenticated tab open for follow-up browsing (operation=authenticate).' },
|
|
300
|
+
// shared
|
|
301
|
+
stealthLevel: {
|
|
302
|
+
type: 'string',
|
|
303
|
+
enum: ['standard', 'maximum'],
|
|
304
|
+
description: 'Anti-detection level. "standard" is headless; "maximum" opens a visible browser window with full stealth (slower).',
|
|
305
|
+
},
|
|
306
|
+
},
|
|
307
|
+
required: ['operation'],
|
|
308
|
+
},
|
|
309
|
+
},
|
|
310
|
+
// AgentCommunication — actions-array, 5 typed actions.
|
|
311
|
+
// get-available-agents: {type}
|
|
312
|
+
// send-message: {type, recipient, subject?, message, priority?, requiresReply?}
|
|
313
|
+
// reply-to-message: {type, messageId, message}
|
|
314
|
+
// get-unreplied-messages: {type}
|
|
315
|
+
// mark-conversation-ended: {type, conversationId, reason?}
|
|
316
|
+
{
|
|
317
|
+
type: 'function',
|
|
318
|
+
name: 'agentcommunication',
|
|
319
|
+
description: 'Send/receive messages between live agents, and find the right agent for a task. Prefer `find-agent` (semantic routing) when you know what kind of work you need done but not which agent; use `get-available-agents` for the full enumeration. `backfill-agents-index` rebuilds the routing index (run after agent CRUD activity or after switching embedding provider).',
|
|
320
|
+
parameters: {
|
|
321
|
+
type: 'object',
|
|
322
|
+
properties: {
|
|
323
|
+
actions: {
|
|
324
|
+
type: 'array',
|
|
325
|
+
items: {
|
|
326
|
+
type: 'object',
|
|
327
|
+
properties: {
|
|
328
|
+
type: {
|
|
329
|
+
type: 'string',
|
|
330
|
+
enum: ['get-available-agents', 'send-message', 'reply-to-message', 'get-unreplied-messages', 'mark-conversation-ended', 'find-agent', 'backfill-agents-index'],
|
|
331
|
+
},
|
|
332
|
+
recipient: { type: 'string', description: 'Full agent id (from get-available-agents or find-agent). Required for send-message.' },
|
|
333
|
+
subject: { type: 'string', description: 'Optional short subject for send-message.' },
|
|
334
|
+
message: { type: 'string', description: 'Message body. Required for send-message and reply-to-message.' },
|
|
335
|
+
priority: { type: 'string', enum: ['low', 'normal', 'high'], description: 'Send-message priority. Default normal.' },
|
|
336
|
+
requiresReply: { type: 'boolean', description: 'Send-message expects a reply. Default true.' },
|
|
337
|
+
messageId: { type: 'string', description: 'Message id to reply to (reply-to-message).' },
|
|
338
|
+
conversationId: { type: 'string', description: 'Conversation id to close (mark-conversation-ended).' },
|
|
339
|
+
query: { type: 'string', description: 'Natural-language description of the task / role for find-agent. e.g. "good at SQL migrations".' },
|
|
340
|
+
topK: { type: 'integer', description: 'Max ranked results for find-agent. Default 5.' },
|
|
341
|
+
hybrid: { type: 'boolean', description: 'For find-agent: mix substring scoring via RRF. Default true.' },
|
|
342
|
+
includeSelf: { type: 'boolean', description: 'For find-agent: include the requesting agent in results. Default false.' },
|
|
343
|
+
reason: { type: 'string', description: 'Optional close reason (mark-conversation-ended).' },
|
|
344
|
+
},
|
|
345
|
+
required: ['type'],
|
|
346
|
+
},
|
|
347
|
+
minItems: 1,
|
|
348
|
+
},
|
|
349
|
+
},
|
|
350
|
+
required: ['actions'],
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
// AgentDelay — flat params. One pause per call; chain via parallel tool calls.
|
|
354
|
+
// {duration, reason?}
|
|
355
|
+
{
|
|
356
|
+
type: 'function',
|
|
357
|
+
name: 'agentdelay',
|
|
358
|
+
description: 'Pause this agent for `duration` seconds. Use after long-running shell commands or while waiting on external processes — never to "think harder".',
|
|
359
|
+
parameters: {
|
|
360
|
+
type: 'object',
|
|
361
|
+
properties: {
|
|
362
|
+
duration: { type: 'integer', description: 'Seconds to pause. Bounded by the tool’s configured min/max range.' },
|
|
363
|
+
reason: { type: 'string', description: 'Optional human-readable reason (logged with the pause).' },
|
|
364
|
+
},
|
|
365
|
+
required: ['duration'],
|
|
366
|
+
},
|
|
367
|
+
},
|
|
368
|
+
// Help — flat params. List all tools OR fetch full docs for a specific one.
|
|
369
|
+
// list-all: {list: true}
|
|
370
|
+
// describe: {tool: "<toolId>"}
|
|
371
|
+
{
|
|
372
|
+
type: 'function',
|
|
373
|
+
name: 'help',
|
|
374
|
+
description: 'Fetch full documentation for a tool, or list every tool you have access to. Call this before invoking a tool for the first time if you’re unsure of its parameters.',
|
|
375
|
+
parameters: {
|
|
376
|
+
type: 'object',
|
|
377
|
+
properties: {
|
|
378
|
+
tool: { type: 'string', description: 'Tool id whose full docs you want — e.g. "filesystem", "terminal", "web".' },
|
|
379
|
+
list: { type: 'boolean', description: 'Set true to list every tool id with a one-line summary.' },
|
|
380
|
+
},
|
|
381
|
+
},
|
|
382
|
+
},
|
|
383
|
+
// UserPrompt — flat params: an optional context message and an array
|
|
384
|
+
// of question objects. Each option can be a plain string or a richer
|
|
385
|
+
// {id, label, description}. Agent execution PAUSES until the user
|
|
386
|
+
// responds — use sparingly and only for irreversible/ambiguous decisions.
|
|
387
|
+
// {message?, questions: [{id?, message, options?, allowFreeText?, allowWebSearch?, multiSelect?, required?}]}
|
|
388
|
+
{
|
|
389
|
+
type: 'function',
|
|
390
|
+
name: 'userprompt',
|
|
391
|
+
description: 'Ask the user a question and pause until they answer. Use ONLY when you genuinely cannot proceed without their input — never to confirm reversible work.',
|
|
392
|
+
parameters: {
|
|
393
|
+
type: 'object',
|
|
394
|
+
properties: {
|
|
395
|
+
message: { type: 'string', description: 'Optional context message shown above the questions.' },
|
|
396
|
+
questions: {
|
|
397
|
+
type: 'array',
|
|
398
|
+
minItems: 1,
|
|
399
|
+
items: {
|
|
400
|
+
type: 'object',
|
|
401
|
+
properties: {
|
|
402
|
+
id: { type: 'string', description: 'Stable question id. Auto-generated if omitted.' },
|
|
403
|
+
message: { type: 'string', description: 'The question text.' },
|
|
404
|
+
options: {
|
|
405
|
+
type: 'array',
|
|
406
|
+
description: 'Suggested answers. Each entry is a plain string OR an object {id, label, description}.',
|
|
407
|
+
items: {
|
|
408
|
+
oneOf: [
|
|
409
|
+
{ type: 'string' },
|
|
410
|
+
{
|
|
411
|
+
type: 'object',
|
|
412
|
+
properties: {
|
|
413
|
+
id: { type: 'string' },
|
|
414
|
+
label: { type: 'string' },
|
|
415
|
+
description: { type: 'string' },
|
|
416
|
+
},
|
|
417
|
+
required: ['label'],
|
|
418
|
+
},
|
|
419
|
+
],
|
|
420
|
+
},
|
|
421
|
+
},
|
|
422
|
+
allowFreeText: { type: 'boolean', description: 'Allow free-text response. Default true.' },
|
|
423
|
+
allowWebSearch: { type: 'boolean', description: 'Show a web-search hint icon. Default true.' },
|
|
424
|
+
multiSelect: { type: 'boolean', description: 'Allow multiple option selection. Default false.' },
|
|
425
|
+
required: { type: 'boolean', description: 'Answer required to continue. Default true.' },
|
|
426
|
+
},
|
|
427
|
+
required: ['message'],
|
|
428
|
+
},
|
|
429
|
+
},
|
|
430
|
+
},
|
|
431
|
+
required: ['questions'],
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
// PDF — actions-array; per-tool the inner discriminator is `action`
|
|
435
|
+
// (legacy shape; the runtime accepts both `type` and `action`).
|
|
436
|
+
// get-info: {action, filePath}
|
|
437
|
+
// read-pages: {action, filePath, startPage?, endPage?} 1-indexed; endPage exclusive; max 10 pages/call
|
|
438
|
+
// create-pdf: {action, outputPath, htmlContent, pageSize?, orientation?, margins?, ...}
|
|
439
|
+
{
|
|
440
|
+
type: 'function',
|
|
441
|
+
name: 'pdf',
|
|
442
|
+
description: 'Inspect, read, or create PDF files. Read max 10 pages per call to stay within token limits.',
|
|
443
|
+
parameters: {
|
|
444
|
+
type: 'object',
|
|
445
|
+
properties: {
|
|
446
|
+
actions: {
|
|
447
|
+
type: 'array',
|
|
448
|
+
items: {
|
|
449
|
+
type: 'object',
|
|
450
|
+
properties: {
|
|
451
|
+
action: { type: 'string', enum: ['get-info', 'read-pages', 'create-pdf'] },
|
|
452
|
+
filePath: { type: 'string', description: 'Source PDF path. Required for get-info and read-pages.' },
|
|
453
|
+
startPage: { type: 'integer', description: '1-indexed first page (read-pages). Default 1.' },
|
|
454
|
+
endPage: { type: 'integer', description: 'Exclusive last page (read-pages). Default startPage+10.' },
|
|
455
|
+
outputPath: { type: 'string', description: 'Output file path (create-pdf). Relative to project dir or absolute.' },
|
|
456
|
+
htmlContent: { type: 'string', description: 'Full HTML to render into the PDF (create-pdf).' },
|
|
457
|
+
pageSize: { type: 'string', enum: ['A3', 'A4', 'A5', 'Letter', 'Legal', 'Tabloid'], description: 'Page size for create-pdf. Default A4.' },
|
|
458
|
+
orientation: { type: 'string', enum: ['portrait', 'landscape'], description: 'Orientation for create-pdf. Default portrait.' },
|
|
459
|
+
margins: { type: 'object', description: 'CSS-unit margins {top, right, bottom, left}.', additionalProperties: { type: 'string' } },
|
|
460
|
+
printBackground: { type: 'boolean', description: 'Whether to print background colors/images (create-pdf). Default true.' },
|
|
461
|
+
displayHeaderFooter: { type: 'boolean', description: 'Show header/footer (create-pdf). Default false.' },
|
|
462
|
+
headerTemplate: { type: 'string', description: 'HTML template for the header (create-pdf).' },
|
|
463
|
+
footerTemplate: { type: 'string', description: 'HTML template for the footer (create-pdf).' },
|
|
464
|
+
},
|
|
465
|
+
required: ['action'],
|
|
466
|
+
},
|
|
467
|
+
minItems: 1,
|
|
468
|
+
},
|
|
469
|
+
},
|
|
470
|
+
required: ['actions'],
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
// Vision — flat params; one analyze/ask per call. Maintains sessions
|
|
474
|
+
// so follow-up questions reuse the uploaded image without re-sending.
|
|
475
|
+
// analyze: {action, imagePath, question, model?}
|
|
476
|
+
// ask: {action, sessionId, question}
|
|
477
|
+
// list-sessions: {action}
|
|
478
|
+
// close-session: {action, sessionId}
|
|
479
|
+
{
|
|
480
|
+
type: 'function',
|
|
481
|
+
name: 'vision',
|
|
482
|
+
description: 'Analyze an image with a natural-language question, then ask follow-ups in the same session without re-uploading. Session-based.',
|
|
483
|
+
parameters: {
|
|
484
|
+
type: 'object',
|
|
485
|
+
properties: {
|
|
486
|
+
action: { type: 'string', enum: ['analyze', 'ask', 'list-sessions', 'close-session'] },
|
|
487
|
+
imagePath: { type: 'string', description: 'Local path to the image (analyze).' },
|
|
488
|
+
question: { type: 'string', description: 'Natural-language question (analyze, ask).' },
|
|
489
|
+
sessionId: { type: 'string', description: 'Vision session id from a previous analyze (ask, close-session).' },
|
|
490
|
+
model: { type: 'string', description: 'Optional model override for analyze.' },
|
|
491
|
+
},
|
|
492
|
+
required: ['action'],
|
|
493
|
+
},
|
|
494
|
+
},
|
|
495
|
+
// Image-gen — flat params; one image per call.
|
|
496
|
+
// {prompt, outputPath?, outputType?, size?, model?, sourceImage?, transparency?}
|
|
497
|
+
{
|
|
498
|
+
type: 'function',
|
|
499
|
+
name: 'image-gen',
|
|
500
|
+
description: 'Generate or edit an image. WebP by default; force PNG/JPEG via outputPath extension or outputType. sourceImage lets you edit an existing file (background removal, style transfer, etc.).',
|
|
501
|
+
parameters: {
|
|
502
|
+
type: 'object',
|
|
503
|
+
properties: {
|
|
504
|
+
prompt: { type: 'string', description: 'Detailed description of the image OR edit instruction when sourceImage is provided.' },
|
|
505
|
+
outputPath: { type: 'string', description: 'Where to save the image. Extension picks the format (.webp/.png/.jpg).' },
|
|
506
|
+
outputType: { type: 'string', enum: ['webp', 'png', 'jpg', 'jpeg'], description: 'Explicit format. Used when outputPath has no extension.' },
|
|
507
|
+
size: { type: 'string', description: 'Image size, e.g. "1024x1024" or "1792x1024".' },
|
|
508
|
+
model: { type: 'string', description: 'Optional model override.' },
|
|
509
|
+
sourceImage: { type: 'string', description: 'Path to an existing image to edit instead of generating from scratch.' },
|
|
510
|
+
transparency: { type: 'boolean', description: 'Request a transparent background (WebP/PNG output).' },
|
|
511
|
+
},
|
|
512
|
+
required: ['prompt'],
|
|
513
|
+
},
|
|
514
|
+
},
|
|
515
|
+
// Video-gen — flat params; one video per call.
|
|
516
|
+
// {prompt, outputPath?, model?, duration?}
|
|
517
|
+
{
|
|
518
|
+
type: 'function',
|
|
519
|
+
name: 'video-gen',
|
|
520
|
+
description: 'Generate a short video clip from a text prompt. Provider-side files expire in 24h — set outputPath to keep a local copy.',
|
|
521
|
+
parameters: {
|
|
522
|
+
type: 'object',
|
|
523
|
+
properties: {
|
|
524
|
+
prompt: { type: 'string', description: 'Detailed scene description.' },
|
|
525
|
+
outputPath: { type: 'string', description: 'Local .mp4 path. Omit for a temp file that expires.' },
|
|
526
|
+
model: { type: 'string', description: 'Optional model override.' },
|
|
527
|
+
duration: { type: 'integer', description: 'Clip duration in seconds (model-dependent maximum).' },
|
|
528
|
+
},
|
|
529
|
+
required: ['prompt'],
|
|
530
|
+
},
|
|
531
|
+
},
|
|
532
|
+
// Skills — flat params with an `action` enum + per-action fields.
|
|
533
|
+
// Shape mirrors src/tools/skillsTool.js getParameterSchema().
|
|
534
|
+
{
|
|
535
|
+
type: 'function',
|
|
536
|
+
name: 'skills',
|
|
537
|
+
description: 'Browse and load reusable skill recipes from the agent\'s skill library. Use describe → read-section to load only the parts you need. `search` ranks skills by semantic similarity (falls back to substring when embeddings are off). `backfill-search-index` rebuilds the vector index — run after enabling embeddings.',
|
|
538
|
+
parameters: {
|
|
539
|
+
type: 'object',
|
|
540
|
+
properties: {
|
|
541
|
+
action: {
|
|
542
|
+
type: 'string',
|
|
543
|
+
enum: ['list', 'describe', 'read', 'read-section', 'read-file', 'create', 'update', 'delete', 'import', 'search', 'backfill-search-index'],
|
|
544
|
+
},
|
|
545
|
+
name: { type: 'string', description: 'Skill name in kebab-case. Required for describe/read/read-section/read-file/create/update/delete.' },
|
|
546
|
+
content: { type: 'string', description: 'Markdown body. Required for create.' },
|
|
547
|
+
section: { type: 'string', description: 'Section heading to read (read-section).' },
|
|
548
|
+
file: { type: 'string', description: 'Relative file path within the skill directory (read-file).' },
|
|
549
|
+
query: { type: 'string', description: 'Natural-language query for search.' },
|
|
550
|
+
topK: { type: 'integer', description: 'Max ranked results for search. Default 5.' },
|
|
551
|
+
hybrid: { type: 'boolean', description: 'Mix substring scoring via RRF for search. Default true.' },
|
|
552
|
+
source: { type: 'string', description: 'Source file or directory path (import).' },
|
|
553
|
+
files: {
|
|
554
|
+
type: 'array',
|
|
555
|
+
items: {
|
|
556
|
+
type: 'object',
|
|
557
|
+
properties: {
|
|
558
|
+
path: { type: 'string' },
|
|
559
|
+
content: { type: 'string' },
|
|
560
|
+
},
|
|
561
|
+
required: ['path', 'content'],
|
|
562
|
+
},
|
|
563
|
+
description: 'Optional supporting files (create/update).',
|
|
564
|
+
},
|
|
565
|
+
},
|
|
566
|
+
required: ['action'],
|
|
567
|
+
},
|
|
568
|
+
},
|
|
569
|
+
// Code-map — actions-array with `type` discriminator.
|
|
570
|
+
// skeleton: {type, path, level?, includeImports?}
|
|
571
|
+
// read-range: {type, filePath, startLine, endLine}
|
|
572
|
+
{
|
|
573
|
+
type: 'function',
|
|
574
|
+
name: 'code-map',
|
|
575
|
+
description: 'Explore code structure without reading whole files. Two-step: skeleton gives signatures with line numbers; read-range pulls the exact span. Batches both actions in one call.',
|
|
576
|
+
parameters: {
|
|
577
|
+
type: 'object',
|
|
578
|
+
properties: {
|
|
579
|
+
actions: {
|
|
580
|
+
type: 'array',
|
|
581
|
+
items: {
|
|
582
|
+
type: 'object',
|
|
583
|
+
properties: {
|
|
584
|
+
type: { type: 'string', enum: ['skeleton', 'read-range'] },
|
|
585
|
+
path: { type: 'string', description: 'File or directory to scan (skeleton).' },
|
|
586
|
+
level: { type: 'string', enum: ['A.0', 'A.1', 'B.0', 'B.1'], description: 'Skeleton detail level. A=public only, B=all; .0=signatures only, .1=+docstrings. Default B.0.' },
|
|
587
|
+
includeImports: { type: 'boolean', description: 'Include import statements in skeleton output. Default false.' },
|
|
588
|
+
filePath: { type: 'string', description: 'File to read a range from (read-range).' },
|
|
589
|
+
startLine: { type: 'integer', description: '1-indexed first line (read-range).' },
|
|
590
|
+
endLine: { type: 'integer', description: '1-indexed last line, inclusive (read-range).' },
|
|
591
|
+
},
|
|
592
|
+
required: ['type'],
|
|
593
|
+
},
|
|
594
|
+
minItems: 1,
|
|
595
|
+
},
|
|
596
|
+
},
|
|
597
|
+
required: ['actions'],
|
|
598
|
+
},
|
|
599
|
+
},
|
|
600
|
+
// Office — actions-array with dot-namespaced `type` ({family.verb}).
|
|
601
|
+
// Family is one of doc / sheet / pres. Verb is create / read / info.
|
|
602
|
+
// Content shape varies per type; see src/tools/officeTool.js getDescription().
|
|
603
|
+
{
|
|
604
|
+
type: 'function',
|
|
605
|
+
name: 'office',
|
|
606
|
+
description: 'Create or read Word (.docx), Excel (.xlsx), and PowerPoint (.pptx) files. Type is "family.verb" — e.g. "doc.create", "sheet.read", "pres.info".',
|
|
607
|
+
parameters: {
|
|
608
|
+
type: 'object',
|
|
609
|
+
properties: {
|
|
610
|
+
actions: {
|
|
611
|
+
type: 'array',
|
|
612
|
+
items: {
|
|
613
|
+
type: 'object',
|
|
614
|
+
properties: {
|
|
615
|
+
type: {
|
|
616
|
+
type: 'string',
|
|
617
|
+
enum: ['doc.create', 'doc.read', 'doc.info', 'sheet.create', 'sheet.read', 'sheet.info', 'pres.create', 'pres.info'],
|
|
618
|
+
},
|
|
619
|
+
outputPath: { type: 'string', description: 'Destination path for *.create actions. Extension is auto-appended if missing.' },
|
|
620
|
+
filePath: { type: 'string', description: 'Source path for *.read and *.info actions.' },
|
|
621
|
+
content: { type: 'object', description: 'Family-specific document model — see the office tool description for doc/sheet/pres content shapes.', additionalProperties: true },
|
|
622
|
+
format: { type: 'string', enum: ['text', 'html'], description: 'Output format for doc.read. Default text.' },
|
|
623
|
+
sheetName: { type: 'string', description: 'Sheet name to read (sheet.read). Defaults to first sheet.' },
|
|
624
|
+
startRow: { type: 'integer', description: 'First row, 1-indexed (sheet.read). Default 1.' },
|
|
625
|
+
endRow: { type: 'integer', description: 'Last row, 1-indexed inclusive (sheet.read).' },
|
|
626
|
+
includeFormulas: { type: 'boolean', description: 'Return formulas instead of values (sheet.read).' },
|
|
627
|
+
},
|
|
628
|
+
required: ['type'],
|
|
629
|
+
},
|
|
630
|
+
minItems: 1,
|
|
631
|
+
},
|
|
632
|
+
},
|
|
633
|
+
required: ['actions'],
|
|
634
|
+
},
|
|
635
|
+
},
|
|
636
|
+
// Visual-editor — flat params; one action per call. Drives the live
|
|
637
|
+
// visual editor UI (element selection, app navigation, server mgmt).
|
|
638
|
+
// {action, url?, selector?, mode?, projectRoot?}
|
|
639
|
+
{
|
|
640
|
+
type: 'function',
|
|
641
|
+
name: 'visual-editor',
|
|
642
|
+
description: 'Drive the visual editor: pick elements on a live page, navigate the embedded preview, start/stop a dev server, switch select vs preview mode.',
|
|
643
|
+
parameters: {
|
|
644
|
+
type: 'object',
|
|
645
|
+
properties: {
|
|
646
|
+
action: {
|
|
647
|
+
type: 'string',
|
|
648
|
+
enum: [
|
|
649
|
+
'get-context', 'set-app-url', 'get-status', 'clear-context',
|
|
650
|
+
'start-server', 'serve-static', 'detect-project', 'open-editor',
|
|
651
|
+
'highlight', 'scroll-to', 'get-source', 'reload', 'set-mode',
|
|
652
|
+
],
|
|
653
|
+
},
|
|
654
|
+
url: { type: 'string', description: 'Target URL (set-app-url, open-editor).' },
|
|
655
|
+
selector: { type: 'string', description: 'CSS selector (highlight, scroll-to, get-source).' },
|
|
656
|
+
mode: { type: 'string', enum: ['select', 'preview'], description: 'Interaction mode (set-mode).' },
|
|
657
|
+
projectRoot: { type: 'string', description: 'Project root for start-server / serve-static / detect-project.' },
|
|
658
|
+
},
|
|
659
|
+
required: ['action'],
|
|
660
|
+
},
|
|
661
|
+
},
|
|
662
|
+
// WhatsApp — flat params, mirrors the tool's getParameterSchema() exactly.
|
|
663
|
+
// READ-ONLY surface: no message sending.
|
|
664
|
+
// {action, chatId?, messageId?, searchTerm?, chatIds?, filter?, type?, page?, pageSize?, unreadOnly?, limit?, before?, after?}
|
|
665
|
+
{
|
|
666
|
+
type: 'function',
|
|
667
|
+
name: 'whatsapp',
|
|
668
|
+
description: 'Read-only access to the user\'s linked WhatsApp account (list chats, fetch messages, search, download media). No send capability.',
|
|
669
|
+
parameters: {
|
|
670
|
+
type: 'object',
|
|
671
|
+
properties: {
|
|
672
|
+
action: { type: 'string', enum: ['list-chats', 'get-messages', 'search', 'chat-info', 'get-media', 'status'] },
|
|
673
|
+
chatId: { type: 'string', description: 'WhatsApp chat id (get-messages, chat-info, get-media).' },
|
|
674
|
+
messageId: { type: 'string', description: 'Message id with attached media (get-media).' },
|
|
675
|
+
searchTerm: { type: 'string', description: 'Full-text search query (search).' },
|
|
676
|
+
chatIds: { type: 'array', items: { type: 'string' }, description: 'Restrict search to specific chats.' },
|
|
677
|
+
filter: { type: 'string', description: 'List-chats free-text filter (matches chat name).' },
|
|
678
|
+
type: { type: 'string', enum: ['all', 'group', 'individual'], description: 'Filter list-chats by chat type.' },
|
|
679
|
+
page: { type: 'integer', description: 'List-chats pagination (1-indexed).' },
|
|
680
|
+
pageSize: { type: 'integer', description: 'List-chats page size.' },
|
|
681
|
+
unreadOnly: { type: 'boolean', description: 'List-chats: only chats with unread messages.' },
|
|
682
|
+
limit: { type: 'integer', description: 'Get-messages max count.' },
|
|
683
|
+
before: { type: 'string', description: 'Get-messages cursor: messages before this id.' },
|
|
684
|
+
after: { type: 'string', description: 'Get-messages cursor: messages after this id.' },
|
|
685
|
+
},
|
|
686
|
+
required: ['action'],
|
|
687
|
+
},
|
|
688
|
+
},
|
|
689
|
+
// Memory — actions-array (canonical plural shape, matches filesystem /
|
|
690
|
+
// terminal / taskmanager). Supports batching multiple ops in one
|
|
691
|
+
// tool call: e.g. read three memories at once, or list+search in
|
|
692
|
+
// the same turn. Singular {action, ...} is still accepted by the
|
|
693
|
+
// runtime as backward-compat but the schema teaches plural.
|
|
694
|
+
{
|
|
695
|
+
type: 'function',
|
|
696
|
+
name: 'memory',
|
|
697
|
+
description: 'Store and retrieve persistent memories across sessions, semantic-search them (when embeddings are enabled — gracefully falls back to substring otherwise), and browse your own pre-compaction conversation archive via the `reminisce` action. Pack multiple operations into one call.',
|
|
698
|
+
parameters: {
|
|
699
|
+
type: 'object',
|
|
700
|
+
properties: {
|
|
701
|
+
actions: {
|
|
702
|
+
type: 'array',
|
|
703
|
+
items: {
|
|
704
|
+
type: 'object',
|
|
705
|
+
properties: {
|
|
706
|
+
type: { type: 'string', enum: ['add', 'update', 'append', 'delete', 'read', 'list', 'search', 'semantic-search', 'backfill-embeddings', 'reminisce-backfill-embeddings', 'forget-stale', 'publish-to-team', 'search-team', 'unpublish-from-team', 'stats', 'reminisce'], description: 'The memory operation to perform. `semantic-search` uses embeddings over declared memories. `backfill-embeddings` rebuilds the memory index. `reminisce-backfill-embeddings` rebuilds the conversation-archive index. `forget-stale` deletes memories older than ageDays. `publish-to-team` copies an existing memory into a team\'s shared pool (requires team membership). `search-team` semantic-searches a team pool. `unpublish-from-team` removes from a team pool.' },
|
|
707
|
+
id: { type: 'string', description: 'Memory id. Required for: update, append, delete, read (of memory entries).' },
|
|
708
|
+
title: { type: 'string', description: 'Short title. Required for: add. Optional for: update.' },
|
|
709
|
+
content: { type: 'string', description: 'Full memory content. Required for: add, append. Optional for: update.' },
|
|
710
|
+
description: { type: 'string', description: 'Short summary. Optional for: add, update.' },
|
|
711
|
+
query: { type: 'string', description: 'Search query. Required for: search, semantic-search, reminisce search.' },
|
|
712
|
+
topK: { type: 'integer', description: 'Max ranked results for semantic-search. Default 10. Positive integer.' },
|
|
713
|
+
hybrid: { type: 'boolean', description: 'For semantic-search: mix substring scoring via Reciprocal Rank Fusion. Default true — preserves exact-match precision while adding paraphrase recall.' },
|
|
714
|
+
ageDays: { type: 'number', description: 'Age threshold for forget-stale. Default 90. Memories older than this become candidates for deletion.' },
|
|
715
|
+
dryRun: { type: 'boolean', description: 'For forget-stale: preview candidates without deleting. Default false.' },
|
|
716
|
+
includePlans: { type: 'boolean', description: 'For forget-stale: include plan/* memories. Default false (they\'re the active working plan).' },
|
|
717
|
+
teamId: { type: 'string', description: 'Team identifier — required for publish-to-team, search-team, unpublish-from-team. Caller must be a member of the team.' },
|
|
718
|
+
level: { type: 'string', enum: ['titles', 'descriptions', 'full'], description: 'Detail level for memory list/search output.' },
|
|
719
|
+
|
|
720
|
+
// ── reminisce-specific params ─────────────────────────
|
|
721
|
+
mode: { type: 'string', enum: ['overview', 'range', 'search', 'semantic-search', 'around', 'byTool', 'read'], description: 'Reminisce sub-mode. Required when type="reminisce". `semantic-search` ranks archived messages by embedding similarity to `query` (hybrid: semantic + substring via RRF when embeddings are enabled; falls back to substring `search` when disabled).' },
|
|
722
|
+
messageId: { type: 'string', description: 'Stable pointer into the conversation archive (reminisce around/read).' },
|
|
723
|
+
from: { type: 'string', description: 'ISO timestamp lower bound (reminisce range).' },
|
|
724
|
+
to: { type: 'string', description: 'ISO timestamp upper bound (reminisce range).' },
|
|
725
|
+
offset: { type: 'integer', description: 'Pagination offset (reminisce range).' },
|
|
726
|
+
limit: { type: 'integer', description: 'Max entries returned (reminisce range/byTool). 1–100.' },
|
|
727
|
+
maxResults: { type: 'integer', description: 'Max search matches returned (reminisce search). 1–50.' },
|
|
728
|
+
role: { type: 'string', enum: ['user', 'assistant', 'system'], description: 'Filter by message role (reminisce search).' },
|
|
729
|
+
cursor: { type: 'string', description: 'Opaque pagination cursor from a previous reminisce search/byTool response.' },
|
|
730
|
+
toolId: { type: 'string', description: 'Filter by toolId (reminisce byTool).' },
|
|
731
|
+
before: { type: 'integer', description: 'Number of MESSAGES before the target to include (reminisce around). 0–20.' },
|
|
732
|
+
after: { type: 'integer', description: 'Number of MESSAGES after the target to include (reminisce around). 0–20.' },
|
|
733
|
+
lineFrom: { type: 'integer', description: 'First line to read (reminisce read).' },
|
|
734
|
+
lineTo: { type: 'integer', description: 'Last line to read (reminisce read). Window capped at 500 lines.' },
|
|
735
|
+
contentFrom: { type: 'integer', description: 'First character offset (reminisce read).' },
|
|
736
|
+
contentTo: { type: 'integer', description: 'Last character offset (reminisce read). Window capped at 16000 chars.' },
|
|
737
|
+
detail: { type: 'string', enum: ['default', 'full'], description: 'Return shape for reminisce results.' },
|
|
738
|
+
},
|
|
739
|
+
required: ['type'],
|
|
740
|
+
},
|
|
741
|
+
},
|
|
742
|
+
},
|
|
743
|
+
required: ['actions'],
|
|
744
|
+
},
|
|
745
|
+
},
|
|
746
|
+
// Composio — third-party integration hub (~250 apps). actions-array with
|
|
747
|
+
// type discriminator. One operation per call to keep the OAuth + execute
|
|
748
|
+
// round-trips traceable per tool invocation.
|
|
749
|
+
{
|
|
750
|
+
type: 'function',
|
|
751
|
+
name: 'composio',
|
|
752
|
+
description: 'Third-party integration hub: connect to apps like Gmail, Slack, GitHub, Linear, Notion, Drive, Sheets, Calendar via Composio. Prefer `find-action` (semantic search across the whole catalog) when you don\'t already know the slug — it returns ranked candidates with their inputSchemas attached. Use `list-toolkits` / `list-tools` only when you need the full enumeration. `backfill-actions-index` builds the search index (run it once after enabling embeddings or after Composio refreshes its catalog).',
|
|
753
|
+
parameters: {
|
|
754
|
+
type: 'object',
|
|
755
|
+
properties: {
|
|
756
|
+
actions: {
|
|
757
|
+
type: 'array',
|
|
758
|
+
description: 'Array with a single action object.',
|
|
759
|
+
items: {
|
|
760
|
+
type: 'object',
|
|
761
|
+
properties: {
|
|
762
|
+
type: { type: 'string', enum: ['list-toolkits', 'list-tools', 'connect', 'connection-status', 'execute', 'find-action', 'backfill-actions-index'] },
|
|
763
|
+
toolkitSlug: { type: 'string', description: 'Toolkit slug — required for list-tools, connect, connection-status, execute. Optional for find-action (narrows the search to one toolkit). e.g. "github", "slack".' },
|
|
764
|
+
actionSlug: { type: 'string', description: 'Composio action slug — required for execute. e.g. "GITHUB_CREATE_AN_ISSUE".' },
|
|
765
|
+
arguments: { type: 'object', additionalProperties: true, description: 'Arguments for execute, matching the action\'s inputSchema (discover via list-tools or find-action).' },
|
|
766
|
+
query: { type: 'string', description: 'Natural-language query for find-action. e.g. "send a DM in Slack", "open a GitHub issue".' },
|
|
767
|
+
topK: { type: 'integer', description: 'Max ranked results for find-action. Default 10. Positive integer.' },
|
|
768
|
+
hybrid: { type: 'boolean', description: 'For find-action: mix substring scoring via Reciprocal Rank Fusion. Default true.' },
|
|
769
|
+
},
|
|
770
|
+
required: ['type'],
|
|
771
|
+
},
|
|
772
|
+
minItems: 1,
|
|
773
|
+
maxItems: 1,
|
|
774
|
+
},
|
|
775
|
+
},
|
|
776
|
+
required: ['actions'],
|
|
777
|
+
},
|
|
778
|
+
},
|
|
779
|
+
// PlatformControl — control Loxia platform features (schedules, agents,
|
|
780
|
+
// teams, flows). Wide param union; per-action requirements are validated
|
|
781
|
+
// server-side. Call list-capabilities first to discover this agent's
|
|
782
|
+
// permission level for each feature.
|
|
783
|
+
{
|
|
784
|
+
type: 'function',
|
|
785
|
+
name: 'platformcontrol',
|
|
786
|
+
description: 'Control Loxia platform features: scheduled tasks, agents, teams, and flows (CRUD + execute). Per-feature permission applies. Call list-capabilities to discover what this agent can do.',
|
|
787
|
+
parameters: {
|
|
788
|
+
type: 'object',
|
|
789
|
+
properties: {
|
|
790
|
+
actions: {
|
|
791
|
+
type: 'array',
|
|
792
|
+
description: 'Array with a single action object.',
|
|
793
|
+
items: {
|
|
794
|
+
type: 'object',
|
|
795
|
+
properties: {
|
|
796
|
+
type: {
|
|
797
|
+
type: 'string',
|
|
798
|
+
enum: [
|
|
799
|
+
'list-capabilities',
|
|
800
|
+
// Scheduled tasks
|
|
801
|
+
'list-schedules', 'get-schedule', 'create-schedule', 'update-schedule',
|
|
802
|
+
'delete-schedule', 'toggle-schedule', 'trigger-schedule', 'list-presets',
|
|
803
|
+
'schedule-self-resume',
|
|
804
|
+
// Agent CRUD
|
|
805
|
+
'list-agents', 'create-agent', 'update-agent', 'delete-agent',
|
|
806
|
+
// Team CRUD + membership
|
|
807
|
+
'list-teams', 'create-team', 'update-team', 'delete-team',
|
|
808
|
+
'add-team-member', 'remove-team-member',
|
|
809
|
+
// Flow CRUD + execution
|
|
810
|
+
'list-flows', 'get-flow', 'create-flow', 'update-flow',
|
|
811
|
+
'delete-flow', 'execute-flow', 'dry-run-flow',
|
|
812
|
+
],
|
|
813
|
+
},
|
|
814
|
+
// ── Schedule fields ──
|
|
815
|
+
scheduleId: { type: 'string', description: 'Required for get/update/delete/toggle/trigger-schedule.' },
|
|
816
|
+
name: { type: 'string', description: 'Name — required for create-schedule, create-agent, create-team, create-flow. Optional for updates and schedule-self-resume.' },
|
|
817
|
+
prompt: { type: 'string', description: 'Required for create-schedule and schedule-self-resume.' },
|
|
818
|
+
cronExpression: { type: 'string', description: 'Required for create-schedule. 5-field cron OR a preset name (call list-presets).' },
|
|
819
|
+
targetAgentId: { type: 'string', description: 'create-schedule target. "self" = this agent. Defaults to caller in "own" mode.' },
|
|
820
|
+
enabled: { type: 'boolean', description: 'Defaults to true on create. Used by toggle-schedule.' },
|
|
821
|
+
runOnce: { type: 'boolean' },
|
|
822
|
+
maxRuns: { type: 'integer' },
|
|
823
|
+
startDate: { type: 'string', description: 'ISO datetime.' },
|
|
824
|
+
endDate: { type: 'string', description: 'ISO datetime.' },
|
|
825
|
+
description: { type: 'string' },
|
|
826
|
+
runAt: { type: 'string', description: 'ISO datetime — one-shot wake time for schedule-self-resume (future, minute-resolution).' },
|
|
827
|
+
// ── Agent fields ──
|
|
828
|
+
agentId: { type: 'string', description: 'Required for update-agent, delete-agent, add/remove-team-member. "self" sugar accepted by team ops.' },
|
|
829
|
+
systemPrompt: { type: 'string', description: 'Required for create-agent.' },
|
|
830
|
+
model: { type: 'string' },
|
|
831
|
+
capabilities: { type: 'array', items: { type: 'string' } },
|
|
832
|
+
skills: { type: 'array', items: { type: 'string' } },
|
|
833
|
+
toolConfig: { type: 'object', additionalProperties: true, description: 'Per-tool config object. Child platformcontrol.* is CLAMPED to caller\'s level (no privilege escalation).' },
|
|
834
|
+
directoryAccess: { type: 'object', additionalProperties: true },
|
|
835
|
+
// ── Team fields ──
|
|
836
|
+
teamId: { type: 'string', description: 'Required for update-team, delete-team, add/remove-team-member.' },
|
|
837
|
+
color: { type: 'string' },
|
|
838
|
+
// ── Flow fields ──
|
|
839
|
+
flowId: { type: 'string', description: 'Required for get/update/delete/execute/dry-run-flow.' },
|
|
840
|
+
nodes: { type: 'array', items: { type: 'object', additionalProperties: true } },
|
|
841
|
+
edges: { type: 'array', items: { type: 'object', additionalProperties: true } },
|
|
842
|
+
variables: { type: 'object', additionalProperties: true },
|
|
843
|
+
flow: { type: 'object', additionalProperties: true, description: 'Full flow definition — alternative to flowId for dry-run-flow (lint without saving).' },
|
|
844
|
+
input: { type: 'object', additionalProperties: true, description: 'Execution input for execute-flow.' },
|
|
845
|
+
},
|
|
846
|
+
required: ['type'],
|
|
847
|
+
},
|
|
848
|
+
minItems: 1,
|
|
849
|
+
maxItems: 1,
|
|
850
|
+
},
|
|
851
|
+
},
|
|
852
|
+
required: ['actions'],
|
|
853
|
+
},
|
|
854
|
+
},
|
|
855
|
+
// Desktop — flat params per call (desktop's parseParameters() returns
|
|
856
|
+
// parsed.parameters || parsed). Coord-or-intent unions: click/scroll/drag
|
|
857
|
+
// accept either raw (x, y) OR a natural-language `intent` the grounding
|
|
858
|
+
// model resolves to coords from a fresh screenshot.
|
|
859
|
+
{
|
|
860
|
+
type: 'function',
|
|
861
|
+
name: 'desktop',
|
|
862
|
+
description: 'Drive the user\'s OS: screenshot, click, type, key_press, scroll, drag, list/focus windows. Prefer intent-driven actions (e.g. {"action":"click","intent":"orange Save button"}) over raw coords — they screenshot + ground + act in one step.',
|
|
863
|
+
parameters: {
|
|
864
|
+
type: 'object',
|
|
865
|
+
properties: {
|
|
866
|
+
action: {
|
|
867
|
+
type: 'string',
|
|
868
|
+
enum: ['screenshot', 'click', 'type', 'key_press', 'scroll', 'drag', 'list_windows', 'focus_window', 'describe_capabilities'],
|
|
869
|
+
},
|
|
870
|
+
// ── Coord-or-intent (click, scroll, drag) ──
|
|
871
|
+
x: { type: 'number', description: 'X coord. Use when not passing intent.' },
|
|
872
|
+
y: { type: 'number', description: 'Y coord. Use when not passing intent.' },
|
|
873
|
+
intent: { type: 'string', description: 'Natural-language description ("the orange Save button"). Tool screenshots, grounds via vision LLM, then clicks/scrolls/drags.' },
|
|
874
|
+
// ── Click ──
|
|
875
|
+
button: { type: 'string', enum: ['left', 'right', 'middle'], description: 'Click/drag button. Defaults to left.' },
|
|
876
|
+
count: { type: 'integer', description: '1 = single click (default), 2 = double click.' },
|
|
877
|
+
// ── Type ──
|
|
878
|
+
text: { type: 'string', description: 'Required for action="type".' },
|
|
879
|
+
delayMs: { type: 'integer', description: 'Optional per-keystroke delay for type.' },
|
|
880
|
+
// ── KeyPress ──
|
|
881
|
+
keys: { type: 'array', items: { type: 'string' }, description: 'Required for action="key_press". Chord like ["Control","S"].' },
|
|
882
|
+
// ── Scroll ──
|
|
883
|
+
dy: { type: 'number', description: 'Required for action="scroll". Positive = down.' },
|
|
884
|
+
// ── Drag ──
|
|
885
|
+
from: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' } }, description: 'Drag start coords (alternative to fromIntent).' },
|
|
886
|
+
to: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' } }, description: 'Drag end coords (alternative to toIntent).' },
|
|
887
|
+
fromIntent: { type: 'string', description: 'Drag start intent.' },
|
|
888
|
+
toIntent: { type: 'string', description: 'Drag end intent.' },
|
|
889
|
+
// ── FocusWindow ──
|
|
890
|
+
titleMatch: { type: 'string', description: 'Required for action="focus_window". Substring match against window titles.' },
|
|
891
|
+
// ── Screenshot ──
|
|
892
|
+
region: { type: 'object', properties: { x: { type: 'number' }, y: { type: 'number' }, width: { type: 'number' }, height: { type: 'number' } }, description: 'Optional capture region; defaults to full screen.' },
|
|
893
|
+
},
|
|
894
|
+
required: ['action'],
|
|
895
|
+
},
|
|
896
|
+
},
|
|
897
|
+
// Import Analyzer — flat params. Single-operation tool; parseParameters
|
|
898
|
+
// accepts the object directly.
|
|
899
|
+
{
|
|
900
|
+
type: 'function',
|
|
901
|
+
name: 'import-analyzer',
|
|
902
|
+
description: 'Analyze JS/TS imports: detect missing files, missing exports, circular dependencies, and unused exports. Use mode="quick" for fast scans.',
|
|
903
|
+
parameters: {
|
|
904
|
+
type: 'object',
|
|
905
|
+
properties: {
|
|
906
|
+
path: { type: 'string', description: 'Directory to analyze. Default ".".' },
|
|
907
|
+
mode: { type: 'string', enum: ['full', 'quick', 'fix'], description: 'Default "full".' },
|
|
908
|
+
output: { type: 'string', enum: ['summary', 'detailed', 'json'], description: 'Default "summary".' },
|
|
909
|
+
ignoreFile: { type: 'string', description: 'Ignore file name. Default ".gitignore".' },
|
|
910
|
+
},
|
|
911
|
+
},
|
|
912
|
+
},
|
|
913
|
+
// Dependency Resolver — flat params. Single-operation tool. Always creates
|
|
914
|
+
// a backup before modifying package.json.
|
|
915
|
+
{
|
|
916
|
+
type: 'function',
|
|
917
|
+
name: 'dependency-resolver',
|
|
918
|
+
description: 'Check or update npm dependencies to latest compatible versions. Creates a .backup.json before modifying package.json. mode="check" is read-only.',
|
|
919
|
+
parameters: {
|
|
920
|
+
type: 'object',
|
|
921
|
+
properties: {
|
|
922
|
+
path: { type: 'string', description: 'Project directory with package.json. Default ".".' },
|
|
923
|
+
mode: { type: 'string', enum: ['check', 'fix', 'auto'], description: 'Default "check" (read-only).' },
|
|
924
|
+
includeDev: { type: 'boolean', description: 'Include devDependencies. Default true.' },
|
|
925
|
+
},
|
|
926
|
+
},
|
|
927
|
+
},
|
|
928
|
+
// Static Analysis — actions-array with type discriminator. Heterogeneous
|
|
929
|
+
// surface across JS/TS/Python/CSS analysis, ESLint, Prettier, Sparrow SAST,
|
|
930
|
+
// and structured-file validation.
|
|
931
|
+
{
|
|
932
|
+
type: 'function',
|
|
933
|
+
name: 'staticanalysis',
|
|
934
|
+
description: 'Static code analysis: syntax/type/import errors, ESLint, Prettier formatting, Sparrow SAST (12 languages, no external deps), structured-file validation (JSON/YAML/XML/TOML/INI/ENV). One action per call.',
|
|
935
|
+
parameters: {
|
|
936
|
+
type: 'object',
|
|
937
|
+
properties: {
|
|
938
|
+
actions: {
|
|
939
|
+
type: 'array',
|
|
940
|
+
description: 'Array with a single action object.',
|
|
941
|
+
items: {
|
|
942
|
+
type: 'object',
|
|
943
|
+
properties: {
|
|
944
|
+
type: {
|
|
945
|
+
type: 'string',
|
|
946
|
+
enum: [
|
|
947
|
+
'analyze', 'analyze-project', 'fix', 'format',
|
|
948
|
+
'security-scan', 'security-scan-project',
|
|
949
|
+
'sparrow-scan', 'sparrow-scan-project',
|
|
950
|
+
'validate-config', 'validate-config-directory',
|
|
951
|
+
'validate-structured',
|
|
952
|
+
],
|
|
953
|
+
},
|
|
954
|
+
filePath: { type: 'string', description: 'Required for single-file actions (analyze, fix, format, security-scan, sparrow-scan, validate-config, validate-structured by path).' },
|
|
955
|
+
directory: { type: 'string', description: 'Required for project-wide actions (analyze-project, security-scan-project, sparrow-scan-project, validate-config-directory).' },
|
|
956
|
+
pattern: { type: 'string', description: 'Optional glob pattern, e.g. "**/*.js".' },
|
|
957
|
+
includeWarnings: { type: 'boolean', description: 'Include warnings in results. Default true.' },
|
|
958
|
+
maxErrors: { type: 'integer', description: 'Cap number of errors returned.' },
|
|
959
|
+
writeFile: { type: 'boolean', description: 'For fix/format: write the result back to disk.' },
|
|
960
|
+
content: { type: 'string', description: 'Inline content for validate-structured (requires format).' },
|
|
961
|
+
format: { type: 'string', enum: ['json', 'yaml', 'xml', 'toml', 'ini', 'env'], description: 'Format override for validate-structured (auto-detected from filePath if omitted).' },
|
|
962
|
+
},
|
|
963
|
+
required: ['type'],
|
|
964
|
+
},
|
|
965
|
+
minItems: 1,
|
|
966
|
+
maxItems: 1,
|
|
967
|
+
},
|
|
968
|
+
},
|
|
969
|
+
required: ['actions'],
|
|
970
|
+
},
|
|
971
|
+
},
|
|
972
|
+
// Clone Detection — actions-array, currently a single type. Future
|
|
973
|
+
// detection modes will land alongside detect-clones in this enum.
|
|
974
|
+
{
|
|
975
|
+
type: 'function',
|
|
976
|
+
name: 'clonedetection',
|
|
977
|
+
description: 'Detect exact and similar code clones in JS/TS/Vue projects. Returns refactoring recommendations with priorities. One action per call.',
|
|
978
|
+
parameters: {
|
|
979
|
+
type: 'object',
|
|
980
|
+
properties: {
|
|
981
|
+
actions: {
|
|
982
|
+
type: 'array',
|
|
983
|
+
description: 'Array with a single action object.',
|
|
984
|
+
items: {
|
|
985
|
+
type: 'object',
|
|
986
|
+
properties: {
|
|
987
|
+
type: { type: 'string', enum: ['detect-clones'] },
|
|
988
|
+
directory: { type: 'string', description: 'Directory to analyze. Required.' },
|
|
989
|
+
minTokens: { type: 'integer', description: 'Minimum token count per clone. Default 50; lower = more sensitive.' },
|
|
990
|
+
minLines: { type: 'integer', description: 'Minimum line count per clone. Default 5.' },
|
|
991
|
+
similarityThreshold: { type: 'number', description: '0-1 similarity threshold. Default 0.85.' },
|
|
992
|
+
priorityFilter: { type: 'string', enum: ['high', 'medium', 'low'], description: 'Filter detected clones by priority.' },
|
|
993
|
+
maxResults: { type: 'integer', description: 'Cap number of clones returned.' },
|
|
994
|
+
outputMode: { type: 'string', enum: ['summary', 'detailed', 'recommendations'], description: 'Default "detailed".' },
|
|
995
|
+
},
|
|
996
|
+
required: ['type', 'directory'],
|
|
997
|
+
},
|
|
998
|
+
minItems: 1,
|
|
999
|
+
maxItems: 1,
|
|
1000
|
+
},
|
|
1001
|
+
},
|
|
1002
|
+
required: ['actions'],
|
|
1003
|
+
},
|
|
1004
|
+
},
|
|
1005
|
+
];
|
|
1006
|
+
|
|
1007
|
+
/**
|
|
1008
|
+
* Build the tools array for a specific agent based on its enabled capabilities.
|
|
1009
|
+
* Keeps the model's tool list minimal — it sees only what the agent actually
|
|
1010
|
+
* has access to, which also reduces prompt size and ambiguity.
|
|
1011
|
+
*
|
|
1012
|
+
* @param {string[]} capabilities - Agent capabilities (matches tool ids)
|
|
1013
|
+
* @returns {Array} Function schemas the agent is allowed to invoke
|
|
1014
|
+
*/
|
|
1015
|
+
export function getToolSchemasForAgent(capabilities = []) {
|
|
1016
|
+
if (!Array.isArray(capabilities) || capabilities.length === 0) {
|
|
1017
|
+
// Agent has no capability list — give it the full catalog rather than
|
|
1018
|
+
// leaving it tool-less. Matches the CLI's existing "include all" fallback.
|
|
1019
|
+
return OPENAI_FUNCTION_SCHEMAS;
|
|
1020
|
+
}
|
|
1021
|
+
const allowed = new Set(capabilities.map(c => String(c).toLowerCase()));
|
|
1022
|
+
return OPENAI_FUNCTION_SCHEMAS.filter(s => allowed.has(s.name.toLowerCase()));
|
|
1023
|
+
}
|
|
1024
|
+
|
|
1025
|
+
/**
|
|
1026
|
+
* Names of every tool that has a native function schema in this file.
|
|
1027
|
+
* Importable as a Set so other modules (notably baseTool's system-prompt
|
|
1028
|
+
* builder) can decide "is the structured schema the canonical source of
|
|
1029
|
+
* truth for this tool, or do we still need to bake a text description
|
|
1030
|
+
* into the system prompt?". When a model uses the Responses API (which
|
|
1031
|
+
* is RLHFed for native function-calling), the structured schema in
|
|
1032
|
+
* `tools:` is the canonical source — emitting the text description as
|
|
1033
|
+
* well doubles the same information in the context window.
|
|
1034
|
+
*/
|
|
1035
|
+
export const NATIVE_SCHEMA_TOOL_NAMES = new Set(
|
|
1036
|
+
OPENAI_FUNCTION_SCHEMAS.map(s => s.name.toLowerCase())
|
|
1037
|
+
);
|
|
1038
|
+
|
|
1039
|
+
export default OPENAI_FUNCTION_SCHEMAS;
|