onbuzz 4.8.3 → 4.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1100) hide show
  1. package/bin/cli.js +27 -1
  2. package/bin/composio-cli.js +431 -0
  3. package/package.json +1 -1
  4. package/scripts/build-onboarding-doc.cjs +805 -0
  5. package/scripts/composio-bench/README.md +151 -0
  6. package/scripts/memory-bench/bench.mjs +576 -0
  7. package/scripts/memory-bench/live-after-2026-05-21T16-20-52-767Z.json +150 -0
  8. package/scripts/memory-bench/live-after-2026-05-21T16-37-17-147Z.json +795 -0
  9. package/scripts/memory-bench/live-after-final-2026-05-21T17-16-02-947Z.json +766 -0
  10. package/scripts/memory-bench/live-after-v2-2026-05-21T16-52-26-833Z.json +890 -0
  11. package/scripts/memory-bench/live-after-v3-2026-05-21T17-05-40-622Z.json +955 -0
  12. package/scripts/memory-bench/live-probe-v2.mjs +412 -0
  13. package/scripts/memory-bench/live-probe.mjs +387 -0
  14. package/scripts/memory-bench/live-smoke-2026-05-21T16-22-35-945Z.json +36 -0
  15. package/scripts/memory-bench/live-smoke2-2026-05-21T16-24-14-095Z.json +36 -0
  16. package/scripts/memory-bench/live-smoke3-2026-05-21T16-26-54-093Z.json +123 -0
  17. package/scripts/memory-bench/live-v2-baseline-2026-05-23T22-43-20-757Z.json +628 -0
  18. package/scripts/memory-bench/live-v2-directive-2026-05-23T21-32-41-369Z.json +628 -0
  19. package/scripts/memory-bench/live-v2-smoke-2026-05-23T20-06-37-325Z.json +34 -0
  20. package/scripts/memory-bench/live-v2-smoke-2026-05-23T20-12-48-199Z.json +38 -0
  21. package/scripts/memory-bench/results-baseline-2026-05-19T11-23-12-245Z.json +39 -0
  22. package/scripts/memory-bench/results-baseline-2026-05-19T11-30-28-763Z.json +1024 -0
  23. package/scripts/memory-bench/results-baseline-2026-05-19T11-34-19-299Z.json +1007 -0
  24. package/scripts/memory-bench/results-baseline-2026-05-19T11-44-18-054Z.json +1432 -0
  25. package/scripts/memory-bench/results-nudge-combined-2026-05-19T12-00-37-465Z.json +1413 -0
  26. package/scripts/memory-bench/results-nudge-directive-2026-05-19T11-36-52-963Z.json +210 -0
  27. package/scripts/memory-bench/results-nudge-directive-2026-05-19T11-49-55-790Z.json +1464 -0
  28. package/scripts/memory-bench/results-nudge-echo-catalog-2026-05-19T11-39-01-829Z.json +232 -0
  29. package/scripts/memory-bench/results-nudge-echo-catalog-2026-05-19T11-55-12-705Z.json +1397 -0
  30. package/scripts/memory-bench/scenarios-v2.mjs +123 -0
  31. package/scripts/memory-bench/scenarios.mjs +178 -0
  32. package/scripts/office-bench/generate-samples.mjs +180 -0
  33. package/scripts/op-posture-bench/bench.mjs +397 -0
  34. package/scripts/op-posture-bench/probe.mjs +87 -0
  35. package/scripts/op-posture-bench/results-2026-05-18T20-29-13-941Z.json +57 -0
  36. package/scripts/op-posture-bench/results-2026-05-18T20-38-36-400Z.json +3071 -0
  37. package/scripts/op-posture-bench/scenarios.mjs +60 -0
  38. package/scripts/op-posture-bench/variants.mjs +68 -0
  39. package/scripts/stub-bench/bench.mjs +439 -0
  40. package/scripts/stub-bench/fixture/auth.js +41 -0
  41. package/scripts/stub-bench/results-2026-05-19T10-33-27-045Z.json +99 -0
  42. package/scripts/stub-bench/results-2026-05-19T10-35-08-240Z.json +920 -0
  43. package/scripts/stub-bench/results-2026-05-19T10-40-12-166Z.json +463 -0
  44. package/scripts/verify/azure-custom-embeddings.mjs +152 -0
  45. package/scripts/verify/azure-embeddings.mjs +146 -0
  46. package/scripts/verify/composio-toolkits.mjs +453 -0
  47. package/scripts/verify/local-embeddings.mjs +171 -0
  48. package/scripts/verify/openai-embeddings.mjs +140 -0
  49. package/src/__tests__/composioCliFlags.test.js +239 -0
  50. package/src/core/__tests__/agentScheduler.autoRecall.test.js +215 -0
  51. package/src/core/__tests__/agentScheduler.codebaseKnowledge.test.js +65 -0
  52. package/src/core/__tests__/agentScheduler.errorCategorisation.test.js +169 -0
  53. package/src/core/__tests__/agentScheduler.memoryInjection.test.js +78 -0
  54. package/src/core/agentPool.js +10 -0
  55. package/src/core/agentScheduler.js +273 -36
  56. package/src/index.js +82 -4
  57. package/src/interfaces/__tests__/bulkAgentRoute.test.js +290 -0
  58. package/src/interfaces/__tests__/composioRoutes.test.js +318 -0
  59. package/src/interfaces/webServer.js +436 -2
  60. package/src/interfaces/webServer.js.bak +7047 -0
  61. package/src/services/__tests__/aiService.core.test.js +420 -0
  62. package/src/services/__tests__/aiService.embed.test.js +172 -0
  63. package/src/services/__tests__/apiKeyManager.getEmbeddingApiKey.test.js +86 -0
  64. package/src/services/__tests__/codeMapStubRenderer.test.js +207 -0
  65. package/src/services/__tests__/codebaseKnowledgeService.test.js +427 -0
  66. package/src/services/__tests__/composioService.test.js +714 -0
  67. package/src/services/__tests__/memoryService.appendAndCatalog.test.js +139 -0
  68. package/src/services/__tests__/telegramService.test.js +91 -0
  69. package/src/services/aiService.js +137 -0
  70. package/src/services/apiKeyManager.js +61 -0
  71. package/src/services/codeMapStubRenderer.js +142 -0
  72. package/src/services/codebaseKnowledgeService.js +430 -0
  73. package/src/services/composioService.js +729 -0
  74. package/src/services/embeddings/__tests__/autoRecall.test.js +237 -0
  75. package/src/services/embeddings/__tests__/azureCustomProvider.test.js +232 -0
  76. package/src/services/embeddings/__tests__/cloudProviders.test.js +339 -0
  77. package/src/services/embeddings/__tests__/embeddingService.test.js +417 -0
  78. package/src/services/embeddings/__tests__/embeddingsConfig.test.js +182 -0
  79. package/src/services/embeddings/__tests__/inMemoryJsonStore.test.js +207 -0
  80. package/src/services/embeddings/__tests__/localProvider.test.js +263 -0
  81. package/src/services/embeddings/__tests__/providerInterface.test.js +209 -0
  82. package/src/services/embeddings/autoRecall.js +219 -0
  83. package/src/services/embeddings/embeddingService.js +452 -0
  84. package/src/services/embeddings/embeddingsConfig.js +203 -0
  85. package/src/services/embeddings/indexers/__tests__/agentIndexer.test.js +232 -0
  86. package/src/services/embeddings/indexers/__tests__/composioIndexer.test.js +265 -0
  87. package/src/services/embeddings/indexers/__tests__/memoryIndexer.test.js +418 -0
  88. package/src/services/embeddings/indexers/__tests__/reminisceIndexer.test.js +357 -0
  89. package/src/services/embeddings/indexers/__tests__/skillsIndexer.test.js +145 -0
  90. package/src/services/embeddings/indexers/__tests__/taskIndexer.test.js +146 -0
  91. package/src/services/embeddings/indexers/agentIndexer.js +249 -0
  92. package/src/services/embeddings/indexers/composioIndexer.js +279 -0
  93. package/src/services/embeddings/indexers/memoryIndexer.js +358 -0
  94. package/src/services/embeddings/indexers/reminisceIndexer.js +370 -0
  95. package/src/services/embeddings/indexers/skillsIndexer.js +154 -0
  96. package/src/services/embeddings/indexers/taskIndexer.js +155 -0
  97. package/src/services/embeddings/providerInterface.js +206 -0
  98. package/src/services/embeddings/providers/azureCustomProvider.js +154 -0
  99. package/src/services/embeddings/providers/azureProvider.js +122 -0
  100. package/src/services/embeddings/providers/cloudHttpTransport.js +205 -0
  101. package/src/services/embeddings/providers/localProvider.js +287 -0
  102. package/src/services/embeddings/providers/openaiProvider.js +101 -0
  103. package/src/services/embeddings/utilities/__tests__/textChunker.test.js +217 -0
  104. package/src/services/embeddings/utilities/textChunker.js +290 -0
  105. package/src/services/embeddings/vectorStore/__tests__/scoring.test.js +189 -0
  106. package/src/services/embeddings/vectorStore/inMemoryJsonStore.js +356 -0
  107. package/src/services/embeddings/vectorStore/scoring.js +128 -0
  108. package/src/services/embeddings/vectorStore/storeContractTests.js +179 -0
  109. package/src/services/embeddings/vectorStore/storeInterface.js +91 -0
  110. package/src/services/memoryService.js +98 -0
  111. package/src/services/telegramService.js +140 -1
  112. package/src/tools/__tests__/agentCommunicationTool.findAgent.test.js +226 -0
  113. package/src/tools/__tests__/agentCommunicationTool.test.js +17 -2
  114. package/src/tools/__tests__/baseTool.test.js +76 -10
  115. package/src/tools/__tests__/cloneDetectionTool.test.js +430 -0
  116. package/src/tools/__tests__/codeMapTool.pluralCanonical.test.js +83 -0
  117. package/src/tools/__tests__/composioTool.findAction.test.js +448 -0
  118. package/src/tools/__tests__/composioTool.test.js +499 -0
  119. package/src/tools/__tests__/dependencyResolverTool.test.js +567 -0
  120. package/src/tools/__tests__/docxTool.test.js +449 -0
  121. package/src/tools/__tests__/excelTool.test.js +486 -0
  122. package/src/tools/__tests__/importAnalyzerTool.test.js +368 -0
  123. package/src/tools/__tests__/memoryTool.forgetStale.test.js +272 -0
  124. package/src/tools/__tests__/memoryTool.pluralCanonical.test.js +189 -0
  125. package/src/tools/__tests__/memoryTool.reminisceSemanticSearch.test.js +301 -0
  126. package/src/tools/__tests__/memoryTool.semanticSearch.test.js +405 -0
  127. package/src/tools/__tests__/memoryTool.teamPool.test.js +293 -0
  128. package/src/tools/__tests__/memoryTool.test.js +1 -1
  129. package/src/tools/__tests__/officeTool.test.js +403 -0
  130. package/src/tools/__tests__/openaiFunctionSchemas.memoryReminisce.test.js +24 -25
  131. package/src/tools/__tests__/openaiFunctionSchemas.validity.test.js +268 -0
  132. package/src/tools/__tests__/pdfTool.test.js +457 -0
  133. package/src/tools/__tests__/singularToolReverseForgive.test.js +97 -0
  134. package/src/tools/__tests__/skillsTool.search.test.js +164 -0
  135. package/src/tools/__tests__/taskManagerTool.discipline.test.js +137 -0
  136. package/src/tools/__tests__/taskManagerTool.search.test.js +143 -0
  137. package/src/tools/__tests__/taskManagerTool.transition.test.js +236 -0
  138. package/src/tools/__tests__/toolShapeForgiveness.test.js +260 -0
  139. package/src/tools/agentCommunicationTool.js +120 -5
  140. package/src/tools/baseTool.js +28 -1
  141. package/src/tools/codeMapTool.js +1673 -1521
  142. package/src/tools/composioTool.js +617 -0
  143. package/src/tools/fileContentReplaceTool.js +893 -840
  144. package/src/tools/fileSystemTool.js +1372 -1314
  145. package/src/tools/fileTreeTool.js +7 -0
  146. package/src/tools/memoryTool.js +847 -82
  147. package/src/tools/office/officeDoc.js +425 -0
  148. package/src/tools/office/officePres.js +360 -0
  149. package/src/tools/office/officeSheet.js +350 -0
  150. package/src/tools/officeTool.js +313 -0
  151. package/src/tools/openaiFunctionSchemas.js +824 -44
  152. package/src/tools/platformControlTool.js +5 -0
  153. package/src/tools/seekTool.js +36 -1
  154. package/src/tools/skillsTool.js +133 -0
  155. package/src/tools/taskManagerTool.js +264 -16
  156. package/src/tools/terminalTool.js +23 -1
  157. package/src/tools/visionTool.js +7 -0
  158. package/src/tools/visualEditorTool.js +7 -0
  159. package/src/tools/webTool.js +28 -1
  160. package/src/tools/whatsappTool.js +7 -0
  161. package/src/utilities/authCache.js +47 -6
  162. package/src/utilities/authCache.js.backup-1779570472481 +121 -0
  163. package/src/utilities/toolConstants.js +3 -1
  164. package/web-ui/build/index.html +2 -2
  165. package/web-ui/build/static/1c-CTztA3Xo.js +1 -0
  166. package/web-ui/build/static/abap-BsUhLmBp.js +1 -0
  167. package/web-ui/build/static/abnf-CGKV2y5s.js +1 -0
  168. package/web-ui/build/static/abnf-vQPGuzu_.js +1 -0
  169. package/web-ui/build/static/accesslog-mUZocN9d.js +1 -0
  170. package/web-ui/build/static/actionscript-BmCHyr7v.js +1 -0
  171. package/web-ui/build/static/actionscript-Cc5vZvFE.js +1 -0
  172. package/web-ui/build/static/ada-BHR9NMNv.js +1 -0
  173. package/web-ui/build/static/ada-DnxQs2b9.js +1 -0
  174. package/web-ui/build/static/agda-CHEWVCEZ.js +1 -0
  175. package/web-ui/build/static/al-C0otNZjc.js +1 -0
  176. package/web-ui/build/static/angelscript-Co5e7ZdR.js +1 -0
  177. package/web-ui/build/static/antlr4-Dkky4AXR.js +1 -0
  178. package/web-ui/build/static/apache-BJkYIuV-.js +1 -0
  179. package/web-ui/build/static/apacheconf-XLif_lM5.js +1 -0
  180. package/web-ui/build/static/apex-DiKnugSK.js +1 -0
  181. package/web-ui/build/static/apl-R5OItFx8.js +1 -0
  182. package/web-ui/build/static/applescript-D8uiCoXI.js +1 -0
  183. package/web-ui/build/static/applescript-e5KOVzz4.js +1 -0
  184. package/web-ui/build/static/aql-Cvy5hwR1.js +1 -0
  185. package/web-ui/build/static/arcade-0iAjFk8w.js +1 -0
  186. package/web-ui/build/static/arduino-BJeuGqAT.js +1 -0
  187. package/web-ui/build/static/arduino-QJJjnM1j.js +1 -0
  188. package/web-ui/build/static/arff-C-i_E_-B.js +1 -0
  189. package/web-ui/build/static/armasm-ukFQKHGn.js +1 -0
  190. package/web-ui/build/static/asciidoc-B49qqHJJ.js +1 -0
  191. package/web-ui/build/static/asciidoc-Nkm1Ylrd.js +1 -0
  192. package/web-ui/build/static/asm6502-CMiM3nZs.js +1 -0
  193. package/web-ui/build/static/asmatmel-DG9XzIBf.js +1 -0
  194. package/web-ui/build/static/aspectj-DjRutrRk.js +1 -0
  195. package/web-ui/build/static/aspnet-DCNVRVi9.js +1 -0
  196. package/web-ui/build/static/autohotkey-C7eyvps0.js +1 -0
  197. package/web-ui/build/static/autohotkey-CiaZi-WO.js +1 -0
  198. package/web-ui/build/static/autoit-CaKUQkux.js +1 -0
  199. package/web-ui/build/static/autoit-D-CUHQgt.js +1 -0
  200. package/web-ui/build/static/avisynth-DFP3h4zu.js +1 -0
  201. package/web-ui/build/static/avrasm-BqvUj3fg.js +1 -0
  202. package/web-ui/build/static/avro-idl-D3l0ptuQ.js +1 -0
  203. package/web-ui/build/static/awk-BmDxAZFj.js +1 -0
  204. package/web-ui/build/static/axapta-B424jrgT.js +1 -0
  205. package/web-ui/build/static/bash-CgAffr8Z.js +1 -0
  206. package/web-ui/build/static/bash-D41aILLG.js +1 -0
  207. package/web-ui/build/static/basic-5DFTo35K.js +1 -0
  208. package/web-ui/build/static/basic-BONYG7D2.js +1 -0
  209. package/web-ui/build/static/batch-BnaDGMwS.js +1 -0
  210. package/web-ui/build/static/bbcode-Daujj4hU.js +1 -0
  211. package/web-ui/build/static/bicep-CXidcIK5.js +1 -0
  212. package/web-ui/build/static/birb-CcOzsnqB.js +1 -0
  213. package/web-ui/build/static/bison-rq0w5JFF.js +1 -0
  214. package/web-ui/build/static/bnf-C4uK1dK8.js +1 -0
  215. package/web-ui/build/static/bnf-CvXZ9crt.js +1 -0
  216. package/web-ui/build/static/brainfuck-B5Ezdg2y.js +1 -0
  217. package/web-ui/build/static/brainfuck-BZaTfZ97.js +1 -0
  218. package/web-ui/build/static/brightscript-D_2WBVxt.js +1 -0
  219. package/web-ui/build/static/bro-BD7GT6j_.js +1 -0
  220. package/web-ui/build/static/bsl-Bh-qcQ3w.js +1 -0
  221. package/web-ui/build/static/c-DNmZz1iT.js +1 -0
  222. package/web-ui/build/static/c-dUrSOcB2.js +1 -0
  223. package/web-ui/build/static/c-like-DfzKY8Uu.js +1 -0
  224. package/web-ui/build/static/cal-DgrFs4te.js +1 -0
  225. package/web-ui/build/static/capnproto-BxFR2k8w.js +1 -0
  226. package/web-ui/build/static/ceylon-B2Q7BIPM.js +1 -0
  227. package/web-ui/build/static/cfscript-DeaR8rww.js +1 -0
  228. package/web-ui/build/static/chaiscript-BeBIoz6b.js +1 -0
  229. package/web-ui/build/static/cil-YHiHOb4c.js +1 -0
  230. package/web-ui/build/static/clean-BgOl_0cN.js +1 -0
  231. package/web-ui/build/static/clojure-BlgOza7C.js +1 -0
  232. package/web-ui/build/static/clojure-PlKRYx3q.js +1 -0
  233. package/web-ui/build/static/clojure-repl-Dv2_THNB.js +1 -0
  234. package/web-ui/build/static/cmake-Ccf43gsy.js +1 -0
  235. package/web-ui/build/static/cmake-Dah_b5tK.js +1 -0
  236. package/web-ui/build/static/cobol-o9YRDzXA.js +1 -0
  237. package/web-ui/build/static/coffeescript-DTYLvxG9.js +1 -0
  238. package/web-ui/build/static/coffeescript-Dm4UcexP.js +1 -0
  239. package/web-ui/build/static/concurnas-1OxY7nFV.js +1 -0
  240. package/web-ui/build/static/coq-CvJBSoWT.js +1 -0
  241. package/web-ui/build/static/coq-DPZunybQ.js +1 -0
  242. package/web-ui/build/static/cos-BBstQgB4.js +1 -0
  243. package/web-ui/build/static/cpp-BR1pa5Wr.js +1 -0
  244. package/web-ui/build/static/cpp-C-_tTuKh.js +1 -0
  245. package/web-ui/build/static/crmsh-BIme7ihG.js +1 -0
  246. package/web-ui/build/static/crystal-C2hlJxaB.js +1 -0
  247. package/web-ui/build/static/crystal-Ca6D0fV7.js +1 -0
  248. package/web-ui/build/static/csharp-DGvdwvDH.js +1 -0
  249. package/web-ui/build/static/csharp-DbAjVltn.js +1 -0
  250. package/web-ui/build/static/cshtml-DVC84JPa.js +1 -0
  251. package/web-ui/build/static/csp-BawtG83z.js +1 -0
  252. package/web-ui/build/static/csp-BlaoxdTK.js +1 -0
  253. package/web-ui/build/static/css-52oqss7r.js +1 -0
  254. package/web-ui/build/static/css-extras-BoTVw2IW.js +1 -0
  255. package/web-ui/build/static/csv-nXBSv5kK.js +1 -0
  256. package/web-ui/build/static/cypher-WuesoPm2.js +1 -0
  257. package/web-ui/build/static/d-BmmTjwiV.js +1 -0
  258. package/web-ui/build/static/d-BwHf5A8R.js +1 -0
  259. package/web-ui/build/static/dart-BVZTRb8b.js +1 -0
  260. package/web-ui/build/static/dart-CbWzIBpX.js +1 -0
  261. package/web-ui/build/static/dataweave-qi_fpjJR.js +1 -0
  262. package/web-ui/build/static/dax-BpP02TD3.js +1 -0
  263. package/web-ui/build/static/delphi-TK0E0gLN.js +1 -0
  264. package/web-ui/build/static/dhall-jyNJwUbo.js +1 -0
  265. package/web-ui/build/static/diff-Dbu90HZq.js +1 -0
  266. package/web-ui/build/static/diff-Df6ezhAq.js +1 -0
  267. package/web-ui/build/static/django-BDy-xiWR.js +1 -0
  268. package/web-ui/build/static/django-CbmnWIX9.js +1 -0
  269. package/web-ui/build/static/dns-D_wmKRHl.js +1 -0
  270. package/web-ui/build/static/dns-zone-file-_1osc1Qk.js +1 -0
  271. package/web-ui/build/static/docker-D62hlkjX.js +1 -0
  272. package/web-ui/build/static/dockerfile-DQ080zHh.js +1 -0
  273. package/web-ui/build/static/dos-B5mA8Wna.js +1 -0
  274. package/web-ui/build/static/dot-D497WUfu.js +1 -0
  275. package/web-ui/build/static/dsconfig-dERMCQVk.js +1 -0
  276. package/web-ui/build/static/dts-DC3ujcbX.js +1 -0
  277. package/web-ui/build/static/dust-Bhm1VBQg.js +1 -0
  278. package/web-ui/build/static/ebnf-1lmwK0bv.js +1 -0
  279. package/web-ui/build/static/ebnf-qzzqKVXL.js +1 -0
  280. package/web-ui/build/static/editorconfig-CCe25wQr.js +1 -0
  281. package/web-ui/build/static/eiffel-BFOXbwEN.js +1 -0
  282. package/web-ui/build/static/ejs-D94vVkGZ.js +1 -0
  283. package/web-ui/build/static/elixir-B2W81YV0.js +1 -0
  284. package/web-ui/build/static/elixir-CD1szlP_.js +1 -0
  285. package/web-ui/build/static/elm-BUJhR-kM.js +1 -0
  286. package/web-ui/build/static/elm-DwLnLHSK.js +1 -0
  287. package/web-ui/build/static/erb-CcokD9Fu.js +1 -0
  288. package/web-ui/build/static/erb-lzhmSBEV.js +1 -0
  289. package/web-ui/build/static/erlang-C0jnu48-.js +1 -0
  290. package/web-ui/build/static/erlang-CrevXBnJ.js +1 -0
  291. package/web-ui/build/static/erlang-repl-CNY6yNoO.js +1 -0
  292. package/web-ui/build/static/etlua-BMO_ICdR.js +1 -0
  293. package/web-ui/build/static/excel-C5PbLrVC.js +1 -0
  294. package/web-ui/build/static/excel-formula-CX4pOnnV.js +1 -0
  295. package/web-ui/build/static/factor-bW3WUpa0.js +1 -0
  296. package/web-ui/build/static/false-CQx6Crbr.js +1 -0
  297. package/web-ui/build/static/firestore-security-rules-DT5oRNdf.js +1 -0
  298. package/web-ui/build/static/fix-C4IWe2LI.js +1 -0
  299. package/web-ui/build/static/flix-hi9-cLwA.js +1 -0
  300. package/web-ui/build/static/flow-CkX6DAhF.js +1 -0
  301. package/web-ui/build/static/fortran-C4rIX-2n.js +1 -0
  302. package/web-ui/build/static/fortran-Dvu3q_x_.js +1 -0
  303. package/web-ui/build/static/fsharp-Bwa1UrRI.js +1 -0
  304. package/web-ui/build/static/fsharp-CvadhLcA.js +1 -0
  305. package/web-ui/build/static/ftl-eFEI11YV.js +1 -0
  306. package/web-ui/build/static/gams-BxGx7deQ.js +1 -0
  307. package/web-ui/build/static/gap-Dcv7bqDd.js +1 -0
  308. package/web-ui/build/static/gauss-CcVoF4l8.js +1 -0
  309. package/web-ui/build/static/gcode-B1dc5sh5.js +1 -0
  310. package/web-ui/build/static/gcode-D5OxRG5t.js +1 -0
  311. package/web-ui/build/static/gdscript-CL-EA1wk.js +1 -0
  312. package/web-ui/build/static/gedcom-BbXrNsr0.js +1 -0
  313. package/web-ui/build/static/gherkin-B2wQMbT2.js +1 -0
  314. package/web-ui/build/static/gherkin-CnL4Y3j1.js +1 -0
  315. package/web-ui/build/static/git-DpdutSM5.js +1 -0
  316. package/web-ui/build/static/glsl-C7sgdZCA.js +1 -0
  317. package/web-ui/build/static/glsl-DVaNsn1Z.js +1 -0
  318. package/web-ui/build/static/gml-B_NppoA4.js +1 -0
  319. package/web-ui/build/static/gml-DFrn75UD.js +1 -0
  320. package/web-ui/build/static/gn-BhTU_aTW.js +1 -0
  321. package/web-ui/build/static/go-DKrUPrfb.js +1 -0
  322. package/web-ui/build/static/go-DLAYIsJl.js +1 -0
  323. package/web-ui/build/static/go-module-BXY6q1Ug.js +1 -0
  324. package/web-ui/build/static/golo-CKxjLRpC.js +1 -0
  325. package/web-ui/build/static/gradle-DN8lsmJj.js +1 -0
  326. package/web-ui/build/static/graphql-CMb_4vdm.js +1 -0
  327. package/web-ui/build/static/groovy-Bhi1VPv7.js +1 -0
  328. package/web-ui/build/static/groovy-D3X3r3EX.js +1 -0
  329. package/web-ui/build/static/haml-CvOCw9lL.js +1 -0
  330. package/web-ui/build/static/haml-DYs0wBJO.js +1 -0
  331. package/web-ui/build/static/handlebars-CLnuKGPm.js +1 -0
  332. package/web-ui/build/static/handlebars-CYGG_M1h.js +1 -0
  333. package/web-ui/build/static/haskell-0Ju0XclD.js +1 -0
  334. package/web-ui/build/static/haskell-CL5jUHSd.js +1 -0
  335. package/web-ui/build/static/haxe-BghRbBtK.js +1 -0
  336. package/web-ui/build/static/haxe-dfL7GzPv.js +1 -0
  337. package/web-ui/build/static/hcl-BZP2QME-.js +1 -0
  338. package/web-ui/build/static/hlsl-Djp0TiCX.js +1 -0
  339. package/web-ui/build/static/hoon-Df5gJVqA.js +1 -0
  340. package/web-ui/build/static/hpkp-Cy-hjB4V.js +1 -0
  341. package/web-ui/build/static/hsp-CntMIMs4.js +1 -0
  342. package/web-ui/build/static/hsts-BNBhETNx.js +1 -0
  343. package/web-ui/build/static/htmlbars-VCCYaDHA.js +1 -0
  344. package/web-ui/build/static/http-7DbskohZ.js +1 -0
  345. package/web-ui/build/static/http-BT5FYFAK.js +1 -0
  346. package/web-ui/build/static/hy-DuGSaK_b.js +1 -0
  347. package/web-ui/build/static/ichigojam-CjvnJmlr.js +1 -0
  348. package/web-ui/build/static/icon-BsBz6XP6.js +1 -0
  349. package/web-ui/build/static/icu-message-format-BEpv_nip.js +1 -0
  350. package/web-ui/build/static/idris-DiXQdMPU.js +1 -0
  351. package/web-ui/build/static/iecst-C9tYEzwP.js +1 -0
  352. package/web-ui/build/static/ignore-DNMpCRPN.js +1 -0
  353. package/web-ui/build/static/index-B-r71gxO.js +1 -0
  354. package/web-ui/build/static/index-CTtNXVAZ.js +1217 -0
  355. package/web-ui/build/static/index-DkBBEGYj.css +1 -0
  356. package/web-ui/build/static/index-PvzceRzr.js +13 -0
  357. package/web-ui/build/static/inform7-D38mj1Ty.js +1 -0
  358. package/web-ui/build/static/inform7-SwIRbrNQ.js +1 -0
  359. package/web-ui/build/static/ini-B9xO6J_m.js +1 -0
  360. package/web-ui/build/static/ini-zcp_esam.js +1 -0
  361. package/web-ui/build/static/io-C-Ay4jvg.js +1 -0
  362. package/web-ui/build/static/irpf90-BYnkitLq.js +1 -0
  363. package/web-ui/build/static/isbl-BYtdwd6v.js +1 -0
  364. package/web-ui/build/static/j-ByZQN5E4.js +1 -0
  365. package/web-ui/build/static/java-BNtb6JWL.js +1 -0
  366. package/web-ui/build/static/java-CQZL3scW.js +1 -0
  367. package/web-ui/build/static/javadoc-BciMZ8jg.js +1 -0
  368. package/web-ui/build/static/javadoclike-07BOTXmy.js +1 -0
  369. package/web-ui/build/static/javascript-CViZlg1q.js +1 -0
  370. package/web-ui/build/static/javastacktrace-bWyAK0up.js +1 -0
  371. package/web-ui/build/static/jboss-cli-hz5boSGB.js +1 -0
  372. package/web-ui/build/static/jexl-DdIINSXT.js +1 -0
  373. package/web-ui/build/static/jolie-CQnDX-f0.js +1 -0
  374. package/web-ui/build/static/jq-BzhF0CHG.js +1 -0
  375. package/web-ui/build/static/js-extras-jizEtT14.js +1 -0
  376. package/web-ui/build/static/js-templates-Dr1BqLAt.js +1 -0
  377. package/web-ui/build/static/jsdoc-CI-GPi6r.js +1 -0
  378. package/web-ui/build/static/json-2eDPxnHO.js +1 -0
  379. package/web-ui/build/static/json-BBqUMOAQ.js +1 -0
  380. package/web-ui/build/static/json5-CeIoln-Y.js +1 -0
  381. package/web-ui/build/static/jsonp-DWe9tbr2.js +1 -0
  382. package/web-ui/build/static/jsstacktrace-aE-go9tq.js +1 -0
  383. package/web-ui/build/static/jsx-BTXEPQYI.js +1 -0
  384. package/web-ui/build/static/julia-4VeOirXa.js +1 -0
  385. package/web-ui/build/static/julia-Da6yHEfz.js +1 -0
  386. package/web-ui/build/static/julia-repl-CFrizGkE.js +1 -0
  387. package/web-ui/build/static/keepalived-39SDM4j5.js +1 -0
  388. package/web-ui/build/static/keyman-DU5yOLYr.js +1 -0
  389. package/web-ui/build/static/kotlin-DJoqh3HG.js +1 -0
  390. package/web-ui/build/static/kotlin-DsKd3r_L.js +1 -0
  391. package/web-ui/build/static/kumir-CO96hby4.js +1 -0
  392. package/web-ui/build/static/kusto-DyuMf8l-.js +1 -0
  393. package/web-ui/build/static/lasso-BiPmQTXQ.js +1 -0
  394. package/web-ui/build/static/latex-Bd1ef5fi.js +1 -0
  395. package/web-ui/build/static/latex-DUrYkmWb.js +1 -0
  396. package/web-ui/build/static/latte-BSD-hpi5.js +1 -0
  397. package/web-ui/build/static/ldif-1ZMSg0qI.js +1 -0
  398. package/web-ui/build/static/leaf-Cg0eq01F.js +1 -0
  399. package/web-ui/build/static/less-BKcd1_xh.js +1 -0
  400. package/web-ui/build/static/less-SB5bcusC.js +1 -0
  401. package/web-ui/build/static/lilypond-BX_kuAqT.js +1 -0
  402. package/web-ui/build/static/liquid-C337T5bt.js +1 -0
  403. package/web-ui/build/static/lisp-B_bJRelF.js +1 -0
  404. package/web-ui/build/static/lisp-Du04Vdmx.js +1 -0
  405. package/web-ui/build/static/livecodeserver-BOkA9fV6.js +1 -0
  406. package/web-ui/build/static/livescript-DkMTCCBM.js +1 -0
  407. package/web-ui/build/static/livescript-rTaLq5oP.js +1 -0
  408. package/web-ui/build/static/llvm-BrBlvl5p.js +1 -0
  409. package/web-ui/build/static/llvm-DQbygw7z.js +1 -0
  410. package/web-ui/build/static/log-DoAzOt8c.js +1 -0
  411. package/web-ui/build/static/lolcode-DnB7KhRR.js +1 -0
  412. package/web-ui/build/static/lsl-DpzE7F5A.js +1 -0
  413. package/web-ui/build/static/lua-CIceROsO.js +1 -0
  414. package/web-ui/build/static/lua-DhnvJuMn.js +1 -0
  415. package/web-ui/build/static/magma-BwjzpKxi.js +1 -0
  416. package/web-ui/build/static/makefile-D10Y62dl.js +1 -0
  417. package/web-ui/build/static/makefile-esgkquGi.js +1 -0
  418. package/web-ui/build/static/markdown-B-Y7Y0Nn.js +1 -0
  419. package/web-ui/build/static/markdown-Cv3Onm-Q.js +1 -0
  420. package/web-ui/build/static/markup-templating-B1-9WWYa.js +1 -0
  421. package/web-ui/build/static/mathematica-gSyKdw2h.js +1 -0
  422. package/web-ui/build/static/matlab-6i1uXuBx.js +1 -0
  423. package/web-ui/build/static/matlab-CqcSZ1d9.js +1 -0
  424. package/web-ui/build/static/maxima-Bc-OnIOQ.js +1 -0
  425. package/web-ui/build/static/maxscript-Bce44o6c.js +1 -0
  426. package/web-ui/build/static/mel-0Jk3y-vw.js +1 -0
  427. package/web-ui/build/static/mel-DmA_8WPg.js +1 -0
  428. package/web-ui/build/static/mercury-DNdP1u-O.js +1 -0
  429. package/web-ui/build/static/mermaid-DrLkSIIb.js +1 -0
  430. package/web-ui/build/static/mipsasm-BIQVs3Ff.js +1 -0
  431. package/web-ui/build/static/mizar-BD5ZD_Rk.js +1 -0
  432. package/web-ui/build/static/mizar-DThX8Mdy.js +1 -0
  433. package/web-ui/build/static/mojolicious-Bra-ClwJ.js +1 -0
  434. package/web-ui/build/static/mongodb-DirByEEg.js +1 -0
  435. package/web-ui/build/static/monkey-C-Pvu43G.js +1 -0
  436. package/web-ui/build/static/monkey-n4IFmaA7.js +1 -0
  437. package/web-ui/build/static/moonscript-B1DM34lp.js +1 -0
  438. package/web-ui/build/static/moonscript-B82JBytX.js +1 -0
  439. package/web-ui/build/static/n1ql-C46iq3Hh.js +1 -0
  440. package/web-ui/build/static/n1ql-DOs3gJQo.js +1 -0
  441. package/web-ui/build/static/n4js-CPYgal3G.js +1 -0
  442. package/web-ui/build/static/nand2tetris-hdl-BhlUIq7M.js +1 -0
  443. package/web-ui/build/static/naniscript-D1YZXYcf.js +1 -0
  444. package/web-ui/build/static/nasm-2-TtCBo4.js +1 -0
  445. package/web-ui/build/static/neon-BzoXMDea.js +1 -0
  446. package/web-ui/build/static/nevod-DW_87wHj.js +1 -0
  447. package/web-ui/build/static/nginx-BgieYUhk.js +1 -0
  448. package/web-ui/build/static/nginx-DW0RVJbs.js +1 -0
  449. package/web-ui/build/static/nim-BbTa7YZN.js +1 -0
  450. package/web-ui/build/static/nim-VdXk3QT9.js +1 -0
  451. package/web-ui/build/static/nix-3tNNprEI.js +1 -0
  452. package/web-ui/build/static/nix-BDghlfzh.js +1 -0
  453. package/web-ui/build/static/node-repl-BBLv3tyt.js +1 -0
  454. package/web-ui/build/static/nsis-DxjfnSO8.js +1 -0
  455. package/web-ui/build/static/nsis-FY5xiiar.js +1 -0
  456. package/web-ui/build/static/objectivec-CXhf_sp_.js +1 -0
  457. package/web-ui/build/static/objectivec-DcRKjWcd.js +1 -0
  458. package/web-ui/build/static/ocaml-BLRL6Zro.js +1 -0
  459. package/web-ui/build/static/ocaml-C4S4QQtS.js +1 -0
  460. package/web-ui/build/static/opencl-ruEAYetM.js +1 -0
  461. package/web-ui/build/static/openqasm-D6r_FwIh.js +1 -0
  462. package/web-ui/build/static/openscad-BEPjoj_N.js +1 -0
  463. package/web-ui/build/static/oxygene-A61yc5Or.js +1 -0
  464. package/web-ui/build/static/oz-DICidCTs.js +1 -0
  465. package/web-ui/build/static/parigp-MjTNwy2s.js +1 -0
  466. package/web-ui/build/static/parser-DmI7lg_r.js +1 -0
  467. package/web-ui/build/static/parser3-Bv9kXAib.js +1 -0
  468. package/web-ui/build/static/pascal-B23PBLTj.js +1 -0
  469. package/web-ui/build/static/pascaligo-CPIJtX2C.js +1 -0
  470. package/web-ui/build/static/pcaxis-Bsj_6x8j.js +1 -0
  471. package/web-ui/build/static/peoplecode-VvQbMjsD.js +1 -0
  472. package/web-ui/build/static/perl-Cr6Y9-hl.js +1 -0
  473. package/web-ui/build/static/perl-D37oTJip.js +1 -0
  474. package/web-ui/build/static/pf-BKHaWcGm.js +1 -0
  475. package/web-ui/build/static/pgsql-ChusgWw2.js +1 -0
  476. package/web-ui/build/static/php-3Qr4hNV1.js +1 -0
  477. package/web-ui/build/static/php-CgxeEh4Y.js +1 -0
  478. package/web-ui/build/static/php-extras-DeLqwT6H.js +1 -0
  479. package/web-ui/build/static/php-template-DcOJxuIf.js +1 -0
  480. package/web-ui/build/static/phpdoc-amFph5Ax.js +1 -0
  481. package/web-ui/build/static/plaintext-mqBcO1hG.js +1 -0
  482. package/web-ui/build/static/plsql-ioyqfxP7.js +1 -0
  483. package/web-ui/build/static/pony-nxjy8Qot.js +1 -0
  484. package/web-ui/build/static/powerquery-Ci_Fxyg8.js +1 -0
  485. package/web-ui/build/static/powershell-CB_GgRqr.js +1 -0
  486. package/web-ui/build/static/powershell-au4fYIm7.js +1 -0
  487. package/web-ui/build/static/processing-Bkd3f-Wz.js +1 -0
  488. package/web-ui/build/static/processing-PgCPZm30.js +1 -0
  489. package/web-ui/build/static/profile-C2GBY6C9.js +1 -0
  490. package/web-ui/build/static/prolog-BRjYwjIO.js +1 -0
  491. package/web-ui/build/static/prolog-BheGlH8Q.js +1 -0
  492. package/web-ui/build/static/promql-CtCmTKys.js +1 -0
  493. package/web-ui/build/static/properties-BpLqVZha.js +1 -0
  494. package/web-ui/build/static/properties-UQxavHUY.js +1 -0
  495. package/web-ui/build/static/protobuf-BSuul6Uw.js +1 -0
  496. package/web-ui/build/static/protobuf-CLRi8VTE.js +1 -0
  497. package/web-ui/build/static/psl-CJsJilqO.js +1 -0
  498. package/web-ui/build/static/pug-5BY6sdv1.js +1 -0
  499. package/web-ui/build/static/puppet-DBg45gHV.js +1 -0
  500. package/web-ui/build/static/puppet-DPANCbOj.js +1 -0
  501. package/web-ui/build/static/pure-Cn4p-7Bj.js +1 -0
  502. package/web-ui/build/static/purebasic-CoXbIzZJ.js +1 -0
  503. package/web-ui/build/static/purebasic-DZ_eLoUV.js +1 -0
  504. package/web-ui/build/static/purescript-B98GoUb_.js +1 -0
  505. package/web-ui/build/static/python-B-Lm1OME.js +1 -0
  506. package/web-ui/build/static/python-C_ApFGS1.js +1 -0
  507. package/web-ui/build/static/python-repl-CJW5_RON.js +1 -0
  508. package/web-ui/build/static/q-BB2BYhxG.js +1 -0
  509. package/web-ui/build/static/q-DVqo_ScG.js +1 -0
  510. package/web-ui/build/static/qml-Co-8g096.js +1 -0
  511. package/web-ui/build/static/qml-Du0WFcoy.js +1 -0
  512. package/web-ui/build/static/qore-C6XBzy3U.js +1 -0
  513. package/web-ui/build/static/qsharp-BCMklAuq.js +1 -0
  514. package/web-ui/build/static/r-B5CGUQwN.js +1 -0
  515. package/web-ui/build/static/r-Dxhot-za.js +1 -0
  516. package/web-ui/build/static/racket-C0dCdrKh.js +1 -0
  517. package/web-ui/build/static/reason-DGJ1fFJs.js +1 -0
  518. package/web-ui/build/static/reasonml-gt_AvBg7.js +1 -0
  519. package/web-ui/build/static/regex-B5iNH8MZ.js +1 -0
  520. package/web-ui/build/static/rego-hfPajYet.js +1 -0
  521. package/web-ui/build/static/renpy-BkG5aM4I.js +1 -0
  522. package/web-ui/build/static/rest-C4uwtrF8.js +1 -0
  523. package/web-ui/build/static/rib-D32ew8Y7.js +1 -0
  524. package/web-ui/build/static/rip-BIEbWzxe.js +1 -0
  525. package/web-ui/build/static/roboconf-CMN8BoHf.js +1 -0
  526. package/web-ui/build/static/roboconf-GVMh3ioj.js +1 -0
  527. package/web-ui/build/static/robotframework-CUQybJQ9.js +1 -0
  528. package/web-ui/build/static/routeros-DUEdLmuc.js +1 -0
  529. package/web-ui/build/static/rsl-BsAePIwQ.js +1 -0
  530. package/web-ui/build/static/ruby-CZMMjJFw.js +1 -0
  531. package/web-ui/build/static/ruby-WOVZyoXO.js +1 -0
  532. package/web-ui/build/static/ruleslanguage-xV-HszUl.js +1 -0
  533. package/web-ui/build/static/rust-Da9GRxLz.js +1 -0
  534. package/web-ui/build/static/rust-uCND428m.js +1 -0
  535. package/web-ui/build/static/sas-BW15NPzf.js +1 -0
  536. package/web-ui/build/static/sas-DCx9gext.js +1 -0
  537. package/web-ui/build/static/sass-BMD7eETo.js +1 -0
  538. package/web-ui/build/static/scala-0wnxLTlF.js +1 -0
  539. package/web-ui/build/static/scala-D3Hk-q5-.js +1 -0
  540. package/web-ui/build/static/scheme-Ci9QOUcD.js +1 -0
  541. package/web-ui/build/static/scheme-CtqjB_HN.js +1 -0
  542. package/web-ui/build/static/scilab-CnITQd23.js +1 -0
  543. package/web-ui/build/static/scss-DCceV6xw.js +1 -0
  544. package/web-ui/build/static/scss-N5EuPQOS.js +1 -0
  545. package/web-ui/build/static/shell-BegJTton.js +1 -0
  546. package/web-ui/build/static/shell-session-BHBoosfJ.js +1 -0
  547. package/web-ui/build/static/smali-CoHePNQf.js +1 -0
  548. package/web-ui/build/static/smali-D64W1f0Y.js +1 -0
  549. package/web-ui/build/static/smalltalk-CagI-Ky8.js +1 -0
  550. package/web-ui/build/static/smalltalk-DHLuWDjp.js +1 -0
  551. package/web-ui/build/static/smarty-CSS2XBuu.js +1 -0
  552. package/web-ui/build/static/sml-D8Oyp9xr.js +1 -0
  553. package/web-ui/build/static/sml-DvC_VDmX.js +1 -0
  554. package/web-ui/build/static/solidity-DVkeulrL.js +1 -0
  555. package/web-ui/build/static/solution-file-Bd7qWzoo.js +1 -0
  556. package/web-ui/build/static/soy-BRSlVWf7.js +1 -0
  557. package/web-ui/build/static/sparql-DNnCQmqM.js +1 -0
  558. package/web-ui/build/static/splunk-spl-DXCDUv2Y.js +1 -0
  559. package/web-ui/build/static/sqf-C_IKzP5b.js +1 -0
  560. package/web-ui/build/static/sqf-DBqlUGoG.js +1 -0
  561. package/web-ui/build/static/sql-Dt3ZutCc.js +1 -0
  562. package/web-ui/build/static/sql-q0UMLqb7.js +1 -0
  563. package/web-ui/build/static/sql_more-DAuY5p3F.js +1 -0
  564. package/web-ui/build/static/squirrel-CgQZeaNT.js +1 -0
  565. package/web-ui/build/static/stan-D5kYsid7.js +1 -0
  566. package/web-ui/build/static/stan-JSHToKMA.js +1 -0
  567. package/web-ui/build/static/stata-DRVhVjVb.js +1 -0
  568. package/web-ui/build/static/step21-C7h5ssgs.js +1 -0
  569. package/web-ui/build/static/stylus-BXIDNFUe.js +1 -0
  570. package/web-ui/build/static/stylus-CyMBrStz.js +1 -0
  571. package/web-ui/build/static/subunit-Lbpuvy4t.js +1 -0
  572. package/web-ui/build/static/swift-BCxWOc8n.js +1 -0
  573. package/web-ui/build/static/swift-B_YEL6eF.js +1 -0
  574. package/web-ui/build/static/systemd-_zWfs8U5.js +1 -0
  575. package/web-ui/build/static/t4-cs-BCiVX6dp.js +1 -0
  576. package/web-ui/build/static/t4-templating-CDm61rWh.js +1 -0
  577. package/web-ui/build/static/t4-vb-OO2oZZrL.js +1 -0
  578. package/web-ui/build/static/taggerscript-CkXxiITO.js +1 -0
  579. package/web-ui/build/static/tap-C612JPhJ.js +1 -0
  580. package/web-ui/build/static/tap-J-zR66jL.js +1 -0
  581. package/web-ui/build/static/tcl-DIGan5K8.js +1 -0
  582. package/web-ui/build/static/tcl-SFVWFwbb.js +1 -0
  583. package/web-ui/build/static/textile-D0WxA5g8.js +1 -0
  584. package/web-ui/build/static/thrift-jboo4tJl.js +1 -0
  585. package/web-ui/build/static/toml-DIK32ROb.js +1 -0
  586. package/web-ui/build/static/tp-Bhs1iGD3.js +1 -0
  587. package/web-ui/build/static/tremor-4d_juLiN.js +1 -0
  588. package/web-ui/build/static/tsx-hEN3qQzd.js +1 -0
  589. package/web-ui/build/static/tt2-WU6EuPNO.js +1 -0
  590. package/web-ui/build/static/turtle-CUM3xwNI.js +1 -0
  591. package/web-ui/build/static/twig-B9JwTKv9.js +1 -0
  592. package/web-ui/build/static/twig-Crv6BtK7.js +1 -0
  593. package/web-ui/build/static/typescript-BmabW_ur.js +1 -0
  594. package/web-ui/build/static/typescript-oMKx2dph.js +1 -0
  595. package/web-ui/build/static/typoscript-X48MNTeK.js +1 -0
  596. package/web-ui/build/static/unrealscript-qnu9Ogmz.js +1 -0
  597. package/web-ui/build/static/uorazor-BicTvjGt.js +1 -0
  598. package/web-ui/build/static/uri-CyRoMB-u.js +1 -0
  599. package/web-ui/build/static/v-BDM6ZJR7.js +1 -0
  600. package/web-ui/build/static/vala-BWCf7DTx.js +1 -0
  601. package/web-ui/build/static/vala-COL5roWV.js +1 -0
  602. package/web-ui/build/static/vbnet-BHPgkiip.js +1 -0
  603. package/web-ui/build/static/vbnet-BadWmTKs.js +1 -0
  604. package/web-ui/build/static/vbscript-BfUpIAaV.js +1 -0
  605. package/web-ui/build/static/vbscript-html-BBR6zcvV.js +1 -0
  606. package/web-ui/build/static/velocity-k4gGPuiP.js +1 -0
  607. package/web-ui/build/static/verilog-BoNroxW8.js +1 -0
  608. package/web-ui/build/static/verilog-C7cplLIi.js +1 -0
  609. package/web-ui/build/static/vhdl-BrKkx69g.js +1 -0
  610. package/web-ui/build/static/vhdl-CWacsAXR.js +1 -0
  611. package/web-ui/build/static/vim-BcdueaEC.js +1 -0
  612. package/web-ui/build/static/vim-BwsUolG_.js +1 -0
  613. package/web-ui/build/static/visual-basic-DTXlX5HN.js +1 -0
  614. package/web-ui/build/static/warpscript-2w0_2KsB.js +1 -0
  615. package/web-ui/build/static/wasm-BPaXQO-A.js +1 -0
  616. package/web-ui/build/static/web-idl-BoCTFQod.js +1 -0
  617. package/web-ui/build/static/wiki-BkkCi9wm.js +1 -0
  618. package/web-ui/build/static/wolfram-CvRNTaAX.js +1 -0
  619. package/web-ui/build/static/wren-Bz8Smtz-.js +1 -0
  620. package/web-ui/build/static/x86asm-BM83B0N_.js +1 -0
  621. package/web-ui/build/static/xeora-BjuDukl7.js +1 -0
  622. package/web-ui/build/static/xl-ByiuKWwm.js +1 -0
  623. package/web-ui/build/static/xml-Dut2p53G.js +1 -0
  624. package/web-ui/build/static/xml-doc-CxgwiuaA.js +1 -0
  625. package/web-ui/build/static/xojo-CBqUB8JI.js +1 -0
  626. package/web-ui/build/static/xquery-D-agM4jx.js +1 -0
  627. package/web-ui/build/static/xquery-DL_eetrQ.js +1 -0
  628. package/web-ui/build/static/yaml-DZ7HVZSe.js +1 -0
  629. package/web-ui/build/static/yaml-DatJAv7_.js +1 -0
  630. package/web-ui/build/static/yang-D0nrKE-r.js +1 -0
  631. package/web-ui/build/static/zephir--M2g15-k.js +1 -0
  632. package/web-ui/build/static/zig-CK6rUH8E.js +1 -0
  633. package/web-ui/build/static/1c-DGpIT7i5.js +0 -1
  634. package/web-ui/build/static/abap-5wFDdWLh.js +0 -1
  635. package/web-ui/build/static/abnf-BP1dpNSE.js +0 -1
  636. package/web-ui/build/static/abnf-DBEIAl8g.js +0 -1
  637. package/web-ui/build/static/accesslog-CWSM_T5E.js +0 -1
  638. package/web-ui/build/static/actionscript-DONkco1J.js +0 -1
  639. package/web-ui/build/static/actionscript-FqBYk5er.js +0 -1
  640. package/web-ui/build/static/ada-C2JLRIaM.js +0 -1
  641. package/web-ui/build/static/ada-gKiygTRK.js +0 -1
  642. package/web-ui/build/static/agda-CkSODqK2.js +0 -1
  643. package/web-ui/build/static/al-BJ_YR6p7.js +0 -1
  644. package/web-ui/build/static/angelscript-Dg2byMGg.js +0 -1
  645. package/web-ui/build/static/antlr4-BnpyaFNr.js +0 -1
  646. package/web-ui/build/static/apache-Dffxsd7O.js +0 -1
  647. package/web-ui/build/static/apacheconf-DLitjtWj.js +0 -1
  648. package/web-ui/build/static/apex-Drr_IvU2.js +0 -1
  649. package/web-ui/build/static/apl-CF6qxmXG.js +0 -1
  650. package/web-ui/build/static/applescript-CjOlw3b_.js +0 -1
  651. package/web-ui/build/static/applescript-DjkSl1Ry.js +0 -1
  652. package/web-ui/build/static/aql-KwVmK1gP.js +0 -1
  653. package/web-ui/build/static/arcade-CENSXx0R.js +0 -1
  654. package/web-ui/build/static/arduino-B3Ta9Fll.js +0 -1
  655. package/web-ui/build/static/arduino-CzcsaB9_.js +0 -1
  656. package/web-ui/build/static/arff-CMJSVt_O.js +0 -1
  657. package/web-ui/build/static/armasm-0zSgSPB4.js +0 -1
  658. package/web-ui/build/static/asciidoc-B8K5ctWq.js +0 -1
  659. package/web-ui/build/static/asciidoc-bk2Sg6b6.js +0 -1
  660. package/web-ui/build/static/asm6502-ji6zm4FQ.js +0 -1
  661. package/web-ui/build/static/asmatmel-DJqObM4Y.js +0 -1
  662. package/web-ui/build/static/aspectj-DqQKI7J5.js +0 -1
  663. package/web-ui/build/static/aspnet-9cenTxW7.js +0 -1
  664. package/web-ui/build/static/autohotkey-C6EhiZvl.js +0 -1
  665. package/web-ui/build/static/autohotkey-sTGJOvMM.js +0 -1
  666. package/web-ui/build/static/autoit-B0Im8iQ1.js +0 -1
  667. package/web-ui/build/static/autoit-CO6pUD0H.js +0 -1
  668. package/web-ui/build/static/avisynth-OvOHTfj5.js +0 -1
  669. package/web-ui/build/static/avrasm-BLWZ5Mye.js +0 -1
  670. package/web-ui/build/static/avro-idl-BB2ODvnw.js +0 -1
  671. package/web-ui/build/static/awk-_jhMabQ0.js +0 -1
  672. package/web-ui/build/static/axapta-DdBRgoYy.js +0 -1
  673. package/web-ui/build/static/bash-CsaRGXBQ.js +0 -1
  674. package/web-ui/build/static/bash-CxLFkwAC.js +0 -1
  675. package/web-ui/build/static/basic-BJyy7JJE.js +0 -1
  676. package/web-ui/build/static/basic-CrMb-gv0.js +0 -1
  677. package/web-ui/build/static/batch-BvcykMe5.js +0 -1
  678. package/web-ui/build/static/bbcode-EOBuY5Y6.js +0 -1
  679. package/web-ui/build/static/bicep-QkDJBA34.js +0 -1
  680. package/web-ui/build/static/birb-TAOxKurn.js +0 -1
  681. package/web-ui/build/static/bison-BEK6cnad.js +0 -1
  682. package/web-ui/build/static/bnf-DfEODxsr.js +0 -1
  683. package/web-ui/build/static/bnf-DhbMjsuA.js +0 -1
  684. package/web-ui/build/static/brainfuck-BoVocOa7.js +0 -1
  685. package/web-ui/build/static/brainfuck-DDC5QXPK.js +0 -1
  686. package/web-ui/build/static/brightscript-DNN598w2.js +0 -1
  687. package/web-ui/build/static/bro-Cn_jjZ8P.js +0 -1
  688. package/web-ui/build/static/bsl-CMCN75Gu.js +0 -1
  689. package/web-ui/build/static/c-DbOGQnEJ.js +0 -1
  690. package/web-ui/build/static/c-kggwYFsy.js +0 -1
  691. package/web-ui/build/static/c-like-BIsuUvof.js +0 -1
  692. package/web-ui/build/static/cal-DpgMsBZE.js +0 -1
  693. package/web-ui/build/static/capnproto-C1AHYI-M.js +0 -1
  694. package/web-ui/build/static/ceylon-pvJffDe1.js +0 -1
  695. package/web-ui/build/static/cfscript-C1qylu52.js +0 -1
  696. package/web-ui/build/static/chaiscript-D417WKRI.js +0 -1
  697. package/web-ui/build/static/cil-CjbZHbcY.js +0 -1
  698. package/web-ui/build/static/clean-Dvc6R-F2.js +0 -1
  699. package/web-ui/build/static/clojure-CSVRQPMQ.js +0 -1
  700. package/web-ui/build/static/clojure-ig1Vkg7X.js +0 -1
  701. package/web-ui/build/static/clojure-repl-C1uyEabk.js +0 -1
  702. package/web-ui/build/static/cmake-DSbVcAB3.js +0 -1
  703. package/web-ui/build/static/cmake-Zp8kPwnH.js +0 -1
  704. package/web-ui/build/static/cobol-OsZSiK_P.js +0 -1
  705. package/web-ui/build/static/coffeescript-D8r0416S.js +0 -1
  706. package/web-ui/build/static/coffeescript-DCpgClxh.js +0 -1
  707. package/web-ui/build/static/concurnas-DKnsxUOc.js +0 -1
  708. package/web-ui/build/static/coq-BQFlywVI.js +0 -1
  709. package/web-ui/build/static/coq-BvS9mQB2.js +0 -1
  710. package/web-ui/build/static/cos-D3ze2791.js +0 -1
  711. package/web-ui/build/static/cpp-Bw-cV3P1.js +0 -1
  712. package/web-ui/build/static/cpp-vi1p7XpB.js +0 -1
  713. package/web-ui/build/static/crmsh-BClnJTeQ.js +0 -1
  714. package/web-ui/build/static/crystal-DGzOUYZq.js +0 -1
  715. package/web-ui/build/static/crystal-DMzk6EvA.js +0 -1
  716. package/web-ui/build/static/csharp-BTom8s2X.js +0 -1
  717. package/web-ui/build/static/csharp-Cp2V3jfR.js +0 -1
  718. package/web-ui/build/static/cshtml-Dmtt9Kto.js +0 -1
  719. package/web-ui/build/static/csp-WPVsLe9_.js +0 -1
  720. package/web-ui/build/static/csp-qddj5fu_.js +0 -1
  721. package/web-ui/build/static/css-B0FAm7kj.js +0 -1
  722. package/web-ui/build/static/css-extras-Bx3pvjiG.js +0 -1
  723. package/web-ui/build/static/csv-CH-edgS5.js +0 -1
  724. package/web-ui/build/static/cypher-c3G8Leew.js +0 -1
  725. package/web-ui/build/static/d-BMDSy22_.js +0 -1
  726. package/web-ui/build/static/d-BdH4oW8-.js +0 -1
  727. package/web-ui/build/static/dart-C-r72q-O.js +0 -1
  728. package/web-ui/build/static/dart-CwpBMrKa.js +0 -1
  729. package/web-ui/build/static/dataweave-BPvqdt4k.js +0 -1
  730. package/web-ui/build/static/dax-Eyy6ixcN.js +0 -1
  731. package/web-ui/build/static/delphi-DhEbPj_5.js +0 -1
  732. package/web-ui/build/static/dhall-Ct1L8sN1.js +0 -1
  733. package/web-ui/build/static/diff-CSTqCgwn.js +0 -1
  734. package/web-ui/build/static/diff-Da97B5vW.js +0 -1
  735. package/web-ui/build/static/django-DGit_lCg.js +0 -1
  736. package/web-ui/build/static/django-DPgqFB8k.js +0 -1
  737. package/web-ui/build/static/dns-DUyXuZ-a.js +0 -1
  738. package/web-ui/build/static/dns-zone-file-D79MDxVG.js +0 -1
  739. package/web-ui/build/static/docker-DTiy4o38.js +0 -1
  740. package/web-ui/build/static/dockerfile-CvwPP8wE.js +0 -1
  741. package/web-ui/build/static/dos-CaIUWxvb.js +0 -1
  742. package/web-ui/build/static/dot-D3504w6Y.js +0 -1
  743. package/web-ui/build/static/dsconfig-Smy1eeX_.js +0 -1
  744. package/web-ui/build/static/dts-DyTYSXZj.js +0 -1
  745. package/web-ui/build/static/dust-CrJyi6qA.js +0 -1
  746. package/web-ui/build/static/ebnf-C8nqfkBH.js +0 -1
  747. package/web-ui/build/static/ebnf-Cuh5Vh2-.js +0 -1
  748. package/web-ui/build/static/editorconfig-C7pTGl6n.js +0 -1
  749. package/web-ui/build/static/eiffel-C75MSJCA.js +0 -1
  750. package/web-ui/build/static/ejs-Dyo7DF5w.js +0 -1
  751. package/web-ui/build/static/elixir-D4yJefOc.js +0 -1
  752. package/web-ui/build/static/elixir-DKRow2SJ.js +0 -1
  753. package/web-ui/build/static/elm-CgbdDlkT.js +0 -1
  754. package/web-ui/build/static/elm-D3N-UgU0.js +0 -1
  755. package/web-ui/build/static/erb-BsITh8qW.js +0 -1
  756. package/web-ui/build/static/erb-lY_LyKyS.js +0 -1
  757. package/web-ui/build/static/erlang-BCnPiYmB.js +0 -1
  758. package/web-ui/build/static/erlang-JEghiPXc.js +0 -1
  759. package/web-ui/build/static/erlang-repl-DzU97ugC.js +0 -1
  760. package/web-ui/build/static/etlua-CsBo8cJa.js +0 -1
  761. package/web-ui/build/static/excel-formula-C2piiCYa.js +0 -1
  762. package/web-ui/build/static/excel-kqNypwQD.js +0 -1
  763. package/web-ui/build/static/factor-DZTOhkyU.js +0 -1
  764. package/web-ui/build/static/false-yLjhfaSw.js +0 -1
  765. package/web-ui/build/static/firestore-security-rules-oaQNoH8l.js +0 -1
  766. package/web-ui/build/static/fix-C9IfnTuS.js +0 -1
  767. package/web-ui/build/static/flix-EmJ_JhPo.js +0 -1
  768. package/web-ui/build/static/flow-DCUl7IAQ.js +0 -1
  769. package/web-ui/build/static/fortran-DvyxJmFN.js +0 -1
  770. package/web-ui/build/static/fortran-EEP9R3S5.js +0 -1
  771. package/web-ui/build/static/fsharp-D_98s3RX.js +0 -1
  772. package/web-ui/build/static/fsharp-Dt9jOO5G.js +0 -1
  773. package/web-ui/build/static/ftl-C8gMHWLo.js +0 -1
  774. package/web-ui/build/static/gams-BHxVPb4z.js +0 -1
  775. package/web-ui/build/static/gap-DFtyHk-q.js +0 -1
  776. package/web-ui/build/static/gauss-BwhJWUcg.js +0 -1
  777. package/web-ui/build/static/gcode-BvmXwp09.js +0 -1
  778. package/web-ui/build/static/gcode-gWcD6Vc7.js +0 -1
  779. package/web-ui/build/static/gdscript-btHoX8RE.js +0 -1
  780. package/web-ui/build/static/gedcom-MgPs9iqh.js +0 -1
  781. package/web-ui/build/static/gherkin-B9c_Q16A.js +0 -1
  782. package/web-ui/build/static/gherkin-BvOgkK6h.js +0 -1
  783. package/web-ui/build/static/git-D9XWOVcQ.js +0 -1
  784. package/web-ui/build/static/glsl-CshBHxHY.js +0 -1
  785. package/web-ui/build/static/glsl-fNRUMTDr.js +0 -1
  786. package/web-ui/build/static/gml-B78deHK8.js +0 -1
  787. package/web-ui/build/static/gml-Cj7d2u8O.js +0 -1
  788. package/web-ui/build/static/gn-CJLD-mF1.js +0 -1
  789. package/web-ui/build/static/go-CT93BEkL.js +0 -1
  790. package/web-ui/build/static/go-CTTlNuQO.js +0 -1
  791. package/web-ui/build/static/go-module-BgnXboUE.js +0 -1
  792. package/web-ui/build/static/golo-2S5tXS-l.js +0 -1
  793. package/web-ui/build/static/gradle-8W8DCcWJ.js +0 -1
  794. package/web-ui/build/static/graphql-DZfp6FNU.js +0 -1
  795. package/web-ui/build/static/groovy-BfsyMb3X.js +0 -1
  796. package/web-ui/build/static/groovy-Dxov7ENz.js +0 -1
  797. package/web-ui/build/static/haml-BlUFsdVV.js +0 -1
  798. package/web-ui/build/static/haml-CjVj6vvW.js +0 -1
  799. package/web-ui/build/static/handlebars-DxrQFkyA.js +0 -1
  800. package/web-ui/build/static/handlebars-FE6fotYl.js +0 -1
  801. package/web-ui/build/static/haskell-B6z0RCD_.js +0 -1
  802. package/web-ui/build/static/haskell-JBFmJTRy.js +0 -1
  803. package/web-ui/build/static/haxe-BtMZMi-_.js +0 -1
  804. package/web-ui/build/static/haxe-C1J8n-fH.js +0 -1
  805. package/web-ui/build/static/hcl-DJP-bFWE.js +0 -1
  806. package/web-ui/build/static/hlsl-DrGjhs1b.js +0 -1
  807. package/web-ui/build/static/hoon-Cg-ZhqIT.js +0 -1
  808. package/web-ui/build/static/hpkp-D07vgmoZ.js +0 -1
  809. package/web-ui/build/static/hsp-CsypPWoA.js +0 -1
  810. package/web-ui/build/static/hsts-B6DMRxvP.js +0 -1
  811. package/web-ui/build/static/htmlbars-BI7_Hw4e.js +0 -1
  812. package/web-ui/build/static/http-90ihEi4s.js +0 -1
  813. package/web-ui/build/static/http-Dp4QXj9E.js +0 -1
  814. package/web-ui/build/static/hy-BMgKvP4K.js +0 -1
  815. package/web-ui/build/static/ichigojam-D6wKvJDb.js +0 -1
  816. package/web-ui/build/static/icon-CrgkmCwl.js +0 -1
  817. package/web-ui/build/static/icu-message-format-Bi2JxCXs.js +0 -1
  818. package/web-ui/build/static/idris-DbUsyZt5.js +0 -1
  819. package/web-ui/build/static/iecst-CQZ9t8fW.js +0 -1
  820. package/web-ui/build/static/ignore-BaFgtNMs.js +0 -1
  821. package/web-ui/build/static/index-DEWSWosh.css +0 -1
  822. package/web-ui/build/static/index-Di1bjCFA.js +0 -13
  823. package/web-ui/build/static/index-otR_WSsL.js +0 -1
  824. package/web-ui/build/static/index-whZPU4as.js +0 -1183
  825. package/web-ui/build/static/inform7-ClyX1Gro.js +0 -1
  826. package/web-ui/build/static/inform7-tZHBS5XP.js +0 -1
  827. package/web-ui/build/static/ini-BrP5JNYL.js +0 -1
  828. package/web-ui/build/static/ini-CVkrAhwV.js +0 -1
  829. package/web-ui/build/static/io-BJ1Y6Bdc.js +0 -1
  830. package/web-ui/build/static/irpf90-fjjcKS_8.js +0 -1
  831. package/web-ui/build/static/isbl-ClpvfUIz.js +0 -1
  832. package/web-ui/build/static/j-CICW77xS.js +0 -1
  833. package/web-ui/build/static/java-B9DFK-0E.js +0 -1
  834. package/web-ui/build/static/java-BL_6rYko.js +0 -1
  835. package/web-ui/build/static/javadoc-Cc4HKpKK.js +0 -1
  836. package/web-ui/build/static/javadoclike-CgNkUDOm.js +0 -1
  837. package/web-ui/build/static/javascript-CM40ZECq.js +0 -1
  838. package/web-ui/build/static/javastacktrace-BHSqXfG5.js +0 -1
  839. package/web-ui/build/static/jboss-cli-Bv5NhVSZ.js +0 -1
  840. package/web-ui/build/static/jexl--Ohk_keA.js +0 -1
  841. package/web-ui/build/static/jolie-DMTN5Vdf.js +0 -1
  842. package/web-ui/build/static/jq-nXRLldXX.js +0 -1
  843. package/web-ui/build/static/js-extras-eLwv3frs.js +0 -1
  844. package/web-ui/build/static/js-templates-Ca0owlrg.js +0 -1
  845. package/web-ui/build/static/jsdoc-KERXp0da.js +0 -1
  846. package/web-ui/build/static/json-BTjLaRsy.js +0 -1
  847. package/web-ui/build/static/json-p7pU0qdW.js +0 -1
  848. package/web-ui/build/static/json5-Cxjy1udc.js +0 -1
  849. package/web-ui/build/static/jsonp-CO52H7Gy.js +0 -1
  850. package/web-ui/build/static/jsstacktrace-8YKfoyJP.js +0 -1
  851. package/web-ui/build/static/jsx-Ct_05KbM.js +0 -1
  852. package/web-ui/build/static/julia-23I1ubCE.js +0 -1
  853. package/web-ui/build/static/julia-d8rVGed_.js +0 -1
  854. package/web-ui/build/static/julia-repl-mwnHedW_.js +0 -1
  855. package/web-ui/build/static/keepalived-E85Rx_fF.js +0 -1
  856. package/web-ui/build/static/keyman-aWd3QUDq.js +0 -1
  857. package/web-ui/build/static/kotlin-Cu370hQq.js +0 -1
  858. package/web-ui/build/static/kotlin-DoJ2WnmZ.js +0 -1
  859. package/web-ui/build/static/kumir-oiOgqcQO.js +0 -1
  860. package/web-ui/build/static/kusto-Bp-B02K5.js +0 -1
  861. package/web-ui/build/static/lasso-BxoQVwOO.js +0 -1
  862. package/web-ui/build/static/latex-CANm5vsX.js +0 -1
  863. package/web-ui/build/static/latex-PMroeNch.js +0 -1
  864. package/web-ui/build/static/latte-2ErU_2XF.js +0 -1
  865. package/web-ui/build/static/ldif-ChPn_F7o.js +0 -1
  866. package/web-ui/build/static/leaf-UkCugDgG.js +0 -1
  867. package/web-ui/build/static/less-CCH5RA89.js +0 -1
  868. package/web-ui/build/static/less-CGZbVU1g.js +0 -1
  869. package/web-ui/build/static/lilypond-BoyM37sv.js +0 -1
  870. package/web-ui/build/static/liquid-DGJVpRBi.js +0 -1
  871. package/web-ui/build/static/lisp-93nne61u.js +0 -1
  872. package/web-ui/build/static/lisp-DYjIRsXz.js +0 -1
  873. package/web-ui/build/static/livecodeserver-CfNaxIE4.js +0 -1
  874. package/web-ui/build/static/livescript-C8kDlQkz.js +0 -1
  875. package/web-ui/build/static/livescript-CoarnRHq.js +0 -1
  876. package/web-ui/build/static/llvm-CBVyNmAh.js +0 -1
  877. package/web-ui/build/static/llvm-DGxq8a7u.js +0 -1
  878. package/web-ui/build/static/log-BivgwFql.js +0 -1
  879. package/web-ui/build/static/lolcode-l5sK2cZz.js +0 -1
  880. package/web-ui/build/static/lsl-Xm44xLRQ.js +0 -1
  881. package/web-ui/build/static/lua-CGvrzfKp.js +0 -1
  882. package/web-ui/build/static/lua-nHwXeY4c.js +0 -1
  883. package/web-ui/build/static/magma-DmNItmna.js +0 -1
  884. package/web-ui/build/static/makefile-CKJNNHGb.js +0 -1
  885. package/web-ui/build/static/makefile-DI6y5Qml.js +0 -1
  886. package/web-ui/build/static/markdown-BgpbxKd-.js +0 -1
  887. package/web-ui/build/static/markdown-CvcxA4yk.js +0 -1
  888. package/web-ui/build/static/markup-templating-DijqesiA.js +0 -1
  889. package/web-ui/build/static/mathematica-Cxll1Q10.js +0 -1
  890. package/web-ui/build/static/matlab-BJo2T1A-.js +0 -1
  891. package/web-ui/build/static/matlab-C6DlZX4l.js +0 -1
  892. package/web-ui/build/static/maxima-DJXO4sbL.js +0 -1
  893. package/web-ui/build/static/maxscript-DdLpUYBs.js +0 -1
  894. package/web-ui/build/static/mel-BIpfnSyZ.js +0 -1
  895. package/web-ui/build/static/mel-BYcTUZJW.js +0 -1
  896. package/web-ui/build/static/mercury-C_LSpbD8.js +0 -1
  897. package/web-ui/build/static/mermaid-D9yBWnrT.js +0 -1
  898. package/web-ui/build/static/mipsasm-nR_K2Ue-.js +0 -1
  899. package/web-ui/build/static/mizar-BeLUPncD.js +0 -1
  900. package/web-ui/build/static/mizar-BesIbZd9.js +0 -1
  901. package/web-ui/build/static/mojolicious-cBx3OWa-.js +0 -1
  902. package/web-ui/build/static/mongodb-DTWKy9ac.js +0 -1
  903. package/web-ui/build/static/monkey-B72bZC3c.js +0 -1
  904. package/web-ui/build/static/monkey-G9XELYPQ.js +0 -1
  905. package/web-ui/build/static/moonscript-BXYVQiqj.js +0 -1
  906. package/web-ui/build/static/moonscript-sDd-5knz.js +0 -1
  907. package/web-ui/build/static/n1ql-0vKSfFAO.js +0 -1
  908. package/web-ui/build/static/n1ql-C9_BSZfz.js +0 -1
  909. package/web-ui/build/static/n4js-B7Ct8dds.js +0 -1
  910. package/web-ui/build/static/nand2tetris-hdl-p9gpphTM.js +0 -1
  911. package/web-ui/build/static/naniscript-6ZVr8Aug.js +0 -1
  912. package/web-ui/build/static/nasm-Ca73yTUt.js +0 -1
  913. package/web-ui/build/static/neon-DNP49oyX.js +0 -1
  914. package/web-ui/build/static/nevod-Qhgt7Bce.js +0 -1
  915. package/web-ui/build/static/nginx-D5e7lu62.js +0 -1
  916. package/web-ui/build/static/nginx-DobnyESB.js +0 -1
  917. package/web-ui/build/static/nim-BPBivUOV.js +0 -1
  918. package/web-ui/build/static/nim-Baoug1Wa.js +0 -1
  919. package/web-ui/build/static/nix-CSPTQs5y.js +0 -1
  920. package/web-ui/build/static/nix-Dk4eNw49.js +0 -1
  921. package/web-ui/build/static/node-repl-NJNL8VFR.js +0 -1
  922. package/web-ui/build/static/nsis-BZ0oMzEw.js +0 -1
  923. package/web-ui/build/static/nsis-CKPCjtCU.js +0 -1
  924. package/web-ui/build/static/objectivec-BkfIRhhV.js +0 -1
  925. package/web-ui/build/static/objectivec-CnQgqhbJ.js +0 -1
  926. package/web-ui/build/static/ocaml-9rGNzRrK.js +0 -1
  927. package/web-ui/build/static/ocaml-CTolCqxL.js +0 -1
  928. package/web-ui/build/static/opencl-9Q3vRDxv.js +0 -1
  929. package/web-ui/build/static/openqasm-D2QiuFBp.js +0 -1
  930. package/web-ui/build/static/openscad-C3HyuzpB.js +0 -1
  931. package/web-ui/build/static/oxygene-4gi-VYy_.js +0 -1
  932. package/web-ui/build/static/oz-BGDEB-1A.js +0 -1
  933. package/web-ui/build/static/parigp-CfZzp1uE.js +0 -1
  934. package/web-ui/build/static/parser-UbGteTcy.js +0 -1
  935. package/web-ui/build/static/parser3-C-Jx-fy7.js +0 -1
  936. package/web-ui/build/static/pascal-D1_R0gW-.js +0 -1
  937. package/web-ui/build/static/pascaligo-B8C-98Np.js +0 -1
  938. package/web-ui/build/static/pcaxis-TGnlUKNs.js +0 -1
  939. package/web-ui/build/static/peoplecode-C5Vf1AH0.js +0 -1
  940. package/web-ui/build/static/perl-CBp1N62T.js +0 -1
  941. package/web-ui/build/static/perl-Z59j904t.js +0 -1
  942. package/web-ui/build/static/pf-Cq8B_xwQ.js +0 -1
  943. package/web-ui/build/static/pgsql-ofJbUHkL.js +0 -1
  944. package/web-ui/build/static/php-OlH7HLQJ.js +0 -1
  945. package/web-ui/build/static/php-extras-GqtrxLuk.js +0 -1
  946. package/web-ui/build/static/php-r09kMDOB.js +0 -1
  947. package/web-ui/build/static/php-template-18uT97Qo.js +0 -1
  948. package/web-ui/build/static/phpdoc-9tRFvup9.js +0 -1
  949. package/web-ui/build/static/plaintext-DsYT6Mu-.js +0 -1
  950. package/web-ui/build/static/plsql-RhWQNJVb.js +0 -1
  951. package/web-ui/build/static/pony-DD6JMLYI.js +0 -1
  952. package/web-ui/build/static/powerquery-CALow-bt.js +0 -1
  953. package/web-ui/build/static/powershell-C2QvIuKF.js +0 -1
  954. package/web-ui/build/static/powershell-yrbJEhCh.js +0 -1
  955. package/web-ui/build/static/processing-1T5w_Q03.js +0 -1
  956. package/web-ui/build/static/processing-DBim_dO-.js +0 -1
  957. package/web-ui/build/static/profile-Cdloh8mZ.js +0 -1
  958. package/web-ui/build/static/prolog-DRSsNnns.js +0 -1
  959. package/web-ui/build/static/prolog-D_ajweDr.js +0 -1
  960. package/web-ui/build/static/promql-BRuwn6Bn.js +0 -1
  961. package/web-ui/build/static/properties-D5Wyl4X4.js +0 -1
  962. package/web-ui/build/static/properties-kn4fl1bl.js +0 -1
  963. package/web-ui/build/static/protobuf-BMO76zWi.js +0 -1
  964. package/web-ui/build/static/protobuf-CTUCF-U-.js +0 -1
  965. package/web-ui/build/static/psl-CiqYdQbY.js +0 -1
  966. package/web-ui/build/static/pug-BLE2Qayj.js +0 -1
  967. package/web-ui/build/static/puppet-CFKLWXft.js +0 -1
  968. package/web-ui/build/static/puppet-DQci0Dl5.js +0 -1
  969. package/web-ui/build/static/pure-D2h_GynV.js +0 -1
  970. package/web-ui/build/static/purebasic-BF8MVw8V.js +0 -1
  971. package/web-ui/build/static/purebasic-BTtHiCkh.js +0 -1
  972. package/web-ui/build/static/purescript-D1ZSh-sH.js +0 -1
  973. package/web-ui/build/static/python-Cp9_Vdhb.js +0 -1
  974. package/web-ui/build/static/python-DdgNw8IW.js +0 -1
  975. package/web-ui/build/static/python-repl-DvK89VMC.js +0 -1
  976. package/web-ui/build/static/q-COaIgwhT.js +0 -1
  977. package/web-ui/build/static/q-Cm0dQkW8.js +0 -1
  978. package/web-ui/build/static/qml-BpsOqqJM.js +0 -1
  979. package/web-ui/build/static/qml-BziQXlU4.js +0 -1
  980. package/web-ui/build/static/qore-Cutz6g-2.js +0 -1
  981. package/web-ui/build/static/qsharp-B16619X1.js +0 -1
  982. package/web-ui/build/static/r-CFUIj5Hd.js +0 -1
  983. package/web-ui/build/static/r-CPrwCi5w.js +0 -1
  984. package/web-ui/build/static/racket-Bh08DFXF.js +0 -1
  985. package/web-ui/build/static/reason-BxjDq4e-.js +0 -1
  986. package/web-ui/build/static/reasonml-Ds5SsGP8.js +0 -1
  987. package/web-ui/build/static/regex-DhBIDIMI.js +0 -1
  988. package/web-ui/build/static/rego-DCwxZXcB.js +0 -1
  989. package/web-ui/build/static/renpy-C2fuQfqb.js +0 -1
  990. package/web-ui/build/static/rest-C52ZpxWQ.js +0 -1
  991. package/web-ui/build/static/rib-Cbl2Mzyj.js +0 -1
  992. package/web-ui/build/static/rip-BTOu5ZIE.js +0 -1
  993. package/web-ui/build/static/roboconf-3Oi2wuVk.js +0 -1
  994. package/web-ui/build/static/roboconf-ndLZLE39.js +0 -1
  995. package/web-ui/build/static/robotframework-BzHXiIj1.js +0 -1
  996. package/web-ui/build/static/routeros-CkpPoqx-.js +0 -1
  997. package/web-ui/build/static/rsl-C0bwOQ38.js +0 -1
  998. package/web-ui/build/static/ruby-C_hIhtuQ.js +0 -1
  999. package/web-ui/build/static/ruby-DvKfZPzj.js +0 -1
  1000. package/web-ui/build/static/ruleslanguage-CbZJlddz.js +0 -1
  1001. package/web-ui/build/static/rust-BFPIhB-X.js +0 -1
  1002. package/web-ui/build/static/rust-sBpUq-qE.js +0 -1
  1003. package/web-ui/build/static/sas-BCXvYN9x.js +0 -1
  1004. package/web-ui/build/static/sas-D7GAsTY3.js +0 -1
  1005. package/web-ui/build/static/sass-BdaErGMN.js +0 -1
  1006. package/web-ui/build/static/scala-Cj81oCl9.js +0 -1
  1007. package/web-ui/build/static/scala-CvbksfY6.js +0 -1
  1008. package/web-ui/build/static/scheme-BM5ZqKnl.js +0 -1
  1009. package/web-ui/build/static/scheme-BPvlu9Tk.js +0 -1
  1010. package/web-ui/build/static/scilab-CJanLKQN.js +0 -1
  1011. package/web-ui/build/static/scss-C53YF_7f.js +0 -1
  1012. package/web-ui/build/static/scss-DPp8UZbr.js +0 -1
  1013. package/web-ui/build/static/shell-CC9bQXMe.js +0 -1
  1014. package/web-ui/build/static/shell-session-CuR3fbf-.js +0 -1
  1015. package/web-ui/build/static/smali-CUgLls3D.js +0 -1
  1016. package/web-ui/build/static/smali-YODSX8qt.js +0 -1
  1017. package/web-ui/build/static/smalltalk-BMJQ4bbs.js +0 -1
  1018. package/web-ui/build/static/smalltalk-BVGY3CTl.js +0 -1
  1019. package/web-ui/build/static/smarty-C9aNt4-p.js +0 -1
  1020. package/web-ui/build/static/sml-C3BIHhfq.js +0 -1
  1021. package/web-ui/build/static/sml-DTipyRmY.js +0 -1
  1022. package/web-ui/build/static/solidity-1yuPUqoC.js +0 -1
  1023. package/web-ui/build/static/solution-file-BgzK4GOU.js +0 -1
  1024. package/web-ui/build/static/soy-CFJXRvqc.js +0 -1
  1025. package/web-ui/build/static/sparql-CAosYMpl.js +0 -1
  1026. package/web-ui/build/static/splunk-spl-DkINtWr8.js +0 -1
  1027. package/web-ui/build/static/sqf-DbrWIS2M.js +0 -1
  1028. package/web-ui/build/static/sqf-nq8Q9J2W.js +0 -1
  1029. package/web-ui/build/static/sql-9bwClhZQ.js +0 -1
  1030. package/web-ui/build/static/sql-CqPkY-lX.js +0 -1
  1031. package/web-ui/build/static/sql_more-CsY5ts77.js +0 -1
  1032. package/web-ui/build/static/squirrel-BuqtzRBD.js +0 -1
  1033. package/web-ui/build/static/stan-BNxBSglc.js +0 -1
  1034. package/web-ui/build/static/stan-CZVMc34l.js +0 -1
  1035. package/web-ui/build/static/stata-DKnVdHCd.js +0 -1
  1036. package/web-ui/build/static/step21-Cu_TaBGF.js +0 -1
  1037. package/web-ui/build/static/stylus-BS7-OJew.js +0 -1
  1038. package/web-ui/build/static/stylus-DtFrp1Nk.js +0 -1
  1039. package/web-ui/build/static/subunit-DDCoWkkc.js +0 -1
  1040. package/web-ui/build/static/swift-BaguUZbl.js +0 -1
  1041. package/web-ui/build/static/swift-mwBsb8Bx.js +0 -1
  1042. package/web-ui/build/static/systemd-D6PpyDKk.js +0 -1
  1043. package/web-ui/build/static/t4-cs-Cem8g4Ck.js +0 -1
  1044. package/web-ui/build/static/t4-templating-BZo-HjmD.js +0 -1
  1045. package/web-ui/build/static/t4-vb-B4oVnKa4.js +0 -1
  1046. package/web-ui/build/static/taggerscript-DweAZ5pw.js +0 -1
  1047. package/web-ui/build/static/tap-DpuvKHHF.js +0 -1
  1048. package/web-ui/build/static/tap-hUKmJObZ.js +0 -1
  1049. package/web-ui/build/static/tcl-BUvhAi7u.js +0 -1
  1050. package/web-ui/build/static/tcl-Dsck63d8.js +0 -1
  1051. package/web-ui/build/static/textile-CgKbqJ-j.js +0 -1
  1052. package/web-ui/build/static/thrift-B5H6rApp.js +0 -1
  1053. package/web-ui/build/static/toml-DggTpfOo.js +0 -1
  1054. package/web-ui/build/static/tp-CazB2P2X.js +0 -1
  1055. package/web-ui/build/static/tremor-B1jy7S5p.js +0 -1
  1056. package/web-ui/build/static/tsx-BqF2lVDi.js +0 -1
  1057. package/web-ui/build/static/tt2-BNoNXpEe.js +0 -1
  1058. package/web-ui/build/static/turtle-B0evd5mn.js +0 -1
  1059. package/web-ui/build/static/twig-B5A7nMdv.js +0 -1
  1060. package/web-ui/build/static/twig-DZnLWvh8.js +0 -1
  1061. package/web-ui/build/static/typescript-Bbe_P093.js +0 -1
  1062. package/web-ui/build/static/typescript-BfhvmSSG.js +0 -1
  1063. package/web-ui/build/static/typoscript-BjuZEIgw.js +0 -1
  1064. package/web-ui/build/static/unrealscript-C3iUCFRi.js +0 -1
  1065. package/web-ui/build/static/uorazor-CbZXwzIj.js +0 -1
  1066. package/web-ui/build/static/uri-xMPSnp6m.js +0 -1
  1067. package/web-ui/build/static/v-BKcGo5I6.js +0 -1
  1068. package/web-ui/build/static/vala-BRoBE4am.js +0 -1
  1069. package/web-ui/build/static/vala-B__Iyrma.js +0 -1
  1070. package/web-ui/build/static/vbnet-DBxlMRvN.js +0 -1
  1071. package/web-ui/build/static/vbnet-DjAXt5BE.js +0 -1
  1072. package/web-ui/build/static/vbscript-BNA4oANi.js +0 -1
  1073. package/web-ui/build/static/vbscript-html-o8ckLPKG.js +0 -1
  1074. package/web-ui/build/static/velocity-D7sc5ggA.js +0 -1
  1075. package/web-ui/build/static/verilog-BWJfMIng.js +0 -1
  1076. package/web-ui/build/static/verilog-jW2GPC--.js +0 -1
  1077. package/web-ui/build/static/vhdl-BIVlXRPa.js +0 -1
  1078. package/web-ui/build/static/vhdl-BeqdhhxD.js +0 -1
  1079. package/web-ui/build/static/vim-712lI4-g.js +0 -1
  1080. package/web-ui/build/static/vim-DMROTzr0.js +0 -1
  1081. package/web-ui/build/static/visual-basic-CQfbM-ta.js +0 -1
  1082. package/web-ui/build/static/warpscript-DFAvCXFQ.js +0 -1
  1083. package/web-ui/build/static/wasm-CiYoxBl0.js +0 -1
  1084. package/web-ui/build/static/web-idl-DoCkPK8y.js +0 -1
  1085. package/web-ui/build/static/wiki-bvz0AGzB.js +0 -1
  1086. package/web-ui/build/static/wolfram-fBuyFEgU.js +0 -1
  1087. package/web-ui/build/static/wren-DvATFxjF.js +0 -1
  1088. package/web-ui/build/static/x86asm-r4bPbUR_.js +0 -1
  1089. package/web-ui/build/static/xeora-B6iOnDJY.js +0 -1
  1090. package/web-ui/build/static/xl-Ce6B5slc.js +0 -1
  1091. package/web-ui/build/static/xml-DNjyPmhQ.js +0 -1
  1092. package/web-ui/build/static/xml-doc-DydogmZD.js +0 -1
  1093. package/web-ui/build/static/xojo-DCQLltvr.js +0 -1
  1094. package/web-ui/build/static/xquery-C-fAnA0H.js +0 -1
  1095. package/web-ui/build/static/xquery-CNeqzhLO.js +0 -1
  1096. package/web-ui/build/static/yaml-BsVaGsk5.js +0 -1
  1097. package/web-ui/build/static/yaml-kVZvwv_C.js +0 -1
  1098. package/web-ui/build/static/yang-B_gq9JEq.js +0 -1
  1099. package/web-ui/build/static/zephir-ECIXgXhX.js +0 -1
  1100. package/web-ui/build/static/zig-DY325EKG.js +0 -1
