onbuzz 4.4.0 → 4.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1013) hide show
  1. package/bin/cli.js +38 -18
  2. package/package.json +2 -1
  3. package/scripts/e2e-flow-live.js +598 -0
  4. package/src/__tests__/resolvePreferredModel.test.js +15 -1
  5. package/src/core/__test-utils__/flowJudge.js +198 -0
  6. package/src/core/__tests__/flowCheckpointStore.test.js +140 -0
  7. package/src/core/__tests__/flowEndToEnd.test.js +565 -0
  8. package/src/core/__tests__/flowExecutor.test.js +950 -0
  9. package/src/core/__tests__/flowFieldMapping.test.js +189 -0
  10. package/src/core/__tests__/flowJudge.test.js +140 -0
  11. package/src/core/__tests__/flowLint.test.js +119 -0
  12. package/src/core/__tests__/flowLintClientMirror.test.js +98 -0
  13. package/src/core/__tests__/flowMigration.test.js +160 -0
  14. package/src/core/__tests__/flowRetry.test.js +145 -0
  15. package/src/core/__tests__/flowSavePayload.test.js +169 -0
  16. package/src/core/__tests__/flowSchema.test.js +438 -0
  17. package/src/core/__tests__/flowTemplates.test.js +183 -0
  18. package/src/core/__tests__/flowTypes.test.js +147 -0
  19. package/src/core/__tests__/flowVersionStore.test.js +123 -0
  20. package/src/core/__tests__/orchestrator.test.js +38 -0
  21. package/src/core/__tests__/stateManager.test.js +281 -0
  22. package/src/core/agentPool.js +4 -0
  23. package/src/core/agentScheduler.js +46 -6
  24. package/src/core/flowCheckpointStore.js +146 -0
  25. package/src/core/flowExecutor.js +669 -87
  26. package/src/core/flowFieldMapping.js +138 -0
  27. package/src/core/flowLint.js +102 -0
  28. package/src/core/flowMigration.js +88 -0
  29. package/src/core/flowRetry.js +103 -0
  30. package/src/core/flowSchema.js +297 -0
  31. package/src/core/flowTypes.js +81 -0
  32. package/src/core/flowVersionStore.js +122 -0
  33. package/src/core/messageProcessor.js +5 -1
  34. package/src/core/stateManager.js +254 -15
  35. package/src/index.js +34 -0
  36. package/src/interfaces/__tests__/agentContextRoutes.test.js +272 -0
  37. package/src/interfaces/agentContextRoutes.js +257 -0
  38. package/src/interfaces/webServer.js +282 -4
  39. package/src/modules/widget/__tests__/naming.test.js +204 -0
  40. package/src/modules/widget/galleryStore.js +27 -2
  41. package/src/modules/widget/routes.js +21 -0
  42. package/src/modules/widget/schema.js +49 -1
  43. package/src/modules/widget/widgetTool.js +53 -0
  44. package/src/services/__tests__/apiKeyManager.test.js +163 -0
  45. package/src/services/__tests__/contextInjectionService.test.js +41 -0
  46. package/src/services/__tests__/flowContextService.test.js +391 -0
  47. package/src/services/apiKeyManager.js +54 -3
  48. package/src/services/contextInjectionService.js +24 -0
  49. package/src/services/flowContextService.js +401 -4
  50. package/src/tools/__tests__/imageFormat.test.js +208 -0
  51. package/src/tools/__tests__/jobDoneTool.test.js +285 -0
  52. package/src/tools/__tests__/platformControlAgentTeam.test.js +623 -0
  53. package/src/tools/__tests__/platformControlAgentTeamPermissions.test.js +253 -0
  54. package/src/tools/__tests__/platformControlAncestry.test.js +131 -0
  55. package/src/tools/__tests__/platformControlCascade.test.js +177 -0
  56. package/src/tools/__tests__/platformControlPermissions.test.js +128 -0
  57. package/src/tools/__tests__/platformControlPersistence.test.js +134 -0
  58. package/src/tools/__tests__/platformControlTool.test.js +391 -0
  59. package/src/tools/__tests__/terminalDedup.test.js +324 -0
  60. package/src/tools/imageFormat.js +249 -0
  61. package/src/tools/imageTool.js +107 -18
  62. package/src/tools/jobDoneTool.js +111 -3
  63. package/src/tools/platformControl/ancestry.js +85 -0
  64. package/src/tools/platformControl/cascadeService.js +146 -0
  65. package/src/tools/platformControl/permissions.js +394 -0
  66. package/src/tools/platformControlTool.js +854 -0
  67. package/src/tools/terminalDedup.js +178 -0
  68. package/src/tools/terminalTool.js +28 -0
  69. package/src/tools/videoTool.js +94 -60
  70. package/src/tools/webTool.js +9 -0
  71. package/src/utilities/__tests__/apiKeyPlaceholders.test.js +120 -0
  72. package/src/utilities/__tests__/brand.test.js +115 -0
  73. package/src/utilities/apiKeyPlaceholders.js +68 -0
  74. package/src/utilities/brand.js +93 -0
  75. package/src/utilities/constants.js +1 -1
  76. package/src/utilities/userDataDir.js +5 -0
  77. package/web-ui/build/index.html +2 -2
  78. package/web-ui/build/static/1c-CvuQ3hv-.js +1 -0
  79. package/web-ui/build/static/abap-BLdv0Jje.js +1 -0
  80. package/web-ui/build/static/abnf-CGGg8KtC.js +1 -0
  81. package/web-ui/build/static/abnf-DRXF8AHh.js +1 -0
  82. package/web-ui/build/static/accesslog-C0v06age.js +1 -0
  83. package/web-ui/build/static/actionscript-5uhk1qo4.js +1 -0
  84. package/web-ui/build/static/actionscript-eFh_rL7l.js +1 -0
  85. package/web-ui/build/static/ada-DX064lsk.js +1 -0
  86. package/web-ui/build/static/ada-DtDpZJA8.js +1 -0
  87. package/web-ui/build/static/agda-DPnmQC2V.js +1 -0
  88. package/web-ui/build/static/al-BJnZv7Mq.js +1 -0
  89. package/web-ui/build/static/angelscript-BzX4egqM.js +1 -0
  90. package/web-ui/build/static/antlr4-CpvLBdqN.js +1 -0
  91. package/web-ui/build/static/apache-CeMpLZgQ.js +1 -0
  92. package/web-ui/build/static/apacheconf-DuxpNgGg.js +1 -0
  93. package/web-ui/build/static/apex-BnvL-Zqw.js +1 -0
  94. package/web-ui/build/static/apl-Cwp1WC58.js +1 -0
  95. package/web-ui/build/static/applescript-Drjf4gZ_.js +1 -0
  96. package/web-ui/build/static/applescript-OCRtzdLy.js +1 -0
  97. package/web-ui/build/static/aql-BT92x5XB.js +1 -0
  98. package/web-ui/build/static/arcade-BS9r1rKb.js +1 -0
  99. package/web-ui/build/static/arduino-Dx4b0RsU.js +1 -0
  100. package/web-ui/build/static/arduino-MC82bxgK.js +1 -0
  101. package/web-ui/build/static/arff-BPbJPmCK.js +1 -0
  102. package/web-ui/build/static/armasm-Ae0OYiNN.js +1 -0
  103. package/web-ui/build/static/asciidoc-BFCjTY8x.js +1 -0
  104. package/web-ui/build/static/asciidoc-Cum1UNn8.js +1 -0
  105. package/web-ui/build/static/asm6502-DRrCRZ3g.js +1 -0
  106. package/web-ui/build/static/asmatmel-QweP0nrX.js +1 -0
  107. package/web-ui/build/static/aspectj-GSWlVl13.js +1 -0
  108. package/web-ui/build/static/aspnet-gFBjg3Gc.js +1 -0
  109. package/web-ui/build/static/autohotkey-BKW8CgdS.js +1 -0
  110. package/web-ui/build/static/autohotkey-PxYn0v1n.js +1 -0
  111. package/web-ui/build/static/autoit-Dm1-Ww37.js +1 -0
  112. package/web-ui/build/static/autoit-ttEVAAKG.js +1 -0
  113. package/web-ui/build/static/avisynth-B7Wkp41N.js +1 -0
  114. package/web-ui/build/static/avrasm-CUPF81zm.js +1 -0
  115. package/web-ui/build/static/avro-idl-DHWmsw82.js +1 -0
  116. package/web-ui/build/static/awk-CjJ3RSZI.js +1 -0
  117. package/web-ui/build/static/axapta-C1qEYhtS.js +1 -0
  118. package/web-ui/build/static/bash-BGEpCDRi.js +1 -0
  119. package/web-ui/build/static/bash-nKHqg4vr.js +1 -0
  120. package/web-ui/build/static/basic-BoEGbohL.js +1 -0
  121. package/web-ui/build/static/basic-LeZDGhzq.js +1 -0
  122. package/web-ui/build/static/batch-AgpF9rt8.js +1 -0
  123. package/web-ui/build/static/bbcode-qAuG7NMV.js +1 -0
  124. package/web-ui/build/static/bicep-BjdiK558.js +1 -0
  125. package/web-ui/build/static/birb-DAe1WhT3.js +1 -0
  126. package/web-ui/build/static/bison-BanDUZpy.js +1 -0
  127. package/web-ui/build/static/bnf-DlBe3_6s.js +1 -0
  128. package/web-ui/build/static/bnf-QgoO3Q8o.js +1 -0
  129. package/web-ui/build/static/brainfuck-B1DXmfDc.js +1 -0
  130. package/web-ui/build/static/brainfuck-B_JhB4QU.js +1 -0
  131. package/web-ui/build/static/brightscript-C0POlK1a.js +1 -0
  132. package/web-ui/build/static/bro-CjGWwSC2.js +1 -0
  133. package/web-ui/build/static/bsl-DXsNn0E7.js +1 -0
  134. package/web-ui/build/static/c-D-Xouzk3.js +1 -0
  135. package/web-ui/build/static/c-Df8JpOdZ.js +1 -0
  136. package/web-ui/build/static/c-like-BQySGMeF.js +1 -0
  137. package/web-ui/build/static/cal-DLefuKn4.js +1 -0
  138. package/web-ui/build/static/capnproto-DuI4CHAK.js +1 -0
  139. package/web-ui/build/static/ceylon-DyUD9r5X.js +1 -0
  140. package/web-ui/build/static/cfscript-B71LgEx4.js +1 -0
  141. package/web-ui/build/static/chaiscript-DUx8exmo.js +1 -0
  142. package/web-ui/build/static/cil-BkH647hL.js +1 -0
  143. package/web-ui/build/static/clean-4G2AsMGw.js +1 -0
  144. package/web-ui/build/static/clojure-C41DUPjJ.js +1 -0
  145. package/web-ui/build/static/clojure-RzWG1SWB.js +1 -0
  146. package/web-ui/build/static/clojure-repl-C12peSNj.js +1 -0
  147. package/web-ui/build/static/cmake-D9dyf1Ef.js +1 -0
  148. package/web-ui/build/static/cmake-X6aOgq7A.js +1 -0
  149. package/web-ui/build/static/cobol-DQBujvW6.js +1 -0
  150. package/web-ui/build/static/coffeescript-3uuDLR0C.js +1 -0
  151. package/web-ui/build/static/coffeescript-BesW_-0N.js +1 -0
  152. package/web-ui/build/static/concurnas-DUqxEcDq.js +1 -0
  153. package/web-ui/build/static/coq-BNw0ZmzS.js +1 -0
  154. package/web-ui/build/static/coq-J6mf-n4i.js +1 -0
  155. package/web-ui/build/static/cos-B-p2VbRC.js +1 -0
  156. package/web-ui/build/static/cpp-B91xny9o.js +1 -0
  157. package/web-ui/build/static/cpp-C-qfcmAQ.js +1 -0
  158. package/web-ui/build/static/crmsh-CXJSYh9n.js +1 -0
  159. package/web-ui/build/static/crystal-BZJ_gkDx.js +1 -0
  160. package/web-ui/build/static/crystal-D7rBvt2Y.js +1 -0
  161. package/web-ui/build/static/csharp-CHWbNjwN.js +1 -0
  162. package/web-ui/build/static/csharp-DHH7lbyr.js +1 -0
  163. package/web-ui/build/static/cshtml-6XKl5N6w.js +1 -0
  164. package/web-ui/build/static/csp-BwQp4uKS.js +1 -0
  165. package/web-ui/build/static/csp-LxTXhb7W.js +1 -0
  166. package/web-ui/build/static/css-JviRe6l1.js +1 -0
  167. package/web-ui/build/static/css-extras-DdIyhyWh.js +1 -0
  168. package/web-ui/build/static/csv-BhyLVYKF.js +1 -0
  169. package/web-ui/build/static/cypher-45QLqKfb.js +1 -0
  170. package/web-ui/build/static/d-BQuCFdtT.js +1 -0
  171. package/web-ui/build/static/d-rDpztdwo.js +1 -0
  172. package/web-ui/build/static/dart-B3HdKwvI.js +1 -0
  173. package/web-ui/build/static/dart-CxIvlNfF.js +1 -0
  174. package/web-ui/build/static/dataweave-CMS5SC_F.js +1 -0
  175. package/web-ui/build/static/dax-C_neqUB4.js +1 -0
  176. package/web-ui/build/static/delphi-D86BXUtC.js +1 -0
  177. package/web-ui/build/static/dhall-BGV0CTjz.js +1 -0
  178. package/web-ui/build/static/diff-Br5L84xu.js +1 -0
  179. package/web-ui/build/static/diff-C8dJOj7p.js +1 -0
  180. package/web-ui/build/static/django-CRpfLgb_.js +1 -0
  181. package/web-ui/build/static/django-Cr0k0BHt.js +1 -0
  182. package/web-ui/build/static/dns-CvhVGt9J.js +1 -0
  183. package/web-ui/build/static/dns-zone-file--waGszJ5.js +1 -0
  184. package/web-ui/build/static/docker-Bp-jYj4d.js +1 -0
  185. package/web-ui/build/static/dockerfile-B9PF5D-H.js +1 -0
  186. package/web-ui/build/static/dos-CGjRa73t.js +1 -0
  187. package/web-ui/build/static/dot---3xJv0W.js +1 -0
  188. package/web-ui/build/static/dsconfig-ChUbMzIk.js +1 -0
  189. package/web-ui/build/static/dts-DzVrXhdk.js +1 -0
  190. package/web-ui/build/static/dust-BuyYJzfS.js +1 -0
  191. package/web-ui/build/static/ebnf-B4Jhny4j.js +1 -0
  192. package/web-ui/build/static/ebnf-wTpKeELK.js +1 -0
  193. package/web-ui/build/static/editorconfig-DijMMyBE.js +1 -0
  194. package/web-ui/build/static/eiffel-gSk8UUfh.js +1 -0
  195. package/web-ui/build/static/ejs-U-J4wHaR.js +1 -0
  196. package/web-ui/build/static/elixir-CLgHOCRk.js +1 -0
  197. package/web-ui/build/static/elixir-KhfnyoV6.js +1 -0
  198. package/web-ui/build/static/elm-B0g83jwv.js +1 -0
  199. package/web-ui/build/static/elm-Bl8qDmwz.js +1 -0
  200. package/web-ui/build/static/erb-CwkagsxA.js +1 -0
  201. package/web-ui/build/static/erb-DXfF2Urb.js +1 -0
  202. package/web-ui/build/static/erlang-BsONy4Br.js +1 -0
  203. package/web-ui/build/static/erlang-C44ddtgw.js +1 -0
  204. package/web-ui/build/static/erlang-repl-DhirJ_Ji.js +1 -0
  205. package/web-ui/build/static/etlua-C71HyvJj.js +1 -0
  206. package/web-ui/build/static/excel-B_RD_Nc6.js +1 -0
  207. package/web-ui/build/static/excel-formula-xRVcfp1T.js +1 -0
  208. package/web-ui/build/static/factor-CftUx68l.js +1 -0
  209. package/web-ui/build/static/false-DqRtSZRC.js +1 -0
  210. package/web-ui/build/static/firestore-security-rules-BCG_0nJP.js +1 -0
  211. package/web-ui/build/static/fix-CnRMAIWg.js +1 -0
  212. package/web-ui/build/static/flix-DLAgo_-e.js +1 -0
  213. package/web-ui/build/static/flow-w5YSIX1I.js +1 -0
  214. package/web-ui/build/static/fortran-CH5byJ0j.js +1 -0
  215. package/web-ui/build/static/fortran-DK-jnXQF.js +1 -0
  216. package/web-ui/build/static/fsharp-Cnfw9xB2.js +1 -0
  217. package/web-ui/build/static/fsharp-hebdfC6F.js +1 -0
  218. package/web-ui/build/static/ftl-DSSTp35t.js +1 -0
  219. package/web-ui/build/static/gams-C3akjfKZ.js +1 -0
  220. package/web-ui/build/static/gap-Dve6kEeL.js +1 -0
  221. package/web-ui/build/static/gauss-BmUqjv1m.js +1 -0
  222. package/web-ui/build/static/gcode-CjPpcuxm.js +1 -0
  223. package/web-ui/build/static/gcode-DdF0Sf0K.js +1 -0
  224. package/web-ui/build/static/gdscript-uyE_Q4Bz.js +1 -0
  225. package/web-ui/build/static/gedcom-9_5CrYud.js +1 -0
  226. package/web-ui/build/static/gherkin-0qL8AiDA.js +1 -0
  227. package/web-ui/build/static/gherkin-CBXpoWw3.js +1 -0
  228. package/web-ui/build/static/git-D6Y51k33.js +1 -0
  229. package/web-ui/build/static/glsl-DnD7skof.js +1 -0
  230. package/web-ui/build/static/glsl-aij7eTLw.js +1 -0
  231. package/web-ui/build/static/gml-3zbjVRHR.js +1 -0
  232. package/web-ui/build/static/gml-BOViyHVy.js +1 -0
  233. package/web-ui/build/static/gn-lYZFOgaG.js +1 -0
  234. package/web-ui/build/static/go-D3NQLBKz.js +1 -0
  235. package/web-ui/build/static/go-_v8tkYQe.js +1 -0
  236. package/web-ui/build/static/go-module-C6c3_rbX.js +1 -0
  237. package/web-ui/build/static/golo-BOIzwgKG.js +1 -0
  238. package/web-ui/build/static/gradle-DdejLgT6.js +1 -0
  239. package/web-ui/build/static/graphql-BWowSWlo.js +1 -0
  240. package/web-ui/build/static/groovy-DE_kIGjj.js +1 -0
  241. package/web-ui/build/static/groovy-DatEqK3Y.js +1 -0
  242. package/web-ui/build/static/haml-CpEpgDyf.js +1 -0
  243. package/web-ui/build/static/haml-DbPIKAsr.js +1 -0
  244. package/web-ui/build/static/handlebars-BcvOygMh.js +1 -0
  245. package/web-ui/build/static/handlebars-CM_40QlT.js +1 -0
  246. package/web-ui/build/static/haskell-DVgDTyj3.js +1 -0
  247. package/web-ui/build/static/haskell-Dm2oiqNu.js +1 -0
  248. package/web-ui/build/static/haxe--0QfWvD_.js +1 -0
  249. package/web-ui/build/static/haxe-DClHSH5I.js +1 -0
  250. package/web-ui/build/static/hcl-BaxNlNAk.js +1 -0
  251. package/web-ui/build/static/hlsl-Di7PYfJn.js +1 -0
  252. package/web-ui/build/static/hoon-Bq4hhWSd.js +1 -0
  253. package/web-ui/build/static/hpkp-Bu1AnCZZ.js +1 -0
  254. package/web-ui/build/static/hsp-CbIHPOnb.js +1 -0
  255. package/web-ui/build/static/hsts-inGzMZHb.js +1 -0
  256. package/web-ui/build/static/htmlbars-B63TZb6k.js +1 -0
  257. package/web-ui/build/static/http-3wWrh86I.js +1 -0
  258. package/web-ui/build/static/http-Bv97BGAr.js +1 -0
  259. package/web-ui/build/static/hy-CIEvnIJC.js +1 -0
  260. package/web-ui/build/static/ichigojam-BAyO373g.js +1 -0
  261. package/web-ui/build/static/icon-CGCawTFI.js +1 -0
  262. package/web-ui/build/static/icu-message-format-C_lOXF7I.js +1 -0
  263. package/web-ui/build/static/idris-D0SaDFta.js +1 -0
  264. package/web-ui/build/static/iecst-DIJ6Ei7g.js +1 -0
  265. package/web-ui/build/static/ignore-CgcF6vXx.js +1 -0
  266. package/web-ui/build/static/index-CCDUVvvx.js +1 -0
  267. package/web-ui/build/static/index-Cjg3uZB9.js +1109 -0
  268. package/web-ui/build/static/index-CjtNtdGN.js +13 -0
  269. package/web-ui/build/static/index-DpMwgPzf.css +1 -0
  270. package/web-ui/build/static/inform7-C_MqBtMp.js +1 -0
  271. package/web-ui/build/static/inform7-CmRJkJSh.js +1 -0
  272. package/web-ui/build/static/ini-BE6jwIzm.js +1 -0
  273. package/web-ui/build/static/ini-BJ50J7Sm.js +1 -0
  274. package/web-ui/build/static/io-Cnt0nyV5.js +1 -0
  275. package/web-ui/build/static/irpf90-BjRJE_kg.js +1 -0
  276. package/web-ui/build/static/isbl-C7912t_8.js +1 -0
  277. package/web-ui/build/static/j-D6ci3wH9.js +1 -0
  278. package/web-ui/build/static/java-B_gtzL63.js +1 -0
  279. package/web-ui/build/static/java-CChyLI1p.js +1 -0
  280. package/web-ui/build/static/javadoc-CGvzgn19.js +1 -0
  281. package/web-ui/build/static/javadoclike-CI4krpLe.js +1 -0
  282. package/web-ui/build/static/javascript-CgORCJsx.js +1 -0
  283. package/web-ui/build/static/javastacktrace-DNnLXvJa.js +1 -0
  284. package/web-ui/build/static/jboss-cli-DIfGm3Rl.js +1 -0
  285. package/web-ui/build/static/jexl-CYQxvL_i.js +1 -0
  286. package/web-ui/build/static/jolie-C2fxUjz7.js +1 -0
  287. package/web-ui/build/static/jq-j1fAl-OU.js +1 -0
  288. package/web-ui/build/static/js-extras-Dqx-da8U.js +1 -0
  289. package/web-ui/build/static/js-templates-jQphR4CW.js +1 -0
  290. package/web-ui/build/static/jsdoc-BCunhOqo.js +1 -0
  291. package/web-ui/build/static/json-CljDde4D.js +1 -0
  292. package/web-ui/build/static/json-Cvzg5_hO.js +1 -0
  293. package/web-ui/build/static/json5-B19V_yl9.js +1 -0
  294. package/web-ui/build/static/jsonp-WdmhO5Oi.js +1 -0
  295. package/web-ui/build/static/jsstacktrace-LpNHn4a_.js +1 -0
  296. package/web-ui/build/static/jsx-Zw6Egddf.js +1 -0
  297. package/web-ui/build/static/julia-DPlpJZNN.js +1 -0
  298. package/web-ui/build/static/julia-DuKc9nrz.js +1 -0
  299. package/web-ui/build/static/julia-repl-C-LuPMzI.js +1 -0
  300. package/web-ui/build/static/keepalived-DDl-dK9a.js +1 -0
  301. package/web-ui/build/static/keyman-DCtgoYKu.js +1 -0
  302. package/web-ui/build/static/kotlin-D9aFeaCS.js +1 -0
  303. package/web-ui/build/static/kotlin-DlrR34XG.js +1 -0
  304. package/web-ui/build/static/kumir-B_aiiAzq.js +1 -0
  305. package/web-ui/build/static/kusto-CD4lHO1B.js +1 -0
  306. package/web-ui/build/static/lasso-BAMF8mdd.js +1 -0
  307. package/web-ui/build/static/latex-BjEyffe7.js +1 -0
  308. package/web-ui/build/static/latex-NaCSqcbD.js +1 -0
  309. package/web-ui/build/static/latte-BACpaGl3.js +1 -0
  310. package/web-ui/build/static/ldif-CRWTiH1W.js +1 -0
  311. package/web-ui/build/static/leaf-BYydRpJx.js +1 -0
  312. package/web-ui/build/static/less-BtFu1MXi.js +1 -0
  313. package/web-ui/build/static/less-COgcqIOM.js +1 -0
  314. package/web-ui/build/static/lilypond-BMLjCV3G.js +1 -0
  315. package/web-ui/build/static/liquid-Dr5bQMAB.js +1 -0
  316. package/web-ui/build/static/lisp-CE1ra7Xs.js +1 -0
  317. package/web-ui/build/static/lisp-CcOEo5DI.js +1 -0
  318. package/web-ui/build/static/livecodeserver-DNuOfASY.js +1 -0
  319. package/web-ui/build/static/livescript-BJor4pxz.js +1 -0
  320. package/web-ui/build/static/livescript-DFaZj6XM.js +1 -0
  321. package/web-ui/build/static/llvm-CJtHIXsX.js +1 -0
  322. package/web-ui/build/static/llvm-d3gQICQs.js +1 -0
  323. package/web-ui/build/static/log-B0pKN1S4.js +1 -0
  324. package/web-ui/build/static/lolcode-C_V6Sffm.js +1 -0
  325. package/web-ui/build/static/lsl-yhp5dB9o.js +1 -0
  326. package/web-ui/build/static/lua-BDTJq_SO.js +1 -0
  327. package/web-ui/build/static/lua-BaKkUUd_.js +1 -0
  328. package/web-ui/build/static/magma-aTzw_jlN.js +1 -0
  329. package/web-ui/build/static/makefile-FyZn4dZ-.js +1 -0
  330. package/web-ui/build/static/makefile-Vk7smupm.js +1 -0
  331. package/web-ui/build/static/markdown-BHavO-Hk.js +1 -0
  332. package/web-ui/build/static/markdown-CTYy6uqC.js +1 -0
  333. package/web-ui/build/static/markup-templating-DJWuQB2F.js +1 -0
  334. package/web-ui/build/static/mathematica-BnMzpFTS.js +1 -0
  335. package/web-ui/build/static/matlab-BsW3yHe5.js +1 -0
  336. package/web-ui/build/static/matlab-C8_ylrUg.js +1 -0
  337. package/web-ui/build/static/maxima-c3e9EB-f.js +1 -0
  338. package/web-ui/build/static/maxscript-DU-NoCpb.js +1 -0
  339. package/web-ui/build/static/mel-CcB2EUO0.js +1 -0
  340. package/web-ui/build/static/mel-u6igP96m.js +1 -0
  341. package/web-ui/build/static/mercury-YZshmW3v.js +1 -0
  342. package/web-ui/build/static/mermaid-C9dmgLlU.js +1 -0
  343. package/web-ui/build/static/mipsasm-BXHH9ztX.js +1 -0
  344. package/web-ui/build/static/mizar-B1317rho.js +1 -0
  345. package/web-ui/build/static/mizar-BjaPUUcM.js +1 -0
  346. package/web-ui/build/static/mojolicious-BQ8vE8HW.js +1 -0
  347. package/web-ui/build/static/mongodb-P-J2PnwH.js +1 -0
  348. package/web-ui/build/static/monkey-DcKZEVh6.js +1 -0
  349. package/web-ui/build/static/monkey-wMAzhDv4.js +1 -0
  350. package/web-ui/build/static/moonscript-C9Ea7K1o.js +1 -0
  351. package/web-ui/build/static/moonscript-DAjW1T8X.js +1 -0
  352. package/web-ui/build/static/n1ql-6nGwiuTr.js +1 -0
  353. package/web-ui/build/static/n1ql-BxgYqKfs.js +1 -0
  354. package/web-ui/build/static/n4js-Cqw8_-b7.js +1 -0
  355. package/web-ui/build/static/nand2tetris-hdl-B3Qrhhfv.js +1 -0
  356. package/web-ui/build/static/naniscript-BpIC5j6P.js +1 -0
  357. package/web-ui/build/static/nasm-Dp1z_ttd.js +1 -0
  358. package/web-ui/build/static/neon-B4RksdIv.js +1 -0
  359. package/web-ui/build/static/nevod-P34zfD9_.js +1 -0
  360. package/web-ui/build/static/nginx-CSaiFc4g.js +1 -0
  361. package/web-ui/build/static/nginx-bZFV7OqP.js +1 -0
  362. package/web-ui/build/static/nim-D04ADsdj.js +1 -0
  363. package/web-ui/build/static/nim-D37nbh5y.js +1 -0
  364. package/web-ui/build/static/nix-BPsQ58gF.js +1 -0
  365. package/web-ui/build/static/nix-keWnuH3h.js +1 -0
  366. package/web-ui/build/static/node-repl-rNkVcb6S.js +1 -0
  367. package/web-ui/build/static/nsis-DT8bhvLc.js +1 -0
  368. package/web-ui/build/static/nsis-DvfCmyQQ.js +1 -0
  369. package/web-ui/build/static/objectivec-BaJIzRqu.js +1 -0
  370. package/web-ui/build/static/objectivec-CmAY0jlQ.js +1 -0
  371. package/web-ui/build/static/ocaml-Dsf96dbW.js +1 -0
  372. package/web-ui/build/static/ocaml-SFQJ7AwJ.js +1 -0
  373. package/web-ui/build/static/opencl-Dp9ILs3s.js +1 -0
  374. package/web-ui/build/static/openqasm-Bsk-xK6C.js +1 -0
  375. package/web-ui/build/static/openscad-Dgvp4h50.js +1 -0
  376. package/web-ui/build/static/oxygene-C9rTsztX.js +1 -0
  377. package/web-ui/build/static/oz-DNlV-Ssf.js +1 -0
  378. package/web-ui/build/static/parigp-B7a5XVP7.js +1 -0
  379. package/web-ui/build/static/parser-nTo2WBxY.js +1 -0
  380. package/web-ui/build/static/parser3-BSD4cYqf.js +1 -0
  381. package/web-ui/build/static/pascal-DJxIFBHG.js +1 -0
  382. package/web-ui/build/static/pascaligo-JdV741ps.js +1 -0
  383. package/web-ui/build/static/pcaxis-DdexNvEQ.js +1 -0
  384. package/web-ui/build/static/peoplecode-DxBgZPZT.js +1 -0
  385. package/web-ui/build/static/perl-C0INln41.js +1 -0
  386. package/web-ui/build/static/perl-DvRuNidH.js +1 -0
  387. package/web-ui/build/static/pf-BjguNjII.js +1 -0
  388. package/web-ui/build/static/pgsql-9w8Z8Ams.js +1 -0
  389. package/web-ui/build/static/php-DKQIY8Pe.js +1 -0
  390. package/web-ui/build/static/php-DibEnIhD.js +1 -0
  391. package/web-ui/build/static/php-extras-CKKhA74Z.js +1 -0
  392. package/web-ui/build/static/php-template-Cjba7UNU.js +1 -0
  393. package/web-ui/build/static/phpdoc-QXtTW5az.js +1 -0
  394. package/web-ui/build/static/plaintext-Cbn61_h_.js +1 -0
  395. package/web-ui/build/static/plsql-f34z7hfB.js +1 -0
  396. package/web-ui/build/static/pony-DBSnXJAW.js +1 -0
  397. package/web-ui/build/static/powerquery-lin81zqH.js +1 -0
  398. package/web-ui/build/static/powershell-BoyP16Ta.js +1 -0
  399. package/web-ui/build/static/powershell-CCpHONl6.js +1 -0
  400. package/web-ui/build/static/processing-Cd7-ycAb.js +1 -0
  401. package/web-ui/build/static/processing-CeGW9CwE.js +1 -0
  402. package/web-ui/build/static/profile-DLYi3Uya.js +1 -0
  403. package/web-ui/build/static/prolog-BVr1f3c4.js +1 -0
  404. package/web-ui/build/static/prolog-C3D6KhoT.js +1 -0
  405. package/web-ui/build/static/promql-dviC9B24.js +1 -0
  406. package/web-ui/build/static/properties-CSNjefFg.js +1 -0
  407. package/web-ui/build/static/properties-DTAWAQKc.js +1 -0
  408. package/web-ui/build/static/protobuf-BCYoMCa-.js +1 -0
  409. package/web-ui/build/static/protobuf-D8G6xbh1.js +1 -0
  410. package/web-ui/build/static/psl-DzehMnl-.js +1 -0
  411. package/web-ui/build/static/pug-Cl4m_Cmv.js +1 -0
  412. package/web-ui/build/static/puppet-CECKDklS.js +1 -0
  413. package/web-ui/build/static/puppet-ZSk9z7h2.js +1 -0
  414. package/web-ui/build/static/pure-CRYVKpUf.js +1 -0
  415. package/web-ui/build/static/purebasic-B1B7jCI9.js +1 -0
  416. package/web-ui/build/static/purebasic-BdOvLN02.js +1 -0
  417. package/web-ui/build/static/purescript-CdFZo5U_.js +1 -0
  418. package/web-ui/build/static/python-B_UnJ1V3.js +1 -0
  419. package/web-ui/build/static/python-BeSi3a8_.js +1 -0
  420. package/web-ui/build/static/python-repl-BBmtoedD.js +1 -0
  421. package/web-ui/build/static/q-Ery9rED_.js +1 -0
  422. package/web-ui/build/static/q-OEzRNQWZ.js +1 -0
  423. package/web-ui/build/static/qml-DdHTOYCC.js +1 -0
  424. package/web-ui/build/static/qml-DqjqC3TV.js +1 -0
  425. package/web-ui/build/static/qore-D3qGrct2.js +1 -0
  426. package/web-ui/build/static/qsharp-DdQgHY8o.js +1 -0
  427. package/web-ui/build/static/r-BsnBh-Gb.js +1 -0
  428. package/web-ui/build/static/r-CgLmD3ej.js +1 -0
  429. package/web-ui/build/static/racket-CgSPkQxA.js +1 -0
  430. package/web-ui/build/static/reason-BRJ4xDT3.js +1 -0
  431. package/web-ui/build/static/reasonml-B8V18bIF.js +1 -0
  432. package/web-ui/build/static/regex-C8qp_5tY.js +1 -0
  433. package/web-ui/build/static/rego-B3dQMEmR.js +1 -0
  434. package/web-ui/build/static/renpy-BmlUaEOQ.js +1 -0
  435. package/web-ui/build/static/rest-XlDNtjp0.js +1 -0
  436. package/web-ui/build/static/rib-BfquiuWk.js +1 -0
  437. package/web-ui/build/static/rip-dGRhlG0v.js +1 -0
  438. package/web-ui/build/static/roboconf-CtBSSFaA.js +1 -0
  439. package/web-ui/build/static/roboconf-wrbztr2r.js +1 -0
  440. package/web-ui/build/static/robotframework-BSxuJaY6.js +1 -0
  441. package/web-ui/build/static/routeros-DHKFvEvZ.js +1 -0
  442. package/web-ui/build/static/rsl-BhjvE0Cr.js +1 -0
  443. package/web-ui/build/static/ruby-BMED8W31.js +1 -0
  444. package/web-ui/build/static/ruby-BkE7uZGd.js +1 -0
  445. package/web-ui/build/static/ruleslanguage-DGe1m8Id.js +1 -0
  446. package/web-ui/build/static/rust-CUje9n_P.js +1 -0
  447. package/web-ui/build/static/rust-O67yEsAu.js +1 -0
  448. package/web-ui/build/static/sas-BpDWmnoa.js +1 -0
  449. package/web-ui/build/static/sas-DRBVod_5.js +1 -0
  450. package/web-ui/build/static/sass-CdUBh_kW.js +1 -0
  451. package/web-ui/build/static/scala-BvUTPbg2.js +1 -0
  452. package/web-ui/build/static/scala-DmXpVBFR.js +1 -0
  453. package/web-ui/build/static/scheme-BfzSegEb.js +1 -0
  454. package/web-ui/build/static/scheme-CL7dxV3L.js +1 -0
  455. package/web-ui/build/static/scilab-Bwx8K6ut.js +1 -0
  456. package/web-ui/build/static/scss-Bk3cnVi-.js +1 -0
  457. package/web-ui/build/static/scss-CEq_Uo2G.js +1 -0
  458. package/web-ui/build/static/shell-CH2lH60k.js +1 -0
  459. package/web-ui/build/static/shell-session-Dsc6nnXg.js +1 -0
  460. package/web-ui/build/static/smali-DR57iO-M.js +1 -0
  461. package/web-ui/build/static/smali-QDgUokkE.js +1 -0
  462. package/web-ui/build/static/smalltalk-CNWYoGI5.js +1 -0
  463. package/web-ui/build/static/smalltalk-DuKK00UG.js +1 -0
  464. package/web-ui/build/static/smarty-CM_K74KX.js +1 -0
  465. package/web-ui/build/static/sml-B-u4vtVQ.js +1 -0
  466. package/web-ui/build/static/sml-CnAed_Dv.js +1 -0
  467. package/web-ui/build/static/solidity-Bc_FUKPw.js +1 -0
  468. package/web-ui/build/static/solution-file-CE-Ffn8a.js +1 -0
  469. package/web-ui/build/static/soy-B__lNQNx.js +1 -0
  470. package/web-ui/build/static/sparql-BZnN0yju.js +1 -0
  471. package/web-ui/build/static/splunk-spl-DIs_BiUo.js +1 -0
  472. package/web-ui/build/static/sqf-DNSlhOUj.js +1 -0
  473. package/web-ui/build/static/sqf-DwPev5qJ.js +1 -0
  474. package/web-ui/build/static/sql-C9UaJUCf.js +1 -0
  475. package/web-ui/build/static/sql-DAnJSRyV.js +1 -0
  476. package/web-ui/build/static/sql_more-DMMfa_Zg.js +1 -0
  477. package/web-ui/build/static/squirrel-Bevu4MOl.js +1 -0
  478. package/web-ui/build/static/stan-Bs_yMVnC.js +1 -0
  479. package/web-ui/build/static/stan-Cduy4Z3W.js +1 -0
  480. package/web-ui/build/static/stata-BrHJdKRc.js +1 -0
  481. package/web-ui/build/static/step21-CGhxzCID.js +1 -0
  482. package/web-ui/build/static/stylus-B2lueE5_.js +1 -0
  483. package/web-ui/build/static/stylus-pKniqDuc.js +1 -0
  484. package/web-ui/build/static/subunit-B5WE5S5P.js +1 -0
  485. package/web-ui/build/static/swift-CEi576mT.js +1 -0
  486. package/web-ui/build/static/swift-CQCuFcEK.js +1 -0
  487. package/web-ui/build/static/systemd-CF-EHggg.js +1 -0
  488. package/web-ui/build/static/t4-cs-DWdn0RQB.js +1 -0
  489. package/web-ui/build/static/t4-templating-C15ubdW6.js +1 -0
  490. package/web-ui/build/static/t4-vb-Cz2QCDLO.js +1 -0
  491. package/web-ui/build/static/taggerscript-CfU_hv7J.js +1 -0
  492. package/web-ui/build/static/tap-2-gLM4Lw.js +1 -0
  493. package/web-ui/build/static/tap-M44CQJkj.js +1 -0
  494. package/web-ui/build/static/tcl-BMpkwsCa.js +1 -0
  495. package/web-ui/build/static/tcl-CfF-clAT.js +1 -0
  496. package/web-ui/build/static/textile-CUkgUEkV.js +1 -0
  497. package/web-ui/build/static/thrift-daJZ1DGJ.js +1 -0
  498. package/web-ui/build/static/toml-DnW5prhH.js +1 -0
  499. package/web-ui/build/static/tp-ZqeJLSGg.js +1 -0
  500. package/web-ui/build/static/tremor-WcELDSvz.js +1 -0
  501. package/web-ui/build/static/tsx-BVww6xUP.js +1 -0
  502. package/web-ui/build/static/tt2-Cxt3LLr_.js +1 -0
  503. package/web-ui/build/static/turtle-DmRTxNN8.js +1 -0
  504. package/web-ui/build/static/twig-DcLADpYg.js +1 -0
  505. package/web-ui/build/static/twig-Drdxszx_.js +1 -0
  506. package/web-ui/build/static/typescript-CgVWCuS9.js +1 -0
  507. package/web-ui/build/static/typescript-D3GjnDi9.js +1 -0
  508. package/web-ui/build/static/typoscript-B4qyGuOT.js +1 -0
  509. package/web-ui/build/static/unrealscript-BtIQeIeR.js +1 -0
  510. package/web-ui/build/static/uorazor-eWa_YDYv.js +1 -0
  511. package/web-ui/build/static/uri-CxsgAGHN.js +1 -0
  512. package/web-ui/build/static/v-D84eyWwn.js +1 -0
  513. package/web-ui/build/static/vala-Ccb9w5DW.js +1 -0
  514. package/web-ui/build/static/vala-MsPY7Xer.js +1 -0
  515. package/web-ui/build/static/vbnet-B33DMpXq.js +1 -0
  516. package/web-ui/build/static/vbnet-CaLY-AOH.js +1 -0
  517. package/web-ui/build/static/vbscript-DrXwNwNu.js +1 -0
  518. package/web-ui/build/static/vbscript-html-OTJEVr5m.js +1 -0
  519. package/web-ui/build/static/velocity-q0bXdAL4.js +1 -0
  520. package/web-ui/build/static/verilog-BD-Nxyqa.js +1 -0
  521. package/web-ui/build/static/verilog-PFy9sucN.js +1 -0
  522. package/web-ui/build/static/vhdl-BeCVyLiK.js +1 -0
  523. package/web-ui/build/static/vhdl-CMHdBpc5.js +1 -0
  524. package/web-ui/build/static/vim-3d_DOCsL.js +1 -0
  525. package/web-ui/build/static/vim-Bl5swMbH.js +1 -0
  526. package/web-ui/build/static/visual-basic-CjOvSeMg.js +1 -0
  527. package/web-ui/build/static/warpscript-C2EL35K2.js +1 -0
  528. package/web-ui/build/static/wasm-DmFD8VgH.js +1 -0
  529. package/web-ui/build/static/web-idl-RnzsvoQV.js +1 -0
  530. package/web-ui/build/static/wiki-Bu-zrPhW.js +1 -0
  531. package/web-ui/build/static/wolfram-CYYr3oaW.js +1 -0
  532. package/web-ui/build/static/wren-BXwkGwpn.js +1 -0
  533. package/web-ui/build/static/x86asm-_F19Kl5Y.js +1 -0
  534. package/web-ui/build/static/xeora-BmVPgL2I.js +1 -0
  535. package/web-ui/build/static/xl-68telKZ2.js +1 -0
  536. package/web-ui/build/static/xml-DPdaRgU0.js +1 -0
  537. package/web-ui/build/static/xml-doc-Aa64lijn.js +1 -0
  538. package/web-ui/build/static/xojo-DminlfyC.js +1 -0
  539. package/web-ui/build/static/xquery-BC1P9u6q.js +1 -0
  540. package/web-ui/build/static/xquery-kRz8gtls.js +1 -0
  541. package/web-ui/build/static/yaml-Bh9xHEaX.js +1 -0
  542. package/web-ui/build/static/yaml-CQW4NAe0.js +1 -0
  543. package/web-ui/build/static/yang-joHFzzXq.js +1 -0
  544. package/web-ui/build/static/zephir-BDGPNzsB.js +1 -0
  545. package/web-ui/build/static/zig-DtLmllYo.js +1 -0
  546. package/web-ui/build/static/1c-DhNfWMWm.js +0 -1
  547. package/web-ui/build/static/abap-QOWHgSNA.js +0 -1
  548. package/web-ui/build/static/abnf-C9PFiETQ.js +0 -1
  549. package/web-ui/build/static/abnf-DEbBdEpP.js +0 -1
  550. package/web-ui/build/static/accesslog-DaKq5_Ts.js +0 -1
  551. package/web-ui/build/static/actionscript-BcY19SjW.js +0 -1
  552. package/web-ui/build/static/actionscript-CbLJrkm9.js +0 -1
  553. package/web-ui/build/static/ada-D1vjmumu.js +0 -1
  554. package/web-ui/build/static/ada-hAjtW1jL.js +0 -1
  555. package/web-ui/build/static/agda-Bhk3JFT9.js +0 -1
  556. package/web-ui/build/static/al-DYmeq5B0.js +0 -1
  557. package/web-ui/build/static/angelscript-BxCBNQXZ.js +0 -1
  558. package/web-ui/build/static/antlr4-CPmkdILF.js +0 -1
  559. package/web-ui/build/static/apache-CnwL2ZvW.js +0 -1
  560. package/web-ui/build/static/apacheconf-CfeBIh7R.js +0 -1
  561. package/web-ui/build/static/apex-C36kXZsT.js +0 -1
  562. package/web-ui/build/static/apl-CeT_l0YX.js +0 -1
  563. package/web-ui/build/static/applescript-BimsduDW.js +0 -1
  564. package/web-ui/build/static/applescript-CLBFEONC.js +0 -1
  565. package/web-ui/build/static/aql-DcXNMsw5.js +0 -1
  566. package/web-ui/build/static/arcade-CsONs-nh.js +0 -1
  567. package/web-ui/build/static/arduino-1XAf972o.js +0 -1
  568. package/web-ui/build/static/arduino-BkRulzgv.js +0 -1
  569. package/web-ui/build/static/arff-QhmkBHXy.js +0 -1
  570. package/web-ui/build/static/armasm-Cf34TCbg.js +0 -1
  571. package/web-ui/build/static/asciidoc-Dxk-KUUW.js +0 -1
  572. package/web-ui/build/static/asciidoc-mpuuiNok.js +0 -1
  573. package/web-ui/build/static/asm6502-0M2Se3gz.js +0 -1
  574. package/web-ui/build/static/asmatmel-DhFK-DLd.js +0 -1
  575. package/web-ui/build/static/aspectj-BKNOwBC8.js +0 -1
  576. package/web-ui/build/static/aspnet-BZ88RTxR.js +0 -1
  577. package/web-ui/build/static/autohotkey-DGmMm6oy.js +0 -1
  578. package/web-ui/build/static/autohotkey-HUDPuon_.js +0 -1
  579. package/web-ui/build/static/autoit-B-YW8YdA.js +0 -1
  580. package/web-ui/build/static/autoit-CvHRbbE-.js +0 -1
  581. package/web-ui/build/static/avisynth-C6iP20gR.js +0 -1
  582. package/web-ui/build/static/avrasm-AOIVGwnb.js +0 -1
  583. package/web-ui/build/static/avro-idl-CcPf6wBK.js +0 -1
  584. package/web-ui/build/static/awk-Dy8_cKla.js +0 -1
  585. package/web-ui/build/static/axapta-CexCCXgI.js +0 -1
  586. package/web-ui/build/static/bash-DKgFZb-B.js +0 -1
  587. package/web-ui/build/static/bash-DrUQRf4E.js +0 -1
  588. package/web-ui/build/static/basic-BXDUD6us.js +0 -1
  589. package/web-ui/build/static/basic-DlEL_-PG.js +0 -1
  590. package/web-ui/build/static/batch-HHuRbek7.js +0 -1
  591. package/web-ui/build/static/bbcode-D4lEyfHq.js +0 -1
  592. package/web-ui/build/static/bicep-Ca66VjcC.js +0 -1
  593. package/web-ui/build/static/birb-BWDnQG3-.js +0 -1
  594. package/web-ui/build/static/bison-DGEvuoCn.js +0 -1
  595. package/web-ui/build/static/bnf-DNrgnFxK.js +0 -1
  596. package/web-ui/build/static/bnf-DkGg9a6f.js +0 -1
  597. package/web-ui/build/static/brainfuck-BcC5WVuw.js +0 -1
  598. package/web-ui/build/static/brainfuck-Dzx6V6EF.js +0 -1
  599. package/web-ui/build/static/brightscript-26Asmy4_.js +0 -1
  600. package/web-ui/build/static/bro-CFV9ava2.js +0 -1
  601. package/web-ui/build/static/bsl-BHMAYVVg.js +0 -1
  602. package/web-ui/build/static/c-B7WGfC_g.js +0 -1
  603. package/web-ui/build/static/c-CUYmQ5h3.js +0 -1
  604. package/web-ui/build/static/c-like-BSddZquS.js +0 -1
  605. package/web-ui/build/static/cal-DQjwjuMG.js +0 -1
  606. package/web-ui/build/static/capnproto-CBnYJDMr.js +0 -1
  607. package/web-ui/build/static/ceylon-ce3L4vqX.js +0 -1
  608. package/web-ui/build/static/cfscript-CN8IKzxH.js +0 -1
  609. package/web-ui/build/static/chaiscript-DT-qasen.js +0 -1
  610. package/web-ui/build/static/cil-BPu0-6KT.js +0 -1
  611. package/web-ui/build/static/clean-BWcUgtLl.js +0 -1
  612. package/web-ui/build/static/clojure-CVLbUcEn.js +0 -1
  613. package/web-ui/build/static/clojure-mVJcgmKZ.js +0 -1
  614. package/web-ui/build/static/clojure-repl-B1bPQUgE.js +0 -1
  615. package/web-ui/build/static/cmake-ApAYr4_A.js +0 -1
  616. package/web-ui/build/static/cmake-oI81UP1F.js +0 -1
  617. package/web-ui/build/static/cobol-eZdxawKH.js +0 -1
  618. package/web-ui/build/static/coffeescript-BvFq14Nz.js +0 -1
  619. package/web-ui/build/static/coffeescript-CedrhcbC.js +0 -1
  620. package/web-ui/build/static/concurnas-8QctO6Q7.js +0 -1
  621. package/web-ui/build/static/coq-CaQMtKys.js +0 -1
  622. package/web-ui/build/static/coq-Di7lBRJy.js +0 -1
  623. package/web-ui/build/static/cos-3TjiDgk1.js +0 -1
  624. package/web-ui/build/static/cpp-BGwIhR_y.js +0 -1
  625. package/web-ui/build/static/cpp-CRXTx1YD.js +0 -1
  626. package/web-ui/build/static/crmsh-C67REd2u.js +0 -1
  627. package/web-ui/build/static/crystal-C8Rs5smk.js +0 -1
  628. package/web-ui/build/static/crystal-C8jnpN4t.js +0 -1
  629. package/web-ui/build/static/csharp-CqlFLWOu.js +0 -1
  630. package/web-ui/build/static/csharp-D1M9LcKj.js +0 -1
  631. package/web-ui/build/static/cshtml-BrYce3m1.js +0 -1
  632. package/web-ui/build/static/csp-DaMDae_q.js +0 -1
  633. package/web-ui/build/static/csp-DmoB74Pq.js +0 -1
  634. package/web-ui/build/static/css-Bm-MgPWM.js +0 -1
  635. package/web-ui/build/static/css-extras-T3f2IfaH.js +0 -1
  636. package/web-ui/build/static/csv-BgIvUIgl.js +0 -1
  637. package/web-ui/build/static/cypher-Bsq4PGhM.js +0 -1
  638. package/web-ui/build/static/d-Qt9QuUvk.js +0 -1
  639. package/web-ui/build/static/d-h4AYkhsS.js +0 -1
  640. package/web-ui/build/static/dart-DNDTBaSF.js +0 -1
  641. package/web-ui/build/static/dart-Dkg8Mtqj.js +0 -1
  642. package/web-ui/build/static/dataweave-XNvXnB4j.js +0 -1
  643. package/web-ui/build/static/dax-DAM3HOsu.js +0 -1
  644. package/web-ui/build/static/delphi-DTzj2E4U.js +0 -1
  645. package/web-ui/build/static/dhall-Brb1ufqF.js +0 -1
  646. package/web-ui/build/static/diff-3SMw9VwF.js +0 -1
  647. package/web-ui/build/static/diff-ssu7Mr2I.js +0 -1
  648. package/web-ui/build/static/django-CK_xvPUY.js +0 -1
  649. package/web-ui/build/static/django-D9a4uL_8.js +0 -1
  650. package/web-ui/build/static/dns-Uvea7PR7.js +0 -1
  651. package/web-ui/build/static/dns-zone-file-BvD_LLn3.js +0 -1
  652. package/web-ui/build/static/docker-CC3kvxlv.js +0 -1
  653. package/web-ui/build/static/dockerfile-BRFh_Hdm.js +0 -1
  654. package/web-ui/build/static/dos-C-I0-qWQ.js +0 -1
  655. package/web-ui/build/static/dot-BmS_Nrtr.js +0 -1
  656. package/web-ui/build/static/dsconfig-CBWgrIVa.js +0 -1
  657. package/web-ui/build/static/dts-B31mUIV6.js +0 -1
  658. package/web-ui/build/static/dust-BBtJv286.js +0 -1
  659. package/web-ui/build/static/ebnf-CCA0ITCE.js +0 -1
  660. package/web-ui/build/static/ebnf-CeVJpQny.js +0 -1
  661. package/web-ui/build/static/editorconfig-Nhj95Qci.js +0 -1
  662. package/web-ui/build/static/eiffel-E7QJBlEz.js +0 -1
  663. package/web-ui/build/static/ejs-B9gYRoXo.js +0 -1
  664. package/web-ui/build/static/elixir-CYG1GGGp.js +0 -1
  665. package/web-ui/build/static/elixir-fNfEypj7.js +0 -1
  666. package/web-ui/build/static/elm-Td6N7vMU.js +0 -1
  667. package/web-ui/build/static/elm-v0-mxxuQ.js +0 -1
  668. package/web-ui/build/static/erb-BO3LQtQx.js +0 -1
  669. package/web-ui/build/static/erb-ez_pDLEC.js +0 -1
  670. package/web-ui/build/static/erlang-ChOZ-mbI.js +0 -1
  671. package/web-ui/build/static/erlang-DCBIueE-.js +0 -1
  672. package/web-ui/build/static/erlang-repl-CL0-sGxn.js +0 -1
  673. package/web-ui/build/static/etlua-CQdh26X0.js +0 -1
  674. package/web-ui/build/static/excel-BbAj2wuJ.js +0 -1
  675. package/web-ui/build/static/excel-formula-qBXUIcjs.js +0 -1
  676. package/web-ui/build/static/factor-BPO68YSz.js +0 -1
  677. package/web-ui/build/static/false-sZ2iLGj-.js +0 -1
  678. package/web-ui/build/static/firestore-security-rules-BmYLiQGh.js +0 -1
  679. package/web-ui/build/static/fix-Co_Dnq0A.js +0 -1
  680. package/web-ui/build/static/flix-DlEWTbVq.js +0 -1
  681. package/web-ui/build/static/flow-DnsnnZca.js +0 -1
  682. package/web-ui/build/static/fortran-B4OMllck.js +0 -1
  683. package/web-ui/build/static/fortran-_8ltaoLA.js +0 -1
  684. package/web-ui/build/static/fsharp-CY0Ix1iB.js +0 -1
  685. package/web-ui/build/static/fsharp-y6HOJqAr.js +0 -1
  686. package/web-ui/build/static/ftl-DvbP9VWU.js +0 -1
  687. package/web-ui/build/static/gams-DF3rxJoc.js +0 -1
  688. package/web-ui/build/static/gap-BSje56C-.js +0 -1
  689. package/web-ui/build/static/gauss-BqYXtLWM.js +0 -1
  690. package/web-ui/build/static/gcode-CBl-mAWK.js +0 -1
  691. package/web-ui/build/static/gcode-idSM0RsM.js +0 -1
  692. package/web-ui/build/static/gdscript-CniY3oYY.js +0 -1
  693. package/web-ui/build/static/gedcom-C1dJ3jCP.js +0 -1
  694. package/web-ui/build/static/gherkin-4jaQr3Lt.js +0 -1
  695. package/web-ui/build/static/gherkin-BRsS35Ed.js +0 -1
  696. package/web-ui/build/static/git-2a7wzptj.js +0 -1
  697. package/web-ui/build/static/glsl-Ckv4lBKB.js +0 -1
  698. package/web-ui/build/static/glsl-CnGjBp6a.js +0 -1
  699. package/web-ui/build/static/gml-DG3KVI4z.js +0 -1
  700. package/web-ui/build/static/gml-DxKOOp--.js +0 -1
  701. package/web-ui/build/static/gn-DmUPMuZR.js +0 -1
  702. package/web-ui/build/static/go-D8tYdcYa.js +0 -1
  703. package/web-ui/build/static/go-DpIavxCs.js +0 -1
  704. package/web-ui/build/static/go-module-BktUPko9.js +0 -1
  705. package/web-ui/build/static/golo-Ao-diOpI.js +0 -1
  706. package/web-ui/build/static/gradle-DHJSdPoJ.js +0 -1
  707. package/web-ui/build/static/graphql-HpsdbKFp.js +0 -1
  708. package/web-ui/build/static/groovy-B4BrZYtV.js +0 -1
  709. package/web-ui/build/static/groovy-BCIRzoWJ.js +0 -1
  710. package/web-ui/build/static/haml-B8Mj6Hex.js +0 -1
  711. package/web-ui/build/static/haml-Fo-yynuy.js +0 -1
  712. package/web-ui/build/static/handlebars-BnFawcCU.js +0 -1
  713. package/web-ui/build/static/handlebars-YZn3MEyv.js +0 -1
  714. package/web-ui/build/static/haskell-DutAI7D9.js +0 -1
  715. package/web-ui/build/static/haskell-Dvl0Yw7z.js +0 -1
  716. package/web-ui/build/static/haxe-6S205Iem.js +0 -1
  717. package/web-ui/build/static/haxe-aKgbIDi5.js +0 -1
  718. package/web-ui/build/static/hcl-Dt_vNekv.js +0 -1
  719. package/web-ui/build/static/hlsl-CupXb_iv.js +0 -1
  720. package/web-ui/build/static/hoon-Dg19YEzw.js +0 -1
  721. package/web-ui/build/static/hpkp-DCF8Ff3o.js +0 -1
  722. package/web-ui/build/static/hsp-D90yiizY.js +0 -1
  723. package/web-ui/build/static/hsts-Cf63XX0s.js +0 -1
  724. package/web-ui/build/static/htmlbars-DMbRiSo_.js +0 -1
  725. package/web-ui/build/static/http-DklRfzP4.js +0 -1
  726. package/web-ui/build/static/http-U94aUtJB.js +0 -1
  727. package/web-ui/build/static/hy-B2ESVqxB.js +0 -1
  728. package/web-ui/build/static/ichigojam-DrVZWL_q.js +0 -1
  729. package/web-ui/build/static/icon-CMA5sxLF.js +0 -1
  730. package/web-ui/build/static/icu-message-format-DyfbEZSi.js +0 -1
  731. package/web-ui/build/static/idris-lCmRODnZ.js +0 -1
  732. package/web-ui/build/static/iecst-CgrrW0EE.js +0 -1
  733. package/web-ui/build/static/ignore-BmZ03AWS.js +0 -1
  734. package/web-ui/build/static/index-CLLrOcOY.js +0 -1
  735. package/web-ui/build/static/index-Ck0Dg4M1.js +0 -13
  736. package/web-ui/build/static/index-DOAQiM34.css +0 -1
  737. package/web-ui/build/static/index-DjtEf-qv.js +0 -1029
  738. package/web-ui/build/static/inform7-BfOnAvVe.js +0 -1
  739. package/web-ui/build/static/inform7-JJIIMXTB.js +0 -1
  740. package/web-ui/build/static/ini-CIKxMbKN.js +0 -1
  741. package/web-ui/build/static/ini-T3DdG5H-.js +0 -1
  742. package/web-ui/build/static/io-K9Gdeq6M.js +0 -1
  743. package/web-ui/build/static/irpf90-BYsCcwwg.js +0 -1
  744. package/web-ui/build/static/isbl-jcjEwPPP.js +0 -1
  745. package/web-ui/build/static/j-DSNUhn5G.js +0 -1
  746. package/web-ui/build/static/java-BKwYwPEk.js +0 -1
  747. package/web-ui/build/static/java-DuZuc1lQ.js +0 -1
  748. package/web-ui/build/static/javadoc-Bd8CYqmj.js +0 -1
  749. package/web-ui/build/static/javadoclike-BcPQURih.js +0 -1
  750. package/web-ui/build/static/javascript-C7B2Ty3f.js +0 -1
  751. package/web-ui/build/static/javastacktrace-BRZBpTgb.js +0 -1
  752. package/web-ui/build/static/jboss-cli-DaXYYeAA.js +0 -1
  753. package/web-ui/build/static/jexl-oN152m0J.js +0 -1
  754. package/web-ui/build/static/jolie-BUWtG9eQ.js +0 -1
  755. package/web-ui/build/static/jq-ooTdhdbC.js +0 -1
  756. package/web-ui/build/static/js-extras-BQJ_tqbC.js +0 -1
  757. package/web-ui/build/static/js-templates-xygrVmsG.js +0 -1
  758. package/web-ui/build/static/jsdoc-BPMuWUGw.js +0 -1
  759. package/web-ui/build/static/json-DbssHgO1.js +0 -1
  760. package/web-ui/build/static/json-iOY4SV10.js +0 -1
  761. package/web-ui/build/static/json5-C_-PZnKE.js +0 -1
  762. package/web-ui/build/static/jsonp-BQakabW1.js +0 -1
  763. package/web-ui/build/static/jsstacktrace-DyDuNLl8.js +0 -1
  764. package/web-ui/build/static/jsx-DCQITdOi.js +0 -1
  765. package/web-ui/build/static/julia-BF0mftpu.js +0 -1
  766. package/web-ui/build/static/julia-TT2Hy-Ob.js +0 -1
  767. package/web-ui/build/static/julia-repl-UBoVaQSD.js +0 -1
  768. package/web-ui/build/static/keepalived-yNkg9KNG.js +0 -1
  769. package/web-ui/build/static/keyman-7ModFC-k.js +0 -1
  770. package/web-ui/build/static/kotlin-BjJgl7UF.js +0 -1
  771. package/web-ui/build/static/kotlin-GEW2sNY3.js +0 -1
  772. package/web-ui/build/static/kumir-CeWMdLSX.js +0 -1
  773. package/web-ui/build/static/kusto-NufgjlVz.js +0 -1
  774. package/web-ui/build/static/lasso-eUS0tR3e.js +0 -1
  775. package/web-ui/build/static/latex-C7prlA6j.js +0 -1
  776. package/web-ui/build/static/latex-Hx35xemv.js +0 -1
  777. package/web-ui/build/static/latte-Da8RAWgh.js +0 -1
  778. package/web-ui/build/static/ldif-DZVoiKm3.js +0 -1
  779. package/web-ui/build/static/leaf-OEtu9dZj.js +0 -1
  780. package/web-ui/build/static/less-0VwiOSeL.js +0 -1
  781. package/web-ui/build/static/less-CciyvbHx.js +0 -1
  782. package/web-ui/build/static/lilypond-blLDi6bC.js +0 -1
  783. package/web-ui/build/static/liquid-C8_7pWOo.js +0 -1
  784. package/web-ui/build/static/lisp-Dd28CPVg.js +0 -1
  785. package/web-ui/build/static/lisp-hWkYuWd0.js +0 -1
  786. package/web-ui/build/static/livecodeserver-7_v3dVy3.js +0 -1
  787. package/web-ui/build/static/livescript-B8YdZ4uV.js +0 -1
  788. package/web-ui/build/static/livescript-dLNrctPK.js +0 -1
  789. package/web-ui/build/static/llvm-BfTyXy_G.js +0 -1
  790. package/web-ui/build/static/llvm-CLvUvWLu.js +0 -1
  791. package/web-ui/build/static/log-DbsxiU9k.js +0 -1
  792. package/web-ui/build/static/lolcode-CfacgPRH.js +0 -1
  793. package/web-ui/build/static/lsl-nJWe_8hA.js +0 -1
  794. package/web-ui/build/static/lua-BzXX-n4X.js +0 -1
  795. package/web-ui/build/static/lua-Ds6K-rhW.js +0 -1
  796. package/web-ui/build/static/magma-U4RmSh9f.js +0 -1
  797. package/web-ui/build/static/makefile-CSCW5rGm.js +0 -1
  798. package/web-ui/build/static/makefile-kzE_oEn3.js +0 -1
  799. package/web-ui/build/static/markdown-CalHH_DC.js +0 -1
  800. package/web-ui/build/static/markdown-Cqr_u0Ad.js +0 -1
  801. package/web-ui/build/static/markup-templating-BTOI73DQ.js +0 -1
  802. package/web-ui/build/static/mathematica-NX1KG9I0.js +0 -1
  803. package/web-ui/build/static/matlab-BAn1HwNV.js +0 -1
  804. package/web-ui/build/static/matlab-Bdg2LWPm.js +0 -1
  805. package/web-ui/build/static/maxima-DjRYVgK8.js +0 -1
  806. package/web-ui/build/static/maxscript-xwiWU5-Z.js +0 -1
  807. package/web-ui/build/static/mel-BgwB0sDS.js +0 -1
  808. package/web-ui/build/static/mel-CIouMI9e.js +0 -1
  809. package/web-ui/build/static/mercury-Do8hrPEb.js +0 -1
  810. package/web-ui/build/static/mermaid-BGEw9Ybx.js +0 -1
  811. package/web-ui/build/static/mipsasm-BDqQqoDE.js +0 -1
  812. package/web-ui/build/static/mizar-7lZfUsYd.js +0 -1
  813. package/web-ui/build/static/mizar-D7O18zEE.js +0 -1
  814. package/web-ui/build/static/mojolicious-DqmJjzUO.js +0 -1
  815. package/web-ui/build/static/mongodb-CXRl7RlT.js +0 -1
  816. package/web-ui/build/static/monkey-DE9L51qk.js +0 -1
  817. package/web-ui/build/static/monkey-DM9WNqkW.js +0 -1
  818. package/web-ui/build/static/moonscript-D8lRTdQE.js +0 -1
  819. package/web-ui/build/static/moonscript-DFEVxKjh.js +0 -1
  820. package/web-ui/build/static/n1ql-B3BB__pa.js +0 -1
  821. package/web-ui/build/static/n1ql-Br4OECGn.js +0 -1
  822. package/web-ui/build/static/n4js-BPNwKp4U.js +0 -1
  823. package/web-ui/build/static/nand2tetris-hdl-BrjXXFUn.js +0 -1
  824. package/web-ui/build/static/naniscript-COGKQbvR.js +0 -1
  825. package/web-ui/build/static/nasm-BHOt34Wi.js +0 -1
  826. package/web-ui/build/static/neon-CYjyYixT.js +0 -1
  827. package/web-ui/build/static/nevod-CILFZbPW.js +0 -1
  828. package/web-ui/build/static/nginx-B7B9La6b.js +0 -1
  829. package/web-ui/build/static/nginx-Dcs1btfu.js +0 -1
  830. package/web-ui/build/static/nim-B39Qq_sB.js +0 -1
  831. package/web-ui/build/static/nim-Cm0o-zEI.js +0 -1
  832. package/web-ui/build/static/nix-Bb4CX-fQ.js +0 -1
  833. package/web-ui/build/static/nix-C3bIutdy.js +0 -1
  834. package/web-ui/build/static/node-repl-BtbNtavi.js +0 -1
  835. package/web-ui/build/static/nsis-CJpMkpQy.js +0 -1
  836. package/web-ui/build/static/nsis-h39nQk_L.js +0 -1
  837. package/web-ui/build/static/objectivec-BIV3Kmu2.js +0 -1
  838. package/web-ui/build/static/objectivec-CNhpMYiK.js +0 -1
  839. package/web-ui/build/static/ocaml-Ld6KARDY.js +0 -1
  840. package/web-ui/build/static/ocaml-upCImTLO.js +0 -1
  841. package/web-ui/build/static/opencl-CfWJp1hT.js +0 -1
  842. package/web-ui/build/static/openqasm-i8xT4CAo.js +0 -1
  843. package/web-ui/build/static/openscad-CzWxpIx6.js +0 -1
  844. package/web-ui/build/static/oxygene-CCokKj_U.js +0 -1
  845. package/web-ui/build/static/oz-BBdHXCgw.js +0 -1
  846. package/web-ui/build/static/parigp-C6n5F4KO.js +0 -1
  847. package/web-ui/build/static/parser-C2RrTYYO.js +0 -1
  848. package/web-ui/build/static/parser3-BaAVXypg.js +0 -1
  849. package/web-ui/build/static/pascal-UeXMBbP2.js +0 -1
  850. package/web-ui/build/static/pascaligo-CYD4ZqHc.js +0 -1
  851. package/web-ui/build/static/pcaxis-CuN2yCzi.js +0 -1
  852. package/web-ui/build/static/peoplecode-H1Adh-ll.js +0 -1
  853. package/web-ui/build/static/perl-DCyTMUn2.js +0 -1
  854. package/web-ui/build/static/perl-V4mDd6YP.js +0 -1
  855. package/web-ui/build/static/pf-5iH6Mo1D.js +0 -1
  856. package/web-ui/build/static/pgsql-CrmNuytU.js +0 -1
  857. package/web-ui/build/static/php-AWteRwUZ.js +0 -1
  858. package/web-ui/build/static/php-B-dr82M2.js +0 -1
  859. package/web-ui/build/static/php-extras-CVQI7yIC.js +0 -1
  860. package/web-ui/build/static/php-template-BW_DclRa.js +0 -1
  861. package/web-ui/build/static/phpdoc-Cfv3EM5F.js +0 -1
  862. package/web-ui/build/static/plaintext-CyfmYRWM.js +0 -1
  863. package/web-ui/build/static/plsql-DIfiFLDw.js +0 -1
  864. package/web-ui/build/static/pony-DjBwB1l2.js +0 -1
  865. package/web-ui/build/static/powerquery-D80luSMu.js +0 -1
  866. package/web-ui/build/static/powershell-Cai1oPSE.js +0 -1
  867. package/web-ui/build/static/powershell-qk5MHehm.js +0 -1
  868. package/web-ui/build/static/processing-DGNtNe05.js +0 -1
  869. package/web-ui/build/static/processing-DHK3kwAe.js +0 -1
  870. package/web-ui/build/static/profile-D6MBLt-p.js +0 -1
  871. package/web-ui/build/static/prolog-CqKHjX9T.js +0 -1
  872. package/web-ui/build/static/prolog-CwAlj8yp.js +0 -1
  873. package/web-ui/build/static/promql-Cwo7B1q9.js +0 -1
  874. package/web-ui/build/static/properties-03DbKSuC.js +0 -1
  875. package/web-ui/build/static/properties-BlFjiqSF.js +0 -1
  876. package/web-ui/build/static/protobuf-DFZRRGno.js +0 -1
  877. package/web-ui/build/static/protobuf-D_GKOSo6.js +0 -1
  878. package/web-ui/build/static/psl-RSBmgd7b.js +0 -1
  879. package/web-ui/build/static/pug-DzBjT8h1.js +0 -1
  880. package/web-ui/build/static/puppet-BwyNySh7.js +0 -1
  881. package/web-ui/build/static/puppet-CHJRn6Na.js +0 -1
  882. package/web-ui/build/static/pure-XbBeN0U7.js +0 -1
  883. package/web-ui/build/static/purebasic-BeRgP1y5.js +0 -1
  884. package/web-ui/build/static/purebasic-XGD8k1X_.js +0 -1
  885. package/web-ui/build/static/purescript-DPej8C9k.js +0 -1
  886. package/web-ui/build/static/python-DK4CPbFS.js +0 -1
  887. package/web-ui/build/static/python-repl-BDrlZxhA.js +0 -1
  888. package/web-ui/build/static/python-sRExKvGw.js +0 -1
  889. package/web-ui/build/static/q-B8K1uEtE.js +0 -1
  890. package/web-ui/build/static/q-iptUl3TG.js +0 -1
  891. package/web-ui/build/static/qml-Ck-8E28D.js +0 -1
  892. package/web-ui/build/static/qml-DapR8Kud.js +0 -1
  893. package/web-ui/build/static/qore-Bq2u6ALt.js +0 -1
  894. package/web-ui/build/static/qsharp-C9FGwAhI.js +0 -1
  895. package/web-ui/build/static/r-B8PZ1lyW.js +0 -1
  896. package/web-ui/build/static/r-jsXxivRe.js +0 -1
  897. package/web-ui/build/static/racket-BW1YY6oG.js +0 -1
  898. package/web-ui/build/static/reason-CGrwEH7Y.js +0 -1
  899. package/web-ui/build/static/reasonml-D2S9u5tv.js +0 -1
  900. package/web-ui/build/static/regex-Bx_rkaF-.js +0 -1
  901. package/web-ui/build/static/rego-DYSQb1aU.js +0 -1
  902. package/web-ui/build/static/renpy-DoEOEpqT.js +0 -1
  903. package/web-ui/build/static/rest-6xfrLQ1u.js +0 -1
  904. package/web-ui/build/static/rib-BH2XAOdJ.js +0 -1
  905. package/web-ui/build/static/rip-BOcHDByA.js +0 -1
  906. package/web-ui/build/static/roboconf-8nB4fpob.js +0 -1
  907. package/web-ui/build/static/roboconf-BjKYzQ_Z.js +0 -1
  908. package/web-ui/build/static/robotframework-BIAT2wY6.js +0 -1
  909. package/web-ui/build/static/routeros-Bt6cTmB2.js +0 -1
  910. package/web-ui/build/static/rsl-XvWWVxz_.js +0 -1
  911. package/web-ui/build/static/ruby-CEfc9tVA.js +0 -1
  912. package/web-ui/build/static/ruby-CKNSKxB1.js +0 -1
  913. package/web-ui/build/static/ruleslanguage-tpn62qMj.js +0 -1
  914. package/web-ui/build/static/rust-Cb-H3ah6.js +0 -1
  915. package/web-ui/build/static/rust-CmAiRDXU.js +0 -1
  916. package/web-ui/build/static/sas-6JRKVKN4.js +0 -1
  917. package/web-ui/build/static/sas-BnSXGxyB.js +0 -1
  918. package/web-ui/build/static/sass-RPp8p1Ef.js +0 -1
  919. package/web-ui/build/static/scala-BjZ--04s.js +0 -1
  920. package/web-ui/build/static/scala-CbHbqC82.js +0 -1
  921. package/web-ui/build/static/scheme-51taSudc.js +0 -1
  922. package/web-ui/build/static/scheme-FF2J1d7z.js +0 -1
  923. package/web-ui/build/static/scilab-CSU1i7r7.js +0 -1
  924. package/web-ui/build/static/scss-Bf9-1Rwp.js +0 -1
  925. package/web-ui/build/static/scss-kWs2GBCV.js +0 -1
  926. package/web-ui/build/static/shell-B6aH0_VB.js +0 -1
  927. package/web-ui/build/static/shell-session-42tFBoqK.js +0 -1
  928. package/web-ui/build/static/smali-BTC2VGoh.js +0 -1
  929. package/web-ui/build/static/smali-CFCAUthF.js +0 -1
  930. package/web-ui/build/static/smalltalk-C4Z4p5Ld.js +0 -1
  931. package/web-ui/build/static/smalltalk-DS9teHSb.js +0 -1
  932. package/web-ui/build/static/smarty-9tLXgYFw.js +0 -1
  933. package/web-ui/build/static/sml-CvQCOzHl.js +0 -1
  934. package/web-ui/build/static/sml-D7VN7gLP.js +0 -1
  935. package/web-ui/build/static/solidity-C8mgaeFG.js +0 -1
  936. package/web-ui/build/static/solution-file-BW6eSi9-.js +0 -1
  937. package/web-ui/build/static/soy-iYu8WojY.js +0 -1
  938. package/web-ui/build/static/sparql-fr7u_sdF.js +0 -1
  939. package/web-ui/build/static/splunk-spl-C1ELr7BN.js +0 -1
  940. package/web-ui/build/static/sqf-8e9uVb30.js +0 -1
  941. package/web-ui/build/static/sqf-CWavw2F4.js +0 -1
  942. package/web-ui/build/static/sql-DC_QvrP2.js +0 -1
  943. package/web-ui/build/static/sql-yLctL19P.js +0 -1
  944. package/web-ui/build/static/sql_more-KfXMatfe.js +0 -1
  945. package/web-ui/build/static/squirrel-Bjd69daG.js +0 -1
  946. package/web-ui/build/static/stan-CaplZnB-.js +0 -1
  947. package/web-ui/build/static/stan-UYitmAjw.js +0 -1
  948. package/web-ui/build/static/stata-Beng42ZG.js +0 -1
  949. package/web-ui/build/static/step21-jqm1hcSr.js +0 -1
  950. package/web-ui/build/static/stylus-DB7RdP7s.js +0 -1
  951. package/web-ui/build/static/stylus-IFC9sMcH.js +0 -1
  952. package/web-ui/build/static/subunit-B75tNAV5.js +0 -1
  953. package/web-ui/build/static/swift-BRcicKMn.js +0 -1
  954. package/web-ui/build/static/swift-s8OoLWy_.js +0 -1
  955. package/web-ui/build/static/systemd-BC7VQvFw.js +0 -1
  956. package/web-ui/build/static/t4-cs-C6aVcIEq.js +0 -1
  957. package/web-ui/build/static/t4-templating-cVFAPDZQ.js +0 -1
  958. package/web-ui/build/static/t4-vb-DwpqTEJL.js +0 -1
  959. package/web-ui/build/static/taggerscript-GaB8ayWT.js +0 -1
  960. package/web-ui/build/static/tap-DN_-tQNk.js +0 -1
  961. package/web-ui/build/static/tap-XgwFSVSK.js +0 -1
  962. package/web-ui/build/static/tcl-D6eT7YQe.js +0 -1
  963. package/web-ui/build/static/tcl-DiEmh3pJ.js +0 -1
  964. package/web-ui/build/static/textile-cNMT-4v2.js +0 -1
  965. package/web-ui/build/static/thrift-DTgTgcBm.js +0 -1
  966. package/web-ui/build/static/toml-B8XPB_4B.js +0 -1
  967. package/web-ui/build/static/tp-NpmS9CLR.js +0 -1
  968. package/web-ui/build/static/tremor-OVZ172ee.js +0 -1
  969. package/web-ui/build/static/tsx-B1xtIV1E.js +0 -1
  970. package/web-ui/build/static/tt2-DITHT_e6.js +0 -1
  971. package/web-ui/build/static/turtle-D3IrO7qu.js +0 -1
  972. package/web-ui/build/static/twig-Bwmu1-US.js +0 -1
  973. package/web-ui/build/static/twig-CmWIdHrv.js +0 -1
  974. package/web-ui/build/static/typescript-BI4GgjOm.js +0 -1
  975. package/web-ui/build/static/typescript-D6hycyND.js +0 -1
  976. package/web-ui/build/static/typoscript-5S0Q3h4I.js +0 -1
  977. package/web-ui/build/static/unrealscript-CaROCOEp.js +0 -1
  978. package/web-ui/build/static/uorazor-VyIQ6lvW.js +0 -1
  979. package/web-ui/build/static/uri-DDdjLj4-.js +0 -1
  980. package/web-ui/build/static/v-CzPHqjdM.js +0 -1
  981. package/web-ui/build/static/vala-CRK3Oxn2.js +0 -1
  982. package/web-ui/build/static/vala-DTG5j_IY.js +0 -1
  983. package/web-ui/build/static/vbnet-C6z8S410.js +0 -1
  984. package/web-ui/build/static/vbnet-cWNTX8Og.js +0 -1
  985. package/web-ui/build/static/vbscript-CyA_PhGn.js +0 -1
  986. package/web-ui/build/static/vbscript-html-CidnweeC.js +0 -1
  987. package/web-ui/build/static/velocity-Dp6ZU1nS.js +0 -1
  988. package/web-ui/build/static/verilog-CilE-jD9.js +0 -1
  989. package/web-ui/build/static/verilog-RAde9Uda.js +0 -1
  990. package/web-ui/build/static/vhdl-CHS4lDo8.js +0 -1
  991. package/web-ui/build/static/vhdl-D5o9ErDa.js +0 -1
  992. package/web-ui/build/static/vim-B8jwaGJ6.js +0 -1
  993. package/web-ui/build/static/vim-BZrCpxwn.js +0 -1
  994. package/web-ui/build/static/visual-basic-By6WIP3n.js +0 -1
  995. package/web-ui/build/static/warpscript-BQF8R5WL.js +0 -1
  996. package/web-ui/build/static/wasm-DJyk23np.js +0 -1
  997. package/web-ui/build/static/web-idl-DezqVYtV.js +0 -1
  998. package/web-ui/build/static/wiki-CiJcHWqV.js +0 -1
  999. package/web-ui/build/static/wolfram-DjwPz6pa.js +0 -1
  1000. package/web-ui/build/static/wren-lzb3aV3F.js +0 -1
  1001. package/web-ui/build/static/x86asm-CCNfO4dU.js +0 -1
  1002. package/web-ui/build/static/xeora-CRaNjAb0.js +0 -1
  1003. package/web-ui/build/static/xl-CRqWPyuc.js +0 -1
  1004. package/web-ui/build/static/xml-Uuta5J77.js +0 -1
  1005. package/web-ui/build/static/xml-doc-Drc3ho9Y.js +0 -1
  1006. package/web-ui/build/static/xojo-D2WT5Q0J.js +0 -1
  1007. package/web-ui/build/static/xquery-CwB9Zxcf.js +0 -1
  1008. package/web-ui/build/static/xquery-DA5NuZxN.js +0 -1
  1009. package/web-ui/build/static/yaml-DJMpA9ia.js +0 -1
  1010. package/web-ui/build/static/yaml-DxiY0s1_.js +0 -1
  1011. package/web-ui/build/static/yang-DPrwGYlZ.js +0 -1
  1012. package/web-ui/build/static/zephir-DOfPWp4I.js +0 -1
  1013. package/web-ui/build/static/zig-BE1mX447.js +0 -1
@@ -8,6 +8,13 @@ import os from 'os';
8
8
  import { promises as fs } from 'fs';
9
9
  import { BaseTool } from './baseTool.js';
10
10
  import { getGalleryService } from '../services/galleryService.js';
11
+ import {
12
+ resolveTargetFormat,
13
+ transcodeIfNeeded,
14
+ extensionFor,
15
+ ensureExtension,
16
+ DEFAULT_FORMAT,
17
+ } from './imageFormat.js';
11
18
 
12
19
  /**
13
20
  * Configuration constants for image generation
@@ -224,19 +231,37 @@ export class ImageTool extends BaseTool {
224
231
  - Just output the command when you want to generate or edit an image
225
232
  - If generation fails, output a NEW command with corrections
226
233
 
227
- **USAGE — Generate:**
234
+ **USAGE — Generate (default WebP):**
228
235
  \`\`\`json
229
236
  {
230
237
  "toolId": "image-gen",
231
238
  "parameters": {
232
239
  "prompt": "Detailed description of the image",
233
- "outputPath": "images/filename.png",
240
+ "outputPath": "images/filename.webp",
234
241
  "size": "1024x1024"
235
242
  }
236
243
  }
237
244
  \`\`\`
238
245
 
239
- **USAGE — Generate with Transparency:**
246
+ **USAGE — Force PNG output (when you specifically need lossless / older-tool compat):**
247
+ \`\`\`json
248
+ {
249
+ "toolId": "image-gen",
250
+ "parameters": {
251
+ "prompt": "Pixel-art icon set on white",
252
+ "outputPath": "images/icons.png"
253
+ }
254
+ }
255
+ \`\`\`
256
+ Or, equivalently, with the explicit field:
257
+ \`\`\`json
258
+ {
259
+ "toolId": "image-gen",
260
+ "parameters": { "prompt": "Pixel-art icon set", "outputType": "png" }
261
+ }
262
+ \`\`\`
263
+
264
+ **USAGE — Generate with Transparency (WebP supports alpha):**
240
265
  \`\`\`json
241
266
  {
242
267
  "toolId": "image-gen",
@@ -244,7 +269,7 @@ export class ImageTool extends BaseTool {
244
269
  "prompt": "A cute fox mascot on a transparent background",
245
270
  "model": "gpt-image-1.5",
246
271
  "transparency": true,
247
- "outputPath": "images/fox-mascot.png"
272
+ "outputPath": "images/fox-mascot.webp"
248
273
  }
249
274
  }
250
275
  \`\`\`
@@ -257,14 +282,19 @@ export class ImageTool extends BaseTool {
257
282
  "prompt": "Remove the background and make it transparent",
258
283
  "sourceImage": "images/photo.png",
259
284
  "model": "gpt-image-1.5",
260
- "outputPath": "images/photo-nobg.png"
285
+ "outputPath": "images/photo-nobg.webp"
261
286
  }
262
287
  }
263
288
  \`\`\`
289
+ (The \`sourceImage\` can be any common format — PNG, JPEG, WebP, etc. The OUTPUT format is whatever you specify on \`outputPath\` / \`outputType\`, defaulting to WebP.)
264
290
 
265
291
  **Parameters:**
266
292
  - **prompt** (required): Description of image to generate OR editing instruction
267
293
  - **outputPath** (optional): Path to save image (permanent). Omit for temp file.
294
+ The file extension determines output format (.webp / .png / .jpg / .jpeg).
295
+ - **outputType** (optional): Explicit format request when outputPath has no extension
296
+ or is omitted: 'webp' | 'png' | 'jpg' | 'jpeg'. Default: 'webp'.
297
+ An outputPath extension always wins over outputType if both are present.
268
298
  - **size** (optional): WIDTHxHEIGHT or preset name. DIFFERENT MODELS ACCEPT DIFFERENT SIZES — read the rules below. Default: 1024x1024.
269
299
  - **quality** (optional): "standard" or "hd" (default: standard)
270
300
  - **model** (optional): "gpt-image-1.5" or a flux variant. Default: auto. Auto-switches to gpt-image-1.5 if transparency=true OR sourceImage is set.
@@ -272,6 +302,13 @@ export class ImageTool extends BaseTool {
272
302
  - **mask** (optional): Path to mask image for editing (white=edit area, black=keep area)
273
303
  - **transparency** (optional): true to generate with transparent background (forces gpt-image-1.5)
274
304
 
305
+ **Output format (NEW default: WebP):**
306
+ The tool transcodes provider bytes (typically PNG) into WebP by default —
307
+ smaller files, same visual quality. Force PNG with either an explicit
308
+ .png extension on outputPath OR \`outputType: "png"\`. Pick PNG when you
309
+ need lossless graphics or animated GIFs would otherwise be needed; WebP
310
+ is the better default for photo-style outputs.
311
+
275
312
  ⚠ SIZE RULES — read before picking a size:
276
313
 
277
314
  (A) gpt-image-1.5 (auto-selected on transparency=true or sourceImage, or set explicitly):
@@ -391,10 +428,15 @@ Content moderation:
391
428
  */