@@ -35,7 +35,7 @@ export const OPENAI_FUNCTION_SCHEMAS = [
35
35
  {
36
36
  type: 'function',
37
37
  name: 'taskmanager',
38
- description: 'Create, update, complete, cancel, list, or clear tasks. One call per action. For create: provide title. For update/complete/cancel: provide taskId.',
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
39
  parameters: {
40
40
  type: 'object',
41
41
  properties: {
@@ -45,8 +45,11 @@ export const OPENAI_FUNCTION_SCHEMAS = [
45
45
  items: {
46
46
  type: 'object',
47
47
  properties: {
48
- type: { type: 'string', enum: ['create', 'update', 'complete', 'cancel', 'list', 'clear'] },
48
+ type: { type: 'string', enum: ['create', 'update', 'complete', 'cancel', 'list', 'clear', 'search', 'backfill-search-index'] },
49
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.' },
50
53
  title: { type: 'string', description: 'Task title — required for create; optional for update.' },
51
54
  description: { type: 'string' },
52
55
  priority: { type: 'string', enum: ['high', 'medium', 'low'], description: 'Only set for create/update. Omit for list — do NOT use as a filter.' },
@@ -241,67 +244,844 @@ export const OPENAI_FUNCTION_SCHEMAS = [
241
244
  // around — {mode, messageId, before?, after?, detail?}
242
245
  // byTool — {mode, toolId?, limit?, cursor?}
243
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?}
244
261
  {
245
262
  type: 'function',
246
- name: 'memory',
247
- description: 'Store and retrieve persistent memories across sessions, and browse your own pre-compaction conversation archive via the `reminisce` action.',
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.',
248
265
  parameters: {
249
266
  type: 'object',
250
267
  properties: {
251
- action: { type: 'string', enum: ['add', 'update', 'delete', 'read', 'list', 'search', 'stats', 'reminisce'] },
252
- id: { type: 'string', description: 'Memory id. Required for: update, delete, read (of memory entries).' },
253
- title: { type: 'string', description: 'Short title. Required for: add. Optional for: update.' },
254
- content: { type: 'string', description: 'Full memory content. Required for: add. Optional for: update.' },
255
- description: { type: 'string', description: 'Short summary. Optional for: add, update.' },
256
- query: { type: 'string', description: 'Search query. Required for memory search AND reminisce search.' },
257
- level: { type: 'string', enum: ['titles', 'descriptions', 'full'], description: 'Detail level for memory list/search output.' },
258
-
259
- // ── reminisce-specific params ─────────────────────────────────────
260
- mode: {
268
+ operation: {
261
269
  type: 'string',
262
- enum: ['overview', 'range', 'search', 'around', 'byTool', 'read'],
263
- description: 'Reminisce sub-mode. Required when action="reminisce".',
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 },
264
289
  },
265
- messageId: {
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: {
266
302
  type: 'string',
267
- description: 'Stable pointer into the conversation archive. Required for reminisce around/read. Get messageIds from overview/search/range/byTool results.',
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
+ },
268
429
  },
269
- // range / search / byTool paging
270
- from: { type: 'string', description: 'ISO timestamp lower bound (reminisce range).' },
271
- to: { type: 'string', description: 'ISO timestamp upper bound (reminisce range).' },
272
- offset: { type: 'integer', description: 'Pagination offset (reminisce range).' },
273
- limit: { type: 'integer', description: 'Max entries returned (reminisce range/byTool). 1–100.' },
274
- maxResults: { type: 'integer', description: 'Max search matches returned (reminisce search). 1–50.' },
275
- role: {
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: {
276
542
  type: 'string',
277
- enum: ['user', 'assistant', 'system'],
278
- description: 'Filter by message role (reminisce search).',
543
+ enum: ['list', 'describe', 'read', 'read-section', 'read-file', 'create', 'update', 'delete', 'import', 'search', 'backfill-search-index'],
279
544
  },
280
- cursor: { type: 'string', description: 'Opaque pagination cursor from a previous reminisce search/byTool response. Pass verbatim to continue.' },
281
- toolId: { type: 'string', description: 'Filter by toolId (reminisce byTool).' },
282
- // around MESSAGES on each side of the target
283
- before: {
284
- type: 'integer',
285
- description: 'Number of MESSAGES before the target to include (reminisce around). 0–20.',
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).',
286
564
  },
287
- after: {
288
- type: 'integer',
289
- description: 'Number of MESSAGES after the target to include (reminisce around). 0–20.',
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,
290
631
  },
291
- // read — sub-message window, mutually exclusive (lines win if both)
292
- lineFrom: { type: 'integer', description: 'First line to read, 1-indexed inclusive (reminisce read).' },
293
- lineTo: { type: 'integer', description: 'Last line to read, 1-indexed inclusive (reminisce read). Window capped at 500 lines.' },
294
- contentFrom: { type: 'integer', description: 'First character offset (reminisce read, 0-indexed inclusive). Ignored if lineFrom is set.' },
295
- contentTo: { type: 'integer', description: 'Last character offset (reminisce read, 0-indexed exclusive). Window capped at 16000 chars.' },
296
- detail: {
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: {
297
647
  type: 'string',
298
- enum: ['default', 'full'],
299
- description: 'Return shape: "default" truncates content and omits toolExecutions; "full" returns everything (eats tokens fast).',
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
+ ],
300
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.' },
301
658
  },
302
659
  required: ['action'],
303
660
  },
304
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
+ // Foundry Web Search — flat params. Single-operation tool with one
1006
+ // required field; orchestrates server-side via Azure AI Foundry + Bing.
1007
+ {
1008
+ type: 'function',
1009
+ name: 'foundry_web_search',
1010
+ description: 'Grounded web search via Azure AI Foundry + Bing. Returns a synthesized answer with CITED URLs. Use for time-sensitive lookups requiring sources. NOT for raw-link lists — use the "web" tool for that.',
1011
+ parameters: {
1012
+ type: 'object',
1013
+ properties: {
1014
+ query: { type: 'string', description: 'The search query.' },
1015
+ instructions: { type: 'string', description: 'Optional override of the default tool-use nudge — only when the model is ignoring search.' },
1016
+ model: { type: 'string', description: 'Optional chat model to orchestrate (default gpt-4o; must have Bing grounding bound in Foundry).' },
1017
+ },
1018
+ required: ['query'],
1019
+ },
1020
+ },
1021
+ // Doc (legacy) — Word document tool. SUPERSEDED by the "office" tool's
1022
+ // doc.* actions; kept registered for back-compat. New callers should
1023
+ // prefer office.
1024
+ {
1025
+ type: 'function',
1026
+ name: 'doc',
1027
+ description: 'LEGACY Word (.docx) tool — prefer the "office" tool with doc.* actions instead. Get info, read text/HTML, or create DOCX files.',
1028
+ parameters: {
1029
+ type: 'object',
1030
+ properties: {
1031
+ actions: {
1032
+ type: 'array',
1033
+ description: 'Array with a single action object.',
1034
+ items: {
1035
+ type: 'object',
1036
+ properties: {
1037
+ action: { type: 'string', enum: ['get-info', 'read', 'create'] },
1038
+ filePath: { type: 'string', description: 'Required for get-info and read.' },
1039
+ format: { type: 'string', enum: ['text', 'html'], description: 'read output format. Default "text".' },
1040
+ outputPath: { type: 'string', description: 'Required for create.' },
1041
+ content: { type: 'object', additionalProperties: true, description: 'Required for create. { title?, author?, sections: [{ children: [{ type, ... }] }] }.' },
1042
+ },
1043
+ required: ['action'],
1044
+ },
1045
+ minItems: 1,
1046
+ maxItems: 1,
1047
+ },
1048
+ },
1049
+ required: ['actions'],
1050
+ },
1051
+ },
1052
+ // Spreadsheet (legacy) — Excel tool. SUPERSEDED by the "office" tool's
1053
+ // sheet.* actions; kept registered for back-compat.
1054
+ {
1055
+ type: 'function',
1056
+ name: 'spreadsheet',
1057
+ description: 'LEGACY Excel (.xlsx) tool — prefer the "office" tool with sheet.* actions instead. Get info, read sheet data, or create XLSX files.',
1058
+ parameters: {
1059
+ type: 'object',
1060
+ properties: {
1061
+ actions: {
1062
+ type: 'array',
1063
+ description: 'Array with a single action object.',
1064
+ items: {
1065
+ type: 'object',
1066
+ properties: {
1067
+ action: { type: 'string', enum: ['get-info', 'read', 'create'] },
1068
+ filePath: { type: 'string', description: 'Required for get-info and read.' },
1069
+ sheetName: { type: 'string', description: 'Sheet to read (defaults to first sheet).' },
1070
+ startRow: { type: 'integer', description: '1-indexed start row for read.' },
1071
+ endRow: { type: 'integer', description: 'Inclusive end row for read.' },
1072
+ includeFormulas: { type: 'boolean', description: 'Return formulas instead of values for read.' },
1073
+ outputPath: { type: 'string', description: 'Required for create.' },
1074
+ content: { type: 'object', additionalProperties: true, description: 'Required for create. { sheets: [{ name, columns, rows, headerStyle?, freezeRow?, autoFilter?, formulas? }] }.' },
1075
+ },
1076
+ required: ['action'],
1077
+ },
1078
+ minItems: 1,
1079
+ maxItems: 1,
1080
+ },
1081
+ },
1082
+ required: ['actions'],
1083
+ },
1084
+ },
305
1085
  ];
306
1086
 
307
1087
  /**