392
429
  _parseImageParams(obj) {
393
430
  const outputPath = obj.outputPath || obj['output-path'] || null;
431
+ // Optional explicit format request. Accepts 'webp' (default if no
432
+ // outputPath ext), 'png', 'jpg' / 'jpeg'. The outputPath extension
433
+ // wins if both are present (handled in resolveTargetFormat).
434
+ const outputType = obj.outputType || obj['output-type'] || obj.format || null;
394
435
 
395
436
  return {
396
437
  prompt: obj.prompt || '',
397
438
  outputPath: outputPath,
439
+ outputType: outputType,
398
440
  saveToProject: outputPath !== null, // If path specified, save to project
399
441
  model: obj.model || IMAGE_CONFIG.DEFAULT_MODEL,
400
442
  size: obj.size || IMAGE_CONFIG.DEFAULT_SIZE,
@@ -417,10 +459,12 @@ Content moderation:
417
459
  };
418
460
 
419
461
  const outputPath = extractTag('output-path') || null;
462
+ const outputType = extractTag('output-type') || extractTag('format') || null;
420
463
 
421
464
  return {
422
465
  prompt: extractTag('prompt') || '',
423
466
  outputPath: outputPath,
467
+ outputType: outputType,
424
468
  saveToProject: outputPath !== null, // If path specified, save to project
425
469
  model: extractTag('model') || IMAGE_CONFIG.DEFAULT_MODEL,
426
470
  size: extractTag('size') || IMAGE_CONFIG.DEFAULT_SIZE,
@@ -468,6 +512,10 @@ Content moderation:
468
512
  sessionId,
469
513
  prompt: imageParams.prompt,
470
514
  outputPath: imageParams.outputPath,
515
+ // Explicit format request — used by the save path to decide the
516
+ // target format. Default behavior (no outputPath, no outputType):
517
+ // WebP. See imageFormat.resolveTargetFormat for precedence.
518
+ outputType: imageParams.outputType || null,
471
519
  saveToProject: imageParams.saveToProject,
472
520
  model: imageParams.model,
473
521
  size: imageParams.size,
@@ -1046,10 +1094,23 @@ Content moderation:
1046
1094
 
1047
1095
  try {
1048
1096
  if (b64Json) {
1049
- // Flux/GPT-Image response: Save base64 directly to disk
1097
+ // Flux/GPT-Image response: Save base64 to disk, transcoding to
1098
+ // the resolved target format (default webp). If transcoding
1099
+ // fails, the helper falls back to writing original bytes — the
1100
+ // call doesn't fail, but a warning is logged via the logger.
1050
1101
  this.logger?.info(`Saving base64 image to disk: ${resolvedOutputPath}`);
1051
- const imageBuffer = Buffer.from(b64Json, 'base64');
1052
- await fs.writeFile(resolvedOutputPath, imageBuffer);
1102
+ const rawBuffer = Buffer.from(b64Json, 'base64');
1103
+ const transcode = await transcodeIfNeeded(rawBuffer, job._targetFormat || DEFAULT_FORMAT, {
1104
+ quality: 85, logger: this.logger,
1105
+ });
1106
+ await fs.writeFile(resolvedOutputPath, transcode.buffer);
1107
+ if (transcode.transcoded) {
1108
+ this.logger?.info(`Image transcoded ${transcode.inputFormat} → ${transcode.outputFormat}`, {
1109
+ outputPath: resolvedOutputPath,
1110
+ inputBytes: rawBuffer.length,
1111
+ outputBytes: transcode.buffer.length,
1112
+ });
1113
+ }
1053
1114
 
1054
1115
  // Verify the file was actually written
1055
1116
  const stat = await fs.stat(resolvedOutputPath);
@@ -1063,9 +1124,9 @@ Content moderation:
1063
1124
  // For web display, we'll use our local server endpoint (set below)
1064
1125
  displayUrl = null; // Will be converted to web URL later
1065
1126
  } else if (imageUrl) {
1066
- // URL response: Download from URL
1127
+ // URL response: Download from URL, then transcode to target format.
1067
1128
  this.logger?.info(`Downloading image from URL: ${imageUrl.substring(0, 50)}...`);
1068
- await this._downloadImage(imageUrl, resolvedOutputPath);
1129
+ await this._downloadImage(imageUrl, resolvedOutputPath, job._targetFormat || DEFAULT_FORMAT);
1069
1130
 
1070
1131
  // Verify the file was actually written
1071
1132
  const stat = await fs.stat(resolvedOutputPath);
@@ -1114,15 +1175,30 @@ Content moderation:
1114
1175
  * @private
1115
1176
  */
1116
1177
  async _resolveOutputPath(job) {
1178
+ // Resolve target format ONCE here so the auto-generated filename
1179
+ // uses the right extension. Caller should also use job._targetFormat
1180
+ // (cached on the job) when transcoding bytes.
1181
+ const { format: targetFormat } = resolveTargetFormat({
1182
+ outputPath: job.outputPath,
1183
+ outputType: job.outputType,
1184
+ });
1185
+ job._targetFormat = targetFormat;
1186
+ const ext = extensionFor(targetFormat);
1187
+
1117
1188
  if (job.saveToProject) {
1118
1189
  // Save to project directory
1119
1190
  const projectDir = job.projectDir || process.cwd();
1120
1191
 
1121
1192
  let outputPath = job.outputPath;
1122
1193
  if (!outputPath) {
1123
- // Auto-generate filename
1194
+ // Auto-generate filename — DEFAULT format is webp now (was png).
1195
+ // Agents that need PNG must pass an explicit outputPath with
1196
+ // .png extension OR outputType:'png'.
1124
1197
  const timestamp = Date.now();
1125
- outputPath = `images/generated-${timestamp}.png`;
1198
+ outputPath = `images/generated-${timestamp}.${ext}`;
1199
+ } else {
1200
+ // Append format extension when the agent supplied a name without one
1201
+ outputPath = ensureExtension(outputPath, targetFormat);
1126
1202
  }
1127
1203
 
1128
1204
  const resolvedPath = path.isAbsolute(outputPath)
@@ -1149,9 +1225,10 @@ Content moderation:
1149
1225
  // Save to temp directory
1150
1226
  await fs.mkdir(this.tempDir, { recursive: true });
1151
1227
 
1228
+ // Temp dir path — same default-extension policy as project save.
1152
1229
  let filename = job.outputPath
1153
- ? path.basename(job.outputPath)
1154
- : `generated-${job.jobId}.png`;
1230
+ ? path.basename(ensureExtension(job.outputPath, targetFormat))
1231
+ : `generated-${job.jobId}.${ext}`;
1155
1232
 
1156
1233
  return path.join(this.tempDir, filename);
1157
1234
  }
@@ -1161,7 +1238,7 @@ Content moderation:
1161
1238
  * Download image from URL
1162
1239
  * @private
1163
1240
  */
1164
- async _downloadImage(imageUrl, outputPath) {
1241
+ async _downloadImage(imageUrl, outputPath, targetFormat = DEFAULT_FORMAT) {
1165
1242
  try {
1166
1243
  const response = await fetch(imageUrl, {
1167
1244
  signal: AbortSignal.timeout(IMAGE_CONFIG.DOWNLOAD_TIMEOUT)
@@ -1172,9 +1249,21 @@ Content moderation:
1172
1249
  }
1173
1250
 
1174
1251
  const buffer = Buffer.from(await response.arrayBuffer());
1175
- await fs.writeFile(outputPath, buffer);
1176
-
1177
- this.logger?.info(`Image saved to: ${outputPath}`);
1252
+ // Transcode to target format if needed (defensive: fallback writes
1253
+ // original bytes if sharp can't load — see imageFormat.js).
1254
+ const transcode = await transcodeIfNeeded(buffer, targetFormat, {
1255
+ quality: 85, logger: this.logger,
1256
+ });
1257
+ await fs.writeFile(outputPath, transcode.buffer);
1258
+ if (transcode.transcoded) {
1259
+ this.logger?.info(`Downloaded image transcoded ${transcode.inputFormat} → ${transcode.outputFormat}`, {
1260
+ outputPath,
1261
+ inputBytes: buffer.length,
1262
+ outputBytes: transcode.buffer.length,
1263
+ });
1264
+ } else {
1265
+ this.logger?.info(`Image saved to: ${outputPath}`);
1266
+ }
1178
1267
 
1179
1268
  } catch (error) {
1180
1269
  if (error.name === 'TimeoutError') {
@@ -178,6 +178,18 @@ IMPORTANT - COMPLETION TIMING: - Call this tool IMMEDIATELY when your task is co
178
178
  details: {
179
179
  type: 'string',
180
180
  description: 'Optional: Additional details about what was done, what failed, any files created, or next steps for the user'
181
+ },
182
+ outputs: {
183
+ // v2 flows: when this agent is running inside a flow node
184
+ // that declares typed outputs, populate this object with
185
+ // each declared field. Runtime validation rejects missing
186
+ // fields and triggers a retry — schema is permissive but
187
+ // runtime is strict. The text below is what the LLM sees
188
+ // alongside REQUIRED OUTPUTS in the system prompt; phrased
189
+ // strongly so model defaults toward including it.
190
+ type: 'object',
191
+ description: 'REQUIRED when your system prompt contains a "REQUIRED OUTPUTS" section (i.e. you are in a flow). Provide a JSON object with one key per declared output field name, holding the value matching the declared type. Example: if REQUIRED OUTPUTS lists "draft (text), wordCount (number)", emit outputs: { "draft": "<full text>", "wordCount": 850 }. Omitting any required field causes the flow node to fail and retry. Outside of flows this field is ignored.',
192
+ additionalProperties: true
181
193
  }
182
194
  },
183
195
  required: ['action', 'summary'],
@@ -217,6 +229,90 @@ IMPORTANT - COMPLETION TIMING: - Call this tool IMMEDIATELY when your task is co
217
229
  }
218
230
 
219
231
  const agentId = context.agentId;
232
+
233
+ // Phase 8: when this agent is running inside a flow node with
234
+ // declared outputs, validate action.outputs against the contract
235
+ // BEFORE signaling completion. Returning a tool error here gives
236
+ // the model immediate feedback in its current response cycle —
237
+ // it can re-call jobdone with the missing fields populated, no
238
+ // executor round-trip, no conversation reset.
239
+ //
240
+ // Falls through (no validation) when not in a flow OR when the
241
+ // node has no declared outputs — keeps non-flow uses untouched.
242
+ let activeFlowContract = null;
243
+ if (this.flowExecutor && agentId && typeof this.flowExecutor.getActiveContract === 'function') {
244
+ activeFlowContract = this.flowExecutor.getActiveContract(agentId);
245
+ }
246
+ if (activeFlowContract) {
247
+ const contract = activeFlowContract;
248
+ if (contract && Array.isArray(contract.outputs) && contract.outputs.length > 0) {
249
+ const provided = (action.outputs && typeof action.outputs === 'object') ? action.outputs : {};
250
+ const missing = [];
251
+ for (const decl of contract.outputs) {
252
+ if (!decl || typeof decl.name !== 'string') continue;
253
+ if (!(decl.name in provided) || provided[decl.name] === null || provided[decl.name] === undefined) {
254
+ missing.push(decl);
255
+ }
256
+ }
257
+ if (missing.length > 0) {
258
+ const declList = contract.outputs
259
+ .map(o => ` • ${o.name}: ${o.type}${o.description ? ` — ${o.description}` : ''}`).join('\n');
260
+ const exampleEntries = contract.outputs.map(o => {
261
+ let exVal = '<value>';
262
+ if (o.example !== undefined && o.example !== null) {
263
+ try { exVal = JSON.stringify(o.example); } catch {}
264
+ } else {
265
+ // Type-specific placeholders
266
+ if (o.type === 'text') exVal = '"<your text>"';
267
+ else if (o.type === 'number') exVal = '0';
268
+ else if (o.type === 'boolean') exVal = 'true';
269
+ else if (o.type === 'json') exVal = '{ "key": "value" }';
270
+ else if (o.type === 'file') exVal = '"/path/to/file"';
271
+ else if (o.type === 'file[]') exVal = '["/path/to/file"]';
272
+ else if (o.type === 'list<text>') exVal = '["item 1", "item 2"]';
273
+ }
274
+ return ` "${o.name}": ${exVal}`;
275
+ }).join(',\n');
276
+ const errorMsg =
277
+ `Cannot complete: missing required output field(s): ${missing.map(m => m.name).join(', ')}.
278
+
279
+ This step's flow node declares ALL of these outputs:
280
+ ${declList}
281
+
282
+ Re-call jobdone with EVERY field above populated in the "outputs" object.
283
+ Use this exact shape (replace placeholder values with your real content):
284
+
285
+ {
286
+ "toolId": "jobdone",
287
+ "actions": [{
288
+ "action": "complete",
289
+ "summary": "<your summary>",
290
+ "outputs": {
291
+ ${exampleEntries}
292
+ }
293
+ }]
294
+ }
295
+
296
+ The flow CANNOT proceed until all required output fields are populated.`;
297
+
298
+ this.logger?.info(`JobDone: Rejected — flow contract missing outputs`, {
299
+ agentId,
300
+ missing: missing.map(m => m.name),
301
+ declared: contract.outputs.map(o => o.name),
302
+ });
303
+
304
+ return {
305
+ success: false,
306
+ error: errorMsg,
307
+ output: errorMsg,
308
+ taskComplete: false,
309
+ flowContractViolation: true,
310
+ missingOutputs: missing.map(m => m.name),
311
+ };
312
+ }
313
+ }
314
+ }
315
+
220
316
  let agent = null;
221
317
  let agentInfo = '';
222
318
 
@@ -239,7 +335,16 @@ IMPORTANT - COMPLETION TIMING: - Call this tool IMMEDIATELY when your task is co
239
335
  // If there are pending tasks and the agent claims success, reject.
240
336
  // The agent must clear/complete its task list first.
241
337
  // Exception: success=false means the agent is giving up (stuck/unable to proceed).
242
- if (pendingTasks.length > 0 && action.success !== false) {
338
+ //
339
+ // Flow exception: when this agent is running inside a flow node, the
340
+ // Phase 8 contract validation above is the authoritative gate. The
341
+ // task list contains scheduler-poke artifacts (auto-created from
342
+ // queued user messages) that aren't real "user-tracked work" — they
343
+ // exist purely so the scheduler picks the agent up. Letting the
344
+ // legacy pendingTasks check fire here would block legitimate
345
+ // contract-correct job-done calls and force the agent into a
346
+ // taskmanager dance for tasks the user never actually authored.
347
+ if (pendingTasks.length > 0 && action.success !== false && !activeFlowContract) {
243
348
  const taskListStr = pendingTasks
244
349
  .map((t, i) => `${i + 1}. [${t.status}] ${t.title}`)
245
350
  .join('\n');
@@ -284,12 +389,15 @@ IMPORTANT - COMPLETION TIMING: - Call this tool IMMEDIATELY when your task is co
284
389
  agent.lastCompletionDetails = action.details || null;
285
390
  await this.agentPool.persistAgentState(agentId);
286
391
 
287
- // Signal flow executor directly (if agent is running inside a flow)
392
+ // Signal flow executor directly (if agent is running inside a flow).
393
+ // v2: forward structured `outputs` bag verbatim — the executor
394
+ // validates it against the node's declared contract.
288
395
  if (this.flowExecutor) {
289
396
  this.flowExecutor.notifyAgentCompletion(agentId, {
290
397
  summary: action.summary,
291
398
  details: action.details,
292
- success: isSuccessful
399
+ success: isSuccessful,
400
+ outputs: action.outputs
293
401
  });
294
402
  }
295
403
 
@@ -0,0 +1,85 @@
1
+ /**
2
+ * Ancestry checks for platformControlTool's hard rules.
3
+ *
4
+ * Each agent record carries `createdBy: <agentId> | null`. An agent
5
+ * created via this tool inherits the caller's id as its parent;
6
+ * agents created via the UI have `createdBy: null` (no parent).
7
+ *
8
+ * The hard rule "no descendant modifies an ancestor" requires walking
9
+ * UP the caller's chain looking for the target. Done as a pure function
10
+ * over an `(id) → agent` lookup so it's testable without an agent pool.
11
+ *
12
+ * Defenses:
13
+ * - Cycle detection (visited set). The data model isn't supposed to
14
+ * have cycles, but a corrupt state file shouldn't crash the tool.
15
+ * - Depth cap (CHAIN_MAX). Hard ceiling on chain walks; if a real
16
+ * deployment ever sees a chain this deep, we have other problems.
17
+ * - Missing-agent tolerance. If the lookup returns null mid-walk we
18
+ * stop cleanly — orphaned chains are treated as "no further parent".
19
+ */
20
+
21
+ export const CHAIN_MAX = 100;
22
+
23
+ /**
24
+ * Returns true if `targetId` appears in `callerId`'s ancestor chain.
25
+ * Self is NOT counted as an ancestor here — the self-modify rule is a
26
+ * separate check at the call site (`targetId === callerId`).
27
+ *
28
+ * @param {string} callerId
29
+ * @param {string} targetId
30
+ * @param {(id: string) => ({ id?: string, createdBy?: string|null }|null|undefined)} getAgent
31
+ * @returns {boolean}
32
+ */
33
+ export function isAncestor(callerId, targetId, getAgent) {
34
+ if (!callerId || !targetId) return false;
35
+ if (callerId === targetId) return false; // self isn't an ancestor in this sense
36
+ if (typeof getAgent !== 'function') return false;
37
+
38
+ const visited = new Set([callerId]);
39
+ let cursorId = callerId;
40
+ for (let i = 0; i < CHAIN_MAX; i++) {
41
+ const cursor = getAgent(cursorId);
42
+ if (!cursor) return false;
43
+ const parentId = cursor.createdBy;
44
+ if (!parentId) return false;
45
+ if (parentId === targetId) return true;
46
+ if (visited.has(parentId)) return false; // cycle — bail
47
+ visited.add(parentId);
48
+ cursorId = parentId;
49
+ }
50
+ return false;
51
+ }
52
+
53
+ /**
54
+ * Convenience: would `callerId` be blocked by the hard rules from
55
+ * mutating `targetId`? Combines self-modify + ancestor-modify checks.
56
+ */
57
+ export function isProtectedFromCaller(callerId, targetId, getAgent) {
58
+ if (!callerId || !targetId) return false;
59
+ if (callerId === targetId) return true; // self-modify forbidden
60
+ return isAncestor(callerId, targetId, getAgent);
61
+ }
62
+
63
+ /**
64
+ * Build a `getAgent` lookup from an iterable of agents (Map, array,
65
+ * agentPool.getAllAgents() result). Used by the tool when it has the
66
+ * full set in hand and doesn't want to do async lookups inside the
67
+ * pure ancestry walk.
68
+ */
69
+ export function makeAgentLookup(agents) {
70
+ if (!agents) return () => null;
71
+ if (typeof agents.get === 'function' && typeof agents.has === 'function') {
72
+ return (id) => agents.get(id) || null;
73
+ }
74
+ if (Array.isArray(agents)) {
75
+ const map = new Map(agents.filter(a => a && a.id).map(a => [a.id, a]));
76
+ return (id) => map.get(id) || null;
77
+ }
78
+ // Plain object
79
+ if (typeof agents === 'object') {
80
+ return (id) => agents[id] || null;
81
+ }
82
+ return () => null;
83
+ }
84
+
85
+ export default { CHAIN_MAX, isAncestor, isProtectedFromCaller, makeAgentLookup };
@@ -0,0 +1,146 @@
1
+ /**
2
+ * Cascade-on-delete service for platformControlTool.
3
+ *
4
+ * Independent of the tool's permission logic — that gates whether a
5
+ * delete is allowed; THIS module does the actual cleanup once the
6
+ * delete is approved. Modular + testable: every dependency is injected,
7
+ * each step is independently observable, and failures in earlier steps
8
+ * don't abort later ones unless `strict:true`.
9
+ *
10
+ * Why this lives in its own file:
11
+ * - The tool's dispatch is already long; embedding the cleanup choreography
12
+ * would obscure the permission logic.
13
+ * - The cleanup needs to be testable WITHOUT spinning up real services
14
+ * (real ScheduleService writes files, real AgentPool spawns processes).
15
+ * - Future deletions (delete-team-with-cascade, delete-agent-with-flow-cleanup)
16
+ * can plug new steps in here without touching the tool dispatcher.
17
+ *
18
+ * Step order for cascadeDeleteAgent — in this exact order, on purpose:
19
+ * 1. Schedules: deleted FIRST so they can't fire mid-cleanup and re-spawn work.
20
+ * 2. Memories: small file deletion; if it fails, agent state is still cleanable.
21
+ * 3. Team memberships: removes the agentId from every team that contains it.
22
+ * 4. The agent itself (agentPool.deleteAgent): handles attachments, terminal
23
+ * processes, visual editor, persistent state — all already implemented there.
24
+ *
25
+ * Each step yields an entry on the report. The caller surfaces this to
26
+ * the agent making the call so they know what happened.
27
+ */
28
+
29
+ /**
30
+ * @param {object} args
31
+ * @param {string} args.agentId
32
+ * @param {object} args.scheduleService — `listSchedules`, `deleteSchedule`
33
+ * @param {object} args.memoryService — `deleteMemoryFile(agentId)`
34
+ * @param {object} args.stateManager — `getAllTeams`, `removeAgentFromTeam`
35
+ * @param {object} args.agentPool — `deleteAgent(agentId)`
36
+ * @param {object} [args.logger] — { warn(msg, meta) }
37
+ * @param {boolean} [args.strict=false] — abort on first failure
38
+ * @returns {Promise<{
39
+ * schedulesDeleted: number,
40
+ * memoriesCleaned: boolean,
41
+ * teamsLeft: string[],
42
+ * agentDeleted: boolean,
43
+ * errors: Array<{ step: string, error: string }>,
44
+ * }>}
45
+ */
46
+ export async function cascadeDeleteAgent({
47
+ agentId,
48
+ scheduleService,
49
+ memoryService,
50
+ stateManager,
51
+ agentPool,
52
+ logger,
53
+ strict = false,
54
+ }) {
55
+ if (!agentId) throw new Error('cascadeDeleteAgent: agentId is required');
56
+
57
+ const report = {
58
+ schedulesDeleted: 0,
59
+ memoriesCleaned: false,
60
+ teamsLeft: [],
61
+ agentDeleted: false,
62
+ errors: [],
63
+ };
64
+ const log = logger || { warn() {} };
65
+
66
+ // Wrapper so each step is independently fail-tolerant. In strict mode,
67
+ // the first failure throws and skips the rest.
68
+ const step = async (name, fn) => {
69
+ try { await fn(); }
70
+ catch (err) {
71
+ const msg = err?.message || String(err);
72
+ report.errors.push({ step: name, error: msg });
73
+ log.warn(`[cascadeDeleteAgent] step "${name}" failed`, { agentId, error: msg });
74
+ if (strict) throw err;
75
+ }
76
+ };
77
+
78
+ // 1. Schedules
79
+ await step('schedules', async () => {
80
+ if (!scheduleService) return;
81
+ const all = typeof scheduleService.listSchedules === 'function'
82
+ ? scheduleService.listSchedules() : [];
83
+ const owned = (Array.isArray(all) ? all : []).filter(s =>
84
+ s && s.targetType === 'agent' && s.targetId === agentId);
85
+ for (const s of owned) {
86
+ await scheduleService.deleteSchedule(s.id);
87
+ report.schedulesDeleted++;
88
+ }
89
+ });
90
+
91
+ // 2. Memory file
92
+ await step('memories', async () => {
93
+ if (!memoryService || typeof memoryService.deleteMemoryFile !== 'function') return;
94
+ const ok = await memoryService.deleteMemoryFile(agentId);
95
+ report.memoriesCleaned = !!ok;
96
+ });
97
+
98
+ // 3. Team memberships
99
+ await step('teams', async () => {
100
+ if (!stateManager || typeof stateManager.getAllTeams !== 'function') return;
101
+ const teams = await stateManager.getAllTeams();
102
+ const containing = (Array.isArray(teams) ? teams : []).filter(t =>
103
+ t && Array.isArray(t.memberAgentIds) && t.memberAgentIds.includes(agentId));
104
+ for (const t of containing) {
105
+ await stateManager.removeAgentFromTeam(t.id, agentId);
106
+ report.teamsLeft.push(t.id);
107
+ }
108
+ });
109
+
110
+ // 4. The agent record itself.
111
+ await step('agentPool', async () => {
112
+ if (!agentPool || typeof agentPool.deleteAgent !== 'function') {
113
+ throw new Error('agentPool.deleteAgent unavailable');
114
+ }
115
+ await agentPool.deleteAgent(agentId);
116
+ report.agentDeleted = true;
117
+ });
118
+
119
+ return report;
120
+ }
121
+
122
+ /**
123
+ * Team delete is much simpler — `stateManager.deleteTeam` already
124
+ * removes the team record (and the memberships die with it because
125
+ * they live INSIDE the team object, not in a separate join table).
126
+ *
127
+ * Kept here for symmetry and to centralize "what does cascade-delete
128
+ * mean per resource type" in one file.
129
+ */
130
+ export async function cascadeDeleteTeam({ teamId, stateManager, logger }) {
131
+ if (!teamId) throw new Error('cascadeDeleteTeam: teamId is required');
132
+ const log = logger || { warn() {} };
133
+ const report = { teamDeleted: false, errors: [] };
134
+ try {
135
+ await stateManager.deleteTeam(teamId);
136
+ report.teamDeleted = true;
137
+ } catch (err) {
138
+ const msg = err?.message || String(err);
139
+ report.errors.push({ step: 'team', error: msg });
140
+ log.warn('[cascadeDeleteTeam] failed', { teamId, error: msg });
141
+ throw err; // unlike agent cascade, team-delete is a single op; rethrow.
142
+ }
143
+ return report;
144
+ }
145
+
146
+ export default { cascadeDeleteAgent, cascadeDeleteTeam };