onbuzz 4.8.3 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1032) 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/src/__tests__/composioCliFlags.test.js +239 -0
  45. package/src/core/__tests__/agentScheduler.codebaseKnowledge.test.js +65 -0
  46. package/src/core/__tests__/agentScheduler.memoryInjection.test.js +78 -0
  47. package/src/core/agentPool.js +10 -0
  48. package/src/core/agentScheduler.js +91 -0
  49. package/src/index.js +19 -3
  50. package/src/interfaces/__tests__/bulkAgentRoute.test.js +290 -0
  51. package/src/interfaces/__tests__/composioRoutes.test.js +318 -0
  52. package/src/interfaces/webServer.js +346 -2
  53. package/src/interfaces/webServer.js.bak +7047 -0
  54. package/src/services/__tests__/codeMapStubRenderer.test.js +207 -0
  55. package/src/services/__tests__/codebaseKnowledgeService.test.js +427 -0
  56. package/src/services/__tests__/composioService.test.js +332 -0
  57. package/src/services/__tests__/memoryService.appendAndCatalog.test.js +139 -0
  58. package/src/services/apiKeyManager.js +33 -0
  59. package/src/services/codeMapStubRenderer.js +142 -0
  60. package/src/services/codebaseKnowledgeService.js +430 -0
  61. package/src/services/composioService.js +378 -0
  62. package/src/services/memoryService.js +98 -0
  63. package/src/tools/__tests__/baseTool.test.js +62 -0
  64. package/src/tools/__tests__/codeMapTool.pluralCanonical.test.js +83 -0
  65. package/src/tools/__tests__/composioTool.test.js +268 -0
  66. package/src/tools/__tests__/memoryTool.pluralCanonical.test.js +189 -0
  67. package/src/tools/__tests__/memoryTool.test.js +1 -1
  68. package/src/tools/__tests__/officeTool.test.js +403 -0
  69. package/src/tools/__tests__/openaiFunctionSchemas.memoryReminisce.test.js +24 -25
  70. package/src/tools/__tests__/singularToolReverseForgive.test.js +97 -0
  71. package/src/tools/__tests__/taskManagerTool.discipline.test.js +137 -0
  72. package/src/tools/__tests__/taskManagerTool.transition.test.js +236 -0
  73. package/src/tools/__tests__/toolShapeForgiveness.test.js +260 -0
  74. package/src/tools/baseTool.js +28 -1
  75. package/src/tools/codeMapTool.js +1673 -1521
  76. package/src/tools/composioTool.js +307 -0
  77. package/src/tools/fileContentReplaceTool.js +893 -840
  78. package/src/tools/fileSystemTool.js +1372 -1314
  79. package/src/tools/fileTreeTool.js +7 -0
  80. package/src/tools/memoryTool.js +217 -81
  81. package/src/tools/office/officeDoc.js +425 -0
  82. package/src/tools/office/officePres.js +360 -0
  83. package/src/tools/office/officeSheet.js +350 -0
  84. package/src/tools/officeTool.js +313 -0
  85. package/src/tools/openaiFunctionSchemas.js +40 -50
  86. package/src/tools/platformControlTool.js +5 -0
  87. package/src/tools/seekTool.js +36 -1
  88. package/src/tools/skillsTool.js +10 -0
  89. package/src/tools/taskManagerTool.js +149 -14
  90. package/src/tools/terminalTool.js +23 -1
  91. package/src/tools/visionTool.js +7 -0
  92. package/src/tools/visualEditorTool.js +7 -0
  93. package/src/tools/whatsappTool.js +7 -0
  94. package/src/utilities/authCache.js +47 -6
  95. package/src/utilities/authCache.js.backup-1779570472481 +121 -0
  96. package/web-ui/build/index.html +2 -2
  97. package/web-ui/build/static/1c-BoCdC5pC.js +1 -0
  98. package/web-ui/build/static/abap-D7A92M1K.js +1 -0
  99. package/web-ui/build/static/abnf-DIcpJ99N.js +1 -0
  100. package/web-ui/build/static/abnf-d4I9yABN.js +1 -0
  101. package/web-ui/build/static/accesslog-D_Ksv5Fi.js +1 -0
  102. package/web-ui/build/static/actionscript-CMJI1an7.js +1 -0
  103. package/web-ui/build/static/actionscript-CNcWu4a1.js +1 -0
  104. package/web-ui/build/static/ada-BIqOBKro.js +1 -0
  105. package/web-ui/build/static/ada-BaTkJMdz.js +1 -0
  106. package/web-ui/build/static/agda-DmRdGgvt.js +1 -0
  107. package/web-ui/build/static/al-g8BvIfOt.js +1 -0
  108. package/web-ui/build/static/angelscript-BGxc0B7l.js +1 -0
  109. package/web-ui/build/static/antlr4-Da7ff6-m.js +1 -0
  110. package/web-ui/build/static/apache-Bibp-dVJ.js +1 -0
  111. package/web-ui/build/static/apacheconf-VzeL8tYb.js +1 -0
  112. package/web-ui/build/static/apex-DUaOCea3.js +1 -0
  113. package/web-ui/build/static/apl-BpwvFE2V.js +1 -0
  114. package/web-ui/build/static/applescript-5YKSWwV1.js +1 -0
  115. package/web-ui/build/static/applescript-BHqj5bpe.js +1 -0
  116. package/web-ui/build/static/aql-B0Wx_3hH.js +1 -0
  117. package/web-ui/build/static/arcade-CR8KkII1.js +1 -0
  118. package/web-ui/build/static/arduino-CYx5u85C.js +1 -0
  119. package/web-ui/build/static/arduino-ClVU2zro.js +1 -0
  120. package/web-ui/build/static/arff-kutIH4CC.js +1 -0
  121. package/web-ui/build/static/armasm-DBm1lGrc.js +1 -0
  122. package/web-ui/build/static/asciidoc-Cl02VMGf.js +1 -0
  123. package/web-ui/build/static/asciidoc-MMFYRqre.js +1 -0
  124. package/web-ui/build/static/asm6502-DPVMGaHn.js +1 -0
  125. package/web-ui/build/static/asmatmel-Dz4vtZ11.js +1 -0
  126. package/web-ui/build/static/aspectj-BZidGBlr.js +1 -0
  127. package/web-ui/build/static/aspnet-C2mo9iee.js +1 -0
  128. package/web-ui/build/static/autohotkey-Bx83oFMW.js +1 -0
  129. package/web-ui/build/static/autohotkey-DciFl6K5.js +1 -0
  130. package/web-ui/build/static/autoit-TVKWI5bu.js +1 -0
  131. package/web-ui/build/static/autoit-oORW7mrd.js +1 -0
  132. package/web-ui/build/static/avisynth-D_5uOtxP.js +1 -0
  133. package/web-ui/build/static/avrasm-D22JmbLm.js +1 -0
  134. package/web-ui/build/static/avro-idl-CtTuANGZ.js +1 -0
  135. package/web-ui/build/static/awk-Bnez22eR.js +1 -0
  136. package/web-ui/build/static/axapta-eqcr7C2-.js +1 -0
  137. package/web-ui/build/static/bash-D3XWHCZZ.js +1 -0
  138. package/web-ui/build/static/bash-px0MqVxE.js +1 -0
  139. package/web-ui/build/static/basic-BWOdgKLg.js +1 -0
  140. package/web-ui/build/static/basic-C7PK4wVg.js +1 -0
  141. package/web-ui/build/static/batch-CFeuSY9D.js +1 -0
  142. package/web-ui/build/static/bbcode-CRC0UNOS.js +1 -0
  143. package/web-ui/build/static/bicep-C18w8d6Z.js +1 -0
  144. package/web-ui/build/static/birb-DPiF4fwX.js +1 -0
  145. package/web-ui/build/static/bison-C1RWPaLl.js +1 -0
  146. package/web-ui/build/static/bnf-BelSXhsr.js +1 -0
  147. package/web-ui/build/static/bnf-D_m4SZuc.js +1 -0
  148. package/web-ui/build/static/brainfuck-Ci7P0POq.js +1 -0
  149. package/web-ui/build/static/brainfuck-DIrW6_96.js +1 -0
  150. package/web-ui/build/static/brightscript-4XgpA0OQ.js +1 -0
  151. package/web-ui/build/static/bro-4kAMStb2.js +1 -0
  152. package/web-ui/build/static/bsl-CleVjH1I.js +1 -0
  153. package/web-ui/build/static/c-Ct3AAwH6.js +1 -0
  154. package/web-ui/build/static/c-EiJrAzIQ.js +1 -0
  155. package/web-ui/build/static/c-like-B361rHmz.js +1 -0
  156. package/web-ui/build/static/cal-BZ3Pr4JI.js +1 -0
  157. package/web-ui/build/static/capnproto-LmwOdJJp.js +1 -0
  158. package/web-ui/build/static/ceylon-CKAfIFzx.js +1 -0
  159. package/web-ui/build/static/cfscript-Cms4z16U.js +1 -0
  160. package/web-ui/build/static/chaiscript-DKxRiUyN.js +1 -0
  161. package/web-ui/build/static/cil-C6rGhwce.js +1 -0
  162. package/web-ui/build/static/clean-DmpXs6RN.js +1 -0
  163. package/web-ui/build/static/clojure-DRYxiF9s.js +1 -0
  164. package/web-ui/build/static/clojure-DTjXEJCq.js +1 -0
  165. package/web-ui/build/static/clojure-repl-C1qlAUnK.js +1 -0
  166. package/web-ui/build/static/cmake-DtUokafC.js +1 -0
  167. package/web-ui/build/static/cmake-_WqF1fG8.js +1 -0
  168. package/web-ui/build/static/cobol-D2Q0IMuT.js +1 -0
  169. package/web-ui/build/static/coffeescript-MRThzdTU.js +1 -0
  170. package/web-ui/build/static/coffeescript-OHOpkJvb.js +1 -0
  171. package/web-ui/build/static/concurnas-CVGat9IA.js +1 -0
  172. package/web-ui/build/static/coq-CB_bM4lt.js +1 -0
  173. package/web-ui/build/static/coq-WNK38Cqz.js +1 -0
  174. package/web-ui/build/static/cos-CNa5GVxa.js +1 -0
  175. package/web-ui/build/static/cpp-D-9lHx0_.js +1 -0
  176. package/web-ui/build/static/cpp-DRvL1yaA.js +1 -0
  177. package/web-ui/build/static/crmsh-evnPMxnd.js +1 -0
  178. package/web-ui/build/static/crystal-RGhNrgnC.js +1 -0
  179. package/web-ui/build/static/crystal-yrBjXjEh.js +1 -0
  180. package/web-ui/build/static/csharp-Dr7sLtl1.js +1 -0
  181. package/web-ui/build/static/csharp-zNVQxjuC.js +1 -0
  182. package/web-ui/build/static/cshtml-CoiK-7Bu.js +1 -0
  183. package/web-ui/build/static/csp-Bhgq86EB.js +1 -0
  184. package/web-ui/build/static/csp-C20UcGAL.js +1 -0
  185. package/web-ui/build/static/css-D1vlrRV2.js +1 -0
  186. package/web-ui/build/static/css-extras-DVSAYMbv.js +1 -0
  187. package/web-ui/build/static/csv-BgR9D8jG.js +1 -0
  188. package/web-ui/build/static/cypher-Dxehyj6Y.js +1 -0
  189. package/web-ui/build/static/d-B-Se39n2.js +1 -0
  190. package/web-ui/build/static/d-Cr4d56op.js +1 -0
  191. package/web-ui/build/static/dart-BBqlOFkR.js +1 -0
  192. package/web-ui/build/static/dart-GRD7MWem.js +1 -0
  193. package/web-ui/build/static/dataweave-BK-Tahkw.js +1 -0
  194. package/web-ui/build/static/dax-pTr9GVoe.js +1 -0
  195. package/web-ui/build/static/delphi-CbwSNmp4.js +1 -0
  196. package/web-ui/build/static/dhall-CuFqRXr6.js +1 -0
  197. package/web-ui/build/static/diff-CK8Fq88e.js +1 -0
  198. package/web-ui/build/static/diff-CWbUTU-C.js +1 -0
  199. package/web-ui/build/static/django-DWaEPdP6.js +1 -0
  200. package/web-ui/build/static/django-TkEFpAOO.js +1 -0
  201. package/web-ui/build/static/dns-DKpFJlA0.js +1 -0
  202. package/web-ui/build/static/dns-zone-file-BIsmZEMf.js +1 -0
  203. package/web-ui/build/static/docker-DUavAYf7.js +1 -0
  204. package/web-ui/build/static/dockerfile-YnavjTIo.js +1 -0
  205. package/web-ui/build/static/dos-Dv3Qr-Oo.js +1 -0
  206. package/web-ui/build/static/dot-BtIPbx7t.js +1 -0
  207. package/web-ui/build/static/dsconfig-CEgd9-kI.js +1 -0
  208. package/web-ui/build/static/dts-BztZn8T6.js +1 -0
  209. package/web-ui/build/static/dust-B-527Hc0.js +1 -0
  210. package/web-ui/build/static/ebnf-CH_nnNi5.js +1 -0
  211. package/web-ui/build/static/ebnf-CuBjcj0j.js +1 -0
  212. package/web-ui/build/static/editorconfig-CA9KaQ0w.js +1 -0
  213. package/web-ui/build/static/eiffel-DVYJwwQw.js +1 -0
  214. package/web-ui/build/static/ejs-C2LKgDYE.js +1 -0
  215. package/web-ui/build/static/elixir-DVXGkbnw.js +1 -0
  216. package/web-ui/build/static/elixir-meJ_qqx4.js +1 -0
  217. package/web-ui/build/static/elm-C5sYS5Cb.js +1 -0
  218. package/web-ui/build/static/elm-Dj443pWY.js +1 -0
  219. package/web-ui/build/static/erb-CAj5yksQ.js +1 -0
  220. package/web-ui/build/static/erb-CcUB2tMd.js +1 -0
  221. package/web-ui/build/static/erlang-JusKooAX.js +1 -0
  222. package/web-ui/build/static/erlang-repl-wYgxDX5h.js +1 -0
  223. package/web-ui/build/static/erlang-sn-PsrSf.js +1 -0
  224. package/web-ui/build/static/etlua-ChDwUxz6.js +1 -0
  225. package/web-ui/build/static/excel-BJux1m2h.js +1 -0
  226. package/web-ui/build/static/excel-formula-i5ByFxAu.js +1 -0
  227. package/web-ui/build/static/factor-CTutAp6r.js +1 -0
  228. package/web-ui/build/static/false-DQz_zYVV.js +1 -0
  229. package/web-ui/build/static/firestore-security-rules-DRGBNXh2.js +1 -0
  230. package/web-ui/build/static/fix-DeSUhixI.js +1 -0
  231. package/web-ui/build/static/flix-BKTJVua_.js +1 -0
  232. package/web-ui/build/static/flow-BpcZsNuo.js +1 -0
  233. package/web-ui/build/static/fortran-BZIKfBPW.js +1 -0
  234. package/web-ui/build/static/fortran-BdezWEh5.js +1 -0
  235. package/web-ui/build/static/fsharp-1Gpt8wZo.js +1 -0
  236. package/web-ui/build/static/fsharp-CMyiqXUW.js +1 -0
  237. package/web-ui/build/static/ftl-D9bBJMhV.js +1 -0
  238. package/web-ui/build/static/gams-DL57wTHN.js +1 -0
  239. package/web-ui/build/static/gap-DN4Uo9cF.js +1 -0
  240. package/web-ui/build/static/gauss-DTa1H0QR.js +1 -0
  241. package/web-ui/build/static/gcode-U5GhqE37.js +1 -0
  242. package/web-ui/build/static/gcode-s-E37fb4.js +1 -0
  243. package/web-ui/build/static/gdscript-DkjgGcDv.js +1 -0
  244. package/web-ui/build/static/gedcom-BbjSSId3.js +1 -0
  245. package/web-ui/build/static/gherkin-BwIzGx7J.js +1 -0
  246. package/web-ui/build/static/gherkin-C97W_9I9.js +1 -0
  247. package/web-ui/build/static/git-DO8dnOip.js +1 -0
  248. package/web-ui/build/static/glsl-B_4UD4-O.js +1 -0
  249. package/web-ui/build/static/glsl-CGSjLy2x.js +1 -0
  250. package/web-ui/build/static/gml-BiITg8HI.js +1 -0
  251. package/web-ui/build/static/gml-DInGU66p.js +1 -0
  252. package/web-ui/build/static/gn--m2IH4i3.js +1 -0
  253. package/web-ui/build/static/go-DOK7GAd-.js +1 -0
  254. package/web-ui/build/static/go-bof0B9jK.js +1 -0
  255. package/web-ui/build/static/go-module-CPIVqmnL.js +1 -0
  256. package/web-ui/build/static/golo-jgy07E43.js +1 -0
  257. package/web-ui/build/static/gradle-BISOF0nH.js +1 -0
  258. package/web-ui/build/static/graphql-FqlbDLTL.js +1 -0
  259. package/web-ui/build/static/groovy-BM0ZyW4a.js +1 -0
  260. package/web-ui/build/static/groovy-oUdbfbZY.js +1 -0
  261. package/web-ui/build/static/haml-C8Qg-VO5.js +1 -0
  262. package/web-ui/build/static/haml-Dse28pB_.js +1 -0
  263. package/web-ui/build/static/handlebars-CWT7WazY.js +1 -0
  264. package/web-ui/build/static/handlebars-Ow3joqOm.js +1 -0
  265. package/web-ui/build/static/haskell-BfraeRhd.js +1 -0
  266. package/web-ui/build/static/haskell-EhcU7sbn.js +1 -0
  267. package/web-ui/build/static/haxe-B8tUoExu.js +1 -0
  268. package/web-ui/build/static/haxe-D9WQHhTh.js +1 -0
  269. package/web-ui/build/static/hcl-CG3GCouf.js +1 -0
  270. package/web-ui/build/static/hlsl-CSWRMQ3m.js +1 -0
  271. package/web-ui/build/static/hoon-Cj0JdbFY.js +1 -0
  272. package/web-ui/build/static/hpkp-CmjdXbgl.js +1 -0
  273. package/web-ui/build/static/hsp-VaFZ7Rlv.js +1 -0
  274. package/web-ui/build/static/hsts-CkJ6UPzY.js +1 -0
  275. package/web-ui/build/static/htmlbars-pfHjYqd2.js +1 -0
  276. package/web-ui/build/static/http-2LA-qivJ.js +1 -0
  277. package/web-ui/build/static/http-CQ_5JSsj.js +1 -0
  278. package/web-ui/build/static/hy-C-Dll2MQ.js +1 -0
  279. package/web-ui/build/static/ichigojam-DecRewwq.js +1 -0
  280. package/web-ui/build/static/icon-CdnU9zPA.js +1 -0
  281. package/web-ui/build/static/icu-message-format-CUQtjk6Q.js +1 -0
  282. package/web-ui/build/static/idris-CRMftLq6.js +1 -0
  283. package/web-ui/build/static/iecst-CXhHqz1P.js +1 -0
  284. package/web-ui/build/static/ignore-_emqIx7v.js +1 -0
  285. package/web-ui/build/static/index-BBHrMvg7.js +1216 -0
  286. package/web-ui/build/static/index-ChkZR_aE.js +13 -0
  287. package/web-ui/build/static/index-DU4GNSOf.js +1 -0
  288. package/web-ui/build/static/index-_z8JjNrI.css +1 -0
  289. package/web-ui/build/static/inform7-CbqlFoFE.js +1 -0
  290. package/web-ui/build/static/inform7-TxZViMJ9.js +1 -0
  291. package/web-ui/build/static/ini-D1sHtm5e.js +1 -0
  292. package/web-ui/build/static/ini-DnqB7pfX.js +1 -0
  293. package/web-ui/build/static/io-MnQK1mM-.js +1 -0
  294. package/web-ui/build/static/irpf90-BRaAenqx.js +1 -0
  295. package/web-ui/build/static/isbl-kubGT4rM.js +1 -0
  296. package/web-ui/build/static/j-BIz9wT9q.js +1 -0
  297. package/web-ui/build/static/java-CbQmsHSK.js +1 -0
  298. package/web-ui/build/static/java-v1B9fNL2.js +1 -0
  299. package/web-ui/build/static/javadoc-TB1OtWS7.js +1 -0
  300. package/web-ui/build/static/javadoclike-BBQPwDAU.js +1 -0
  301. package/web-ui/build/static/javascript-DzNVL5l_.js +1 -0
  302. package/web-ui/build/static/javastacktrace-BduOgG1e.js +1 -0
  303. package/web-ui/build/static/jboss-cli-BcqzI366.js +1 -0
  304. package/web-ui/build/static/jexl-Boyapidr.js +1 -0
  305. package/web-ui/build/static/jolie-hEbkNpsb.js +1 -0
  306. package/web-ui/build/static/jq-ZyEE6oGU.js +1 -0
  307. package/web-ui/build/static/js-extras-CXOzvlL7.js +1 -0
  308. package/web-ui/build/static/js-templates-CkHsm5px.js +1 -0
  309. package/web-ui/build/static/jsdoc-Uk3hj8z2.js +1 -0
  310. package/web-ui/build/static/json-BFi9igjd.js +1 -0
  311. package/web-ui/build/static/json-LI9wtNaG.js +1 -0
  312. package/web-ui/build/static/json5-PwjNByuN.js +1 -0
  313. package/web-ui/build/static/jsonp-DpfGuNSW.js +1 -0
  314. package/web-ui/build/static/jsstacktrace-DhOP2AhS.js +1 -0
  315. package/web-ui/build/static/jsx-DmWoDk8F.js +1 -0
  316. package/web-ui/build/static/julia-DBC5h81N.js +1 -0
  317. package/web-ui/build/static/julia-Dh9sV3LX.js +1 -0
  318. package/web-ui/build/static/julia-repl-BYyDp1f4.js +1 -0
  319. package/web-ui/build/static/keepalived-BTxjrZMV.js +1 -0
  320. package/web-ui/build/static/keyman-IYiyCDCU.js +1 -0
  321. package/web-ui/build/static/kotlin-C0PBuzvy.js +1 -0
  322. package/web-ui/build/static/kotlin-LWYZUK_T.js +1 -0
  323. package/web-ui/build/static/kumir-CQIbnv9I.js +1 -0
  324. package/web-ui/build/static/kusto-DA7pQ-Rb.js +1 -0
  325. package/web-ui/build/static/lasso-CrHySbnC.js +1 -0
  326. package/web-ui/build/static/latex-CLSOFXG4.js +1 -0
  327. package/web-ui/build/static/latex-DYknD4Dx.js +1 -0
  328. package/web-ui/build/static/latte-4QvZcKVw.js +1 -0
  329. package/web-ui/build/static/ldif-Dr96BfRx.js +1 -0
  330. package/web-ui/build/static/leaf-C9qL2Qde.js +1 -0
  331. package/web-ui/build/static/less-DpoID9ZJ.js +1 -0
  332. package/web-ui/build/static/less-wO8QO0XW.js +1 -0
  333. package/web-ui/build/static/lilypond-CNp4Kb1P.js +1 -0
  334. package/web-ui/build/static/liquid-DLULQdgV.js +1 -0
  335. package/web-ui/build/static/lisp-CrVo-Llt.js +1 -0
  336. package/web-ui/build/static/lisp-QIAoXzmW.js +1 -0
  337. package/web-ui/build/static/livecodeserver-DrehOgbf.js +1 -0
  338. package/web-ui/build/static/livescript-Cm2Yp34x.js +1 -0
  339. package/web-ui/build/static/livescript-mVYzlrko.js +1 -0
  340. package/web-ui/build/static/llvm-D6KsQJjh.js +1 -0
  341. package/web-ui/build/static/llvm-DhIp1o-1.js +1 -0
  342. package/web-ui/build/static/log-Sj3ocpgB.js +1 -0
  343. package/web-ui/build/static/lolcode-BSeGnWYG.js +1 -0
  344. package/web-ui/build/static/lsl-DwgUIp0U.js +1 -0
  345. package/web-ui/build/static/lua-B7Ot0Oou.js +1 -0
  346. package/web-ui/build/static/lua-zydwn5-S.js +1 -0
  347. package/web-ui/build/static/magma-Dgfy2Qny.js +1 -0
  348. package/web-ui/build/static/makefile-CSjtzdcw.js +1 -0
  349. package/web-ui/build/static/makefile-DrnEneus.js +1 -0
  350. package/web-ui/build/static/markdown-D9Ke3tYA.js +1 -0
  351. package/web-ui/build/static/markdown-DmwKuI2Y.js +1 -0
  352. package/web-ui/build/static/markup-templating-CikqfHT9.js +1 -0
  353. package/web-ui/build/static/mathematica-OC0imzI5.js +1 -0
  354. package/web-ui/build/static/matlab-BlPcqzRw.js +1 -0
  355. package/web-ui/build/static/matlab-C1iteCkE.js +1 -0
  356. package/web-ui/build/static/maxima-DecbOh0Y.js +1 -0
  357. package/web-ui/build/static/maxscript-80cPuIOA.js +1 -0
  358. package/web-ui/build/static/mel-NI7ysGX2.js +1 -0
  359. package/web-ui/build/static/mel-r03p1eJo.js +1 -0
  360. package/web-ui/build/static/mercury-BdNZw6ZU.js +1 -0
  361. package/web-ui/build/static/mermaid-C1LB7zMJ.js +1 -0
  362. package/web-ui/build/static/mipsasm-BnZ0cdht.js +1 -0
  363. package/web-ui/build/static/mizar-BGPNX3WQ.js +1 -0
  364. package/web-ui/build/static/mizar-CswPcmcG.js +1 -0
  365. package/web-ui/build/static/mojolicious-rRtgy8Or.js +1 -0
  366. package/web-ui/build/static/mongodb-CJU0oeix.js +1 -0
  367. package/web-ui/build/static/monkey-Bj0HaV5-.js +1 -0
  368. package/web-ui/build/static/monkey-JRYuMIYc.js +1 -0
  369. package/web-ui/build/static/moonscript-i7e8bkxZ.js +1 -0
  370. package/web-ui/build/static/moonscript-ldoM156V.js +1 -0
  371. package/web-ui/build/static/n1ql-C0xs8qWA.js +1 -0
  372. package/web-ui/build/static/n1ql-DlC-GlVq.js +1 -0
  373. package/web-ui/build/static/n4js-mIwtIanO.js +1 -0
  374. package/web-ui/build/static/nand2tetris-hdl-mfHIYPZD.js +1 -0
  375. package/web-ui/build/static/naniscript-DiDayxx1.js +1 -0
  376. package/web-ui/build/static/nasm-7uf2nfNC.js +1 -0
  377. package/web-ui/build/static/neon-BKgOgIAL.js +1 -0
  378. package/web-ui/build/static/nevod-BlujoQ5k.js +1 -0
  379. package/web-ui/build/static/nginx-Bb57ubp_.js +1 -0
  380. package/web-ui/build/static/nginx-DmLU0URp.js +1 -0
  381. package/web-ui/build/static/nim-CmnPRTHF.js +1 -0
  382. package/web-ui/build/static/nim-DOReB32c.js +1 -0
  383. package/web-ui/build/static/nix-BDMn1sgi.js +1 -0
  384. package/web-ui/build/static/nix-LTHuFEfQ.js +1 -0
  385. package/web-ui/build/static/node-repl-dxwu8SWp.js +1 -0
  386. package/web-ui/build/static/nsis-CKD0KqBT.js +1 -0
  387. package/web-ui/build/static/nsis-IlSwBUak.js +1 -0
  388. package/web-ui/build/static/objectivec-D4Lo30HV.js +1 -0
  389. package/web-ui/build/static/objectivec-zmGGqvoM.js +1 -0
  390. package/web-ui/build/static/ocaml-2uzfqAr8.js +1 -0
  391. package/web-ui/build/static/ocaml-wF6lV9H4.js +1 -0
  392. package/web-ui/build/static/opencl-B82Xjnw5.js +1 -0
  393. package/web-ui/build/static/openqasm-VzVaHpAP.js +1 -0
  394. package/web-ui/build/static/openscad-B-qK1VfW.js +1 -0
  395. package/web-ui/build/static/oxygene-BNTVgbsA.js +1 -0
  396. package/web-ui/build/static/oz-5ZfXBXQY.js +1 -0
  397. package/web-ui/build/static/parigp-S8JhoJoz.js +1 -0
  398. package/web-ui/build/static/parser-BZPtbLcv.js +1 -0
  399. package/web-ui/build/static/parser3-BZRLDHuv.js +1 -0
  400. package/web-ui/build/static/pascal-GKzqT2Ku.js +1 -0
  401. package/web-ui/build/static/pascaligo-DnbFz_mr.js +1 -0
  402. package/web-ui/build/static/pcaxis-DiRsos26.js +1 -0
  403. package/web-ui/build/static/peoplecode-CMDLbqGB.js +1 -0
  404. package/web-ui/build/static/perl-BOnBAciC.js +1 -0
  405. package/web-ui/build/static/perl-fMVLgVTb.js +1 -0
  406. package/web-ui/build/static/pf-z6xsHHPS.js +1 -0
  407. package/web-ui/build/static/pgsql-5jHAyGJf.js +1 -0
  408. package/web-ui/build/static/php-CbG6Jq36.js +1 -0
  409. package/web-ui/build/static/php-D9yyh70o.js +1 -0
  410. package/web-ui/build/static/php-extras-CQKSwnMo.js +1 -0
  411. package/web-ui/build/static/php-template-Ch4UQhUx.js +1 -0
  412. package/web-ui/build/static/phpdoc-Be7TYcGQ.js +1 -0
  413. package/web-ui/build/static/plaintext-BsYjBqDy.js +1 -0
  414. package/web-ui/build/static/plsql-Dc4ePipN.js +1 -0
  415. package/web-ui/build/static/pony-Cen7DtWb.js +1 -0
  416. package/web-ui/build/static/powerquery-BIOJ1eUE.js +1 -0
  417. package/web-ui/build/static/powershell-CbEjJpj7.js +1 -0
  418. package/web-ui/build/static/powershell-DlceT0ds.js +1 -0
  419. package/web-ui/build/static/processing-C9GaKPU-.js +1 -0
  420. package/web-ui/build/static/processing-CTPA3QIV.js +1 -0
  421. package/web-ui/build/static/profile-CHjz016L.js +1 -0
  422. package/web-ui/build/static/prolog-BK0g5F4c.js +1 -0
  423. package/web-ui/build/static/prolog-DrrwUODp.js +1 -0
  424. package/web-ui/build/static/promql-DftRCUlR.js +1 -0
  425. package/web-ui/build/static/properties-B122hwLT.js +1 -0
  426. package/web-ui/build/static/properties-C0m3XIaN.js +1 -0
  427. package/web-ui/build/static/protobuf-CanIoKel.js +1 -0
  428. package/web-ui/build/static/protobuf-WvDgzNtD.js +1 -0
  429. package/web-ui/build/static/psl-JsKwhg_r.js +1 -0
  430. package/web-ui/build/static/pug-DoQaiAyU.js +1 -0
  431. package/web-ui/build/static/puppet-CoRftQQB.js +1 -0
  432. package/web-ui/build/static/puppet-DHgjsvQ8.js +1 -0
  433. package/web-ui/build/static/pure-BgZIQeOr.js +1 -0
  434. package/web-ui/build/static/purebasic-BRYfIFBb.js +1 -0
  435. package/web-ui/build/static/purebasic-DxXSa8gN.js +1 -0
  436. package/web-ui/build/static/purescript-ChvJvUnk.js +1 -0
  437. package/web-ui/build/static/python-DqhW0V3z.js +1 -0
  438. package/web-ui/build/static/python-Dz2FyIQx.js +1 -0
  439. package/web-ui/build/static/python-repl-Cl3mEb2H.js +1 -0
  440. package/web-ui/build/static/q-Bg4mQWXp.js +1 -0
  441. package/web-ui/build/static/q-DwaQK_1p.js +1 -0
  442. package/web-ui/build/static/qml-D1-fdJvp.js +1 -0
  443. package/web-ui/build/static/qml-DFsoiY0T.js +1 -0
  444. package/web-ui/build/static/qore-DdEtFSV5.js +1 -0
  445. package/web-ui/build/static/qsharp-B_A0OUBX.js +1 -0
  446. package/web-ui/build/static/r-C3M2HrKx.js +1 -0
  447. package/web-ui/build/static/r-_EUAt74Q.js +1 -0
  448. package/web-ui/build/static/racket-B3uAs3VE.js +1 -0
  449. package/web-ui/build/static/reason-CyAzPvNW.js +1 -0
  450. package/web-ui/build/static/reasonml-iEzx6ejF.js +1 -0
  451. package/web-ui/build/static/regex-suWqSnRa.js +1 -0
  452. package/web-ui/build/static/rego-QeDW60Lx.js +1 -0
  453. package/web-ui/build/static/renpy-03fEqIYK.js +1 -0
  454. package/web-ui/build/static/rest-BRJIE-UZ.js +1 -0
  455. package/web-ui/build/static/rib-DOI_C8C9.js +1 -0
  456. package/web-ui/build/static/rip-BaEBdknp.js +1 -0
  457. package/web-ui/build/static/roboconf-DC8IQe4Z.js +1 -0
  458. package/web-ui/build/static/roboconf-jTu2wKoD.js +1 -0
  459. package/web-ui/build/static/robotframework-BFp2sQG2.js +1 -0
  460. package/web-ui/build/static/routeros-Br-GCWs7.js +1 -0
  461. package/web-ui/build/static/rsl-BpWeUJqw.js +1 -0
  462. package/web-ui/build/static/ruby-C3nnVoGq.js +1 -0
  463. package/web-ui/build/static/ruby-DD90V5PL.js +1 -0
  464. package/web-ui/build/static/ruleslanguage-BflyDdqj.js +1 -0
  465. package/web-ui/build/static/rust-DtiFFJtC.js +1 -0
  466. package/web-ui/build/static/rust-uJHZCfXQ.js +1 -0
  467. package/web-ui/build/static/sas-DUr8rIBf.js +1 -0
  468. package/web-ui/build/static/sas-POH3vAEy.js +1 -0
  469. package/web-ui/build/static/sass-D1oLbZQ0.js +1 -0
  470. package/web-ui/build/static/scala-CDtrRn0l.js +1 -0
  471. package/web-ui/build/static/scala-VCIKIldH.js +1 -0
  472. package/web-ui/build/static/scheme-CAWHx2Oj.js +1 -0
  473. package/web-ui/build/static/scheme-DzKv24tn.js +1 -0
  474. package/web-ui/build/static/scilab-DuxpEvzV.js +1 -0
  475. package/web-ui/build/static/scss-BKd4Y-UF.js +1 -0
  476. package/web-ui/build/static/scss-BpqUKxry.js +1 -0
  477. package/web-ui/build/static/shell-session-CglnRr2l.js +1 -0
  478. package/web-ui/build/static/shell-u-Y3PKLQ.js +1 -0
  479. package/web-ui/build/static/smali-D308KWif.js +1 -0
  480. package/web-ui/build/static/smali-DYT-jHPu.js +1 -0
  481. package/web-ui/build/static/smalltalk-BLYA-Ag1.js +1 -0
  482. package/web-ui/build/static/smalltalk-BdMVmgN0.js +1 -0
  483. package/web-ui/build/static/smarty-DUYgBrje.js +1 -0
  484. package/web-ui/build/static/sml-EEhIaAvM.js +1 -0
  485. package/web-ui/build/static/sml-bQ27koeV.js +1 -0
  486. package/web-ui/build/static/solidity-U7x7-dFr.js +1 -0
  487. package/web-ui/build/static/solution-file-Cr03jaqW.js +1 -0
  488. package/web-ui/build/static/soy-lnGOhaRM.js +1 -0
  489. package/web-ui/build/static/sparql-BRm44B1P.js +1 -0
  490. package/web-ui/build/static/splunk-spl-DdrdBOQJ.js +1 -0
  491. package/web-ui/build/static/sqf-CDtvZjid.js +1 -0
  492. package/web-ui/build/static/sqf-wr3PtKhW.js +1 -0
  493. package/web-ui/build/static/sql-B1-8AkNe.js +1 -0
  494. package/web-ui/build/static/sql-zWEK1lPB.js +1 -0
  495. package/web-ui/build/static/sql_more-Ck0DuSs3.js +1 -0
  496. package/web-ui/build/static/squirrel-CfQEIe5h.js +1 -0
  497. package/web-ui/build/static/stan-BM1Wilpj.js +1 -0
  498. package/web-ui/build/static/stan-DFPCSU1l.js +1 -0
  499. package/web-ui/build/static/stata-BJ-qKfEg.js +1 -0
  500. package/web-ui/build/static/step21-fPKcuR3s.js +1 -0
  501. package/web-ui/build/static/stylus-BhqK2C03.js +1 -0
  502. package/web-ui/build/static/stylus-BxloRYSO.js +1 -0
  503. package/web-ui/build/static/subunit-CueM7bOY.js +1 -0
  504. package/web-ui/build/static/swift-CPgZZ0ja.js +1 -0
  505. package/web-ui/build/static/swift-CsEMsJ7g.js +1 -0
  506. package/web-ui/build/static/systemd-B1Wwkby4.js +1 -0
  507. package/web-ui/build/static/t4-cs-CL3Ca0dW.js +1 -0
  508. package/web-ui/build/static/t4-templating-BoV5iKxA.js +1 -0
  509. package/web-ui/build/static/t4-vb-BKXXzk5n.js +1 -0
  510. package/web-ui/build/static/taggerscript-aJQMdfVb.js +1 -0
  511. package/web-ui/build/static/tap-BBfQFbbW.js +1 -0
  512. package/web-ui/build/static/tap-CmCrAtSH.js +1 -0
  513. package/web-ui/build/static/tcl-B8xfoxf8.js +1 -0
  514. package/web-ui/build/static/tcl-CPzoU-PX.js +1 -0
  515. package/web-ui/build/static/textile-B99mXtsV.js +1 -0
  516. package/web-ui/build/static/thrift-Cd40Ii7J.js +1 -0
  517. package/web-ui/build/static/toml-DV5wxyQS.js +1 -0
  518. package/web-ui/build/static/tp-o2VorAT6.js +1 -0
  519. package/web-ui/build/static/tremor-Cs0K_i4_.js +1 -0
  520. package/web-ui/build/static/tsx-KG-mQur8.js +1 -0
  521. package/web-ui/build/static/tt2-M3GHOvjN.js +1 -0
  522. package/web-ui/build/static/turtle-D6o0UODZ.js +1 -0
  523. package/web-ui/build/static/twig-D7LOxPkH.js +1 -0
  524. package/web-ui/build/static/twig-SHSTj-jA.js +1 -0
  525. package/web-ui/build/static/typescript-BeIk_BLV.js +1 -0
  526. package/web-ui/build/static/typescript-Btz-ypJW.js +1 -0
  527. package/web-ui/build/static/typoscript-7jDBTKMM.js +1 -0
  528. package/web-ui/build/static/unrealscript-f2f2MAJa.js +1 -0
  529. package/web-ui/build/static/uorazor-c5VZAS6K.js +1 -0
  530. package/web-ui/build/static/uri-DY2cDkq-.js +1 -0
  531. package/web-ui/build/static/v-6ffK7TKq.js +1 -0
  532. package/web-ui/build/static/vala-BgOkjEeg.js +1 -0
  533. package/web-ui/build/static/vala-BvuDZGU_.js +1 -0
  534. package/web-ui/build/static/vbnet-Bdh9clH3.js +1 -0
  535. package/web-ui/build/static/vbnet-CDpcSndL.js +1 -0
  536. package/web-ui/build/static/vbscript-dH3gn1bx.js +1 -0
  537. package/web-ui/build/static/vbscript-html-a_tIfb0-.js +1 -0
  538. package/web-ui/build/static/velocity-DGDKyukB.js +1 -0
  539. package/web-ui/build/static/verilog-CtJaE20M.js +1 -0
  540. package/web-ui/build/static/verilog-CvdiugJe.js +1 -0
  541. package/web-ui/build/static/vhdl-CN1nxPYJ.js +1 -0
  542. package/web-ui/build/static/vhdl-JtjHb_oM.js +1 -0
  543. package/web-ui/build/static/vim-DBRKYGcU.js +1 -0
  544. package/web-ui/build/static/vim-DQiU261H.js +1 -0
  545. package/web-ui/build/static/visual-basic-D_daebxW.js +1 -0
  546. package/web-ui/build/static/warpscript-B4PIoyZp.js +1 -0
  547. package/web-ui/build/static/wasm-D6_O5K2p.js +1 -0
  548. package/web-ui/build/static/web-idl-D7BDrII0.js +1 -0
  549. package/web-ui/build/static/wiki-D-bqO098.js +1 -0
  550. package/web-ui/build/static/wolfram-NnogXigM.js +1 -0
  551. package/web-ui/build/static/wren-DwgJaCDU.js +1 -0
  552. package/web-ui/build/static/x86asm-B9-C3MH5.js +1 -0
  553. package/web-ui/build/static/xeora-wudvnBkY.js +1 -0
  554. package/web-ui/build/static/xl-BeBZDETk.js +1 -0
  555. package/web-ui/build/static/xml-DgNmhWin.js +1 -0
  556. package/web-ui/build/static/xml-doc-B2RShOT5.js +1 -0
  557. package/web-ui/build/static/xojo-C0HF7CVl.js +1 -0
  558. package/web-ui/build/static/xquery-CMss7jIw.js +1 -0
  559. package/web-ui/build/static/xquery-Dy1YImWg.js +1 -0
  560. package/web-ui/build/static/yaml--7oDAAKr.js +1 -0
  561. package/web-ui/build/static/yaml-1-HThDJz.js +1 -0
  562. package/web-ui/build/static/yang-CxleyLxS.js +1 -0
  563. package/web-ui/build/static/zephir-B7LMkND2.js +1 -0
  564. package/web-ui/build/static/zig-DST87v3k.js +1 -0
  565. package/web-ui/build/static/1c-DGpIT7i5.js +0 -1
  566. package/web-ui/build/static/abap-5wFDdWLh.js +0 -1
  567. package/web-ui/build/static/abnf-BP1dpNSE.js +0 -1
  568. package/web-ui/build/static/abnf-DBEIAl8g.js +0 -1
  569. package/web-ui/build/static/accesslog-CWSM_T5E.js +0 -1
  570. package/web-ui/build/static/actionscript-DONkco1J.js +0 -1
  571. package/web-ui/build/static/actionscript-FqBYk5er.js +0 -1
  572. package/web-ui/build/static/ada-C2JLRIaM.js +0 -1
  573. package/web-ui/build/static/ada-gKiygTRK.js +0 -1
  574. package/web-ui/build/static/agda-CkSODqK2.js +0 -1
  575. package/web-ui/build/static/al-BJ_YR6p7.js +0 -1
  576. package/web-ui/build/static/angelscript-Dg2byMGg.js +0 -1
  577. package/web-ui/build/static/antlr4-BnpyaFNr.js +0 -1
  578. package/web-ui/build/static/apache-Dffxsd7O.js +0 -1
  579. package/web-ui/build/static/apacheconf-DLitjtWj.js +0 -1
  580. package/web-ui/build/static/apex-Drr_IvU2.js +0 -1
  581. package/web-ui/build/static/apl-CF6qxmXG.js +0 -1
  582. package/web-ui/build/static/applescript-CjOlw3b_.js +0 -1
  583. package/web-ui/build/static/applescript-DjkSl1Ry.js +0 -1
  584. package/web-ui/build/static/aql-KwVmK1gP.js +0 -1
  585. package/web-ui/build/static/arcade-CENSXx0R.js +0 -1
  586. package/web-ui/build/static/arduino-B3Ta9Fll.js +0 -1
  587. package/web-ui/build/static/arduino-CzcsaB9_.js +0 -1
  588. package/web-ui/build/static/arff-CMJSVt_O.js +0 -1
  589. package/web-ui/build/static/armasm-0zSgSPB4.js +0 -1
  590. package/web-ui/build/static/asciidoc-B8K5ctWq.js +0 -1
  591. package/web-ui/build/static/asciidoc-bk2Sg6b6.js +0 -1
  592. package/web-ui/build/static/asm6502-ji6zm4FQ.js +0 -1
  593. package/web-ui/build/static/asmatmel-DJqObM4Y.js +0 -1
  594. package/web-ui/build/static/aspectj-DqQKI7J5.js +0 -1
  595. package/web-ui/build/static/aspnet-9cenTxW7.js +0 -1
  596. package/web-ui/build/static/autohotkey-C6EhiZvl.js +0 -1
  597. package/web-ui/build/static/autohotkey-sTGJOvMM.js +0 -1
  598. package/web-ui/build/static/autoit-B0Im8iQ1.js +0 -1
  599. package/web-ui/build/static/autoit-CO6pUD0H.js +0 -1
  600. package/web-ui/build/static/avisynth-OvOHTfj5.js +0 -1
  601. package/web-ui/build/static/avrasm-BLWZ5Mye.js +0 -1
  602. package/web-ui/build/static/avro-idl-BB2ODvnw.js +0 -1
  603. package/web-ui/build/static/awk-_jhMabQ0.js +0 -1
  604. package/web-ui/build/static/axapta-DdBRgoYy.js +0 -1
  605. package/web-ui/build/static/bash-CsaRGXBQ.js +0 -1
  606. package/web-ui/build/static/bash-CxLFkwAC.js +0 -1
  607. package/web-ui/build/static/basic-BJyy7JJE.js +0 -1
  608. package/web-ui/build/static/basic-CrMb-gv0.js +0 -1
  609. package/web-ui/build/static/batch-BvcykMe5.js +0 -1
  610. package/web-ui/build/static/bbcode-EOBuY5Y6.js +0 -1
  611. package/web-ui/build/static/bicep-QkDJBA34.js +0 -1
  612. package/web-ui/build/static/birb-TAOxKurn.js +0 -1
  613. package/web-ui/build/static/bison-BEK6cnad.js +0 -1
  614. package/web-ui/build/static/bnf-DfEODxsr.js +0 -1
  615. package/web-ui/build/static/bnf-DhbMjsuA.js +0 -1
  616. package/web-ui/build/static/brainfuck-BoVocOa7.js +0 -1
  617. package/web-ui/build/static/brainfuck-DDC5QXPK.js +0 -1
  618. package/web-ui/build/static/brightscript-DNN598w2.js +0 -1
  619. package/web-ui/build/static/bro-Cn_jjZ8P.js +0 -1
  620. package/web-ui/build/static/bsl-CMCN75Gu.js +0 -1
  621. package/web-ui/build/static/c-DbOGQnEJ.js +0 -1
  622. package/web-ui/build/static/c-kggwYFsy.js +0 -1
  623. package/web-ui/build/static/c-like-BIsuUvof.js +0 -1
  624. package/web-ui/build/static/cal-DpgMsBZE.js +0 -1
  625. package/web-ui/build/static/capnproto-C1AHYI-M.js +0 -1
  626. package/web-ui/build/static/ceylon-pvJffDe1.js +0 -1
  627. package/web-ui/build/static/cfscript-C1qylu52.js +0 -1
  628. package/web-ui/build/static/chaiscript-D417WKRI.js +0 -1
  629. package/web-ui/build/static/cil-CjbZHbcY.js +0 -1
  630. package/web-ui/build/static/clean-Dvc6R-F2.js +0 -1
  631. package/web-ui/build/static/clojure-CSVRQPMQ.js +0 -1
  632. package/web-ui/build/static/clojure-ig1Vkg7X.js +0 -1
  633. package/web-ui/build/static/clojure-repl-C1uyEabk.js +0 -1
  634. package/web-ui/build/static/cmake-DSbVcAB3.js +0 -1
  635. package/web-ui/build/static/cmake-Zp8kPwnH.js +0 -1
  636. package/web-ui/build/static/cobol-OsZSiK_P.js +0 -1
  637. package/web-ui/build/static/coffeescript-D8r0416S.js +0 -1
  638. package/web-ui/build/static/coffeescript-DCpgClxh.js +0 -1
  639. package/web-ui/build/static/concurnas-DKnsxUOc.js +0 -1
  640. package/web-ui/build/static/coq-BQFlywVI.js +0 -1
  641. package/web-ui/build/static/coq-BvS9mQB2.js +0 -1
  642. package/web-ui/build/static/cos-D3ze2791.js +0 -1
  643. package/web-ui/build/static/cpp-Bw-cV3P1.js +0 -1
  644. package/web-ui/build/static/cpp-vi1p7XpB.js +0 -1
  645. package/web-ui/build/static/crmsh-BClnJTeQ.js +0 -1
  646. package/web-ui/build/static/crystal-DGzOUYZq.js +0 -1
  647. package/web-ui/build/static/crystal-DMzk6EvA.js +0 -1
  648. package/web-ui/build/static/csharp-BTom8s2X.js +0 -1
  649. package/web-ui/build/static/csharp-Cp2V3jfR.js +0 -1
  650. package/web-ui/build/static/cshtml-Dmtt9Kto.js +0 -1
  651. package/web-ui/build/static/csp-WPVsLe9_.js +0 -1
  652. package/web-ui/build/static/csp-qddj5fu_.js +0 -1
  653. package/web-ui/build/static/css-B0FAm7kj.js +0 -1
  654. package/web-ui/build/static/css-extras-Bx3pvjiG.js +0 -1
  655. package/web-ui/build/static/csv-CH-edgS5.js +0 -1
  656. package/web-ui/build/static/cypher-c3G8Leew.js +0 -1
  657. package/web-ui/build/static/d-BMDSy22_.js +0 -1
  658. package/web-ui/build/static/d-BdH4oW8-.js +0 -1
  659. package/web-ui/build/static/dart-C-r72q-O.js +0 -1
  660. package/web-ui/build/static/dart-CwpBMrKa.js +0 -1
  661. package/web-ui/build/static/dataweave-BPvqdt4k.js +0 -1
  662. package/web-ui/build/static/dax-Eyy6ixcN.js +0 -1
  663. package/web-ui/build/static/delphi-DhEbPj_5.js +0 -1
  664. package/web-ui/build/static/dhall-Ct1L8sN1.js +0 -1
  665. package/web-ui/build/static/diff-CSTqCgwn.js +0 -1
  666. package/web-ui/build/static/diff-Da97B5vW.js +0 -1
  667. package/web-ui/build/static/django-DGit_lCg.js +0 -1
  668. package/web-ui/build/static/django-DPgqFB8k.js +0 -1
  669. package/web-ui/build/static/dns-DUyXuZ-a.js +0 -1
  670. package/web-ui/build/static/dns-zone-file-D79MDxVG.js +0 -1
  671. package/web-ui/build/static/docker-DTiy4o38.js +0 -1
  672. package/web-ui/build/static/dockerfile-CvwPP8wE.js +0 -1
  673. package/web-ui/build/static/dos-CaIUWxvb.js +0 -1
  674. package/web-ui/build/static/dot-D3504w6Y.js +0 -1
  675. package/web-ui/build/static/dsconfig-Smy1eeX_.js +0 -1
  676. package/web-ui/build/static/dts-DyTYSXZj.js +0 -1
  677. package/web-ui/build/static/dust-CrJyi6qA.js +0 -1
  678. package/web-ui/build/static/ebnf-C8nqfkBH.js +0 -1
  679. package/web-ui/build/static/ebnf-Cuh5Vh2-.js +0 -1
  680. package/web-ui/build/static/editorconfig-C7pTGl6n.js +0 -1
  681. package/web-ui/build/static/eiffel-C75MSJCA.js +0 -1
  682. package/web-ui/build/static/ejs-Dyo7DF5w.js +0 -1
  683. package/web-ui/build/static/elixir-D4yJefOc.js +0 -1
  684. package/web-ui/build/static/elixir-DKRow2SJ.js +0 -1
  685. package/web-ui/build/static/elm-CgbdDlkT.js +0 -1
  686. package/web-ui/build/static/elm-D3N-UgU0.js +0 -1
  687. package/web-ui/build/static/erb-BsITh8qW.js +0 -1
  688. package/web-ui/build/static/erb-lY_LyKyS.js +0 -1
  689. package/web-ui/build/static/erlang-BCnPiYmB.js +0 -1
  690. package/web-ui/build/static/erlang-JEghiPXc.js +0 -1
  691. package/web-ui/build/static/erlang-repl-DzU97ugC.js +0 -1
  692. package/web-ui/build/static/etlua-CsBo8cJa.js +0 -1
  693. package/web-ui/build/static/excel-formula-C2piiCYa.js +0 -1
  694. package/web-ui/build/static/excel-kqNypwQD.js +0 -1
  695. package/web-ui/build/static/factor-DZTOhkyU.js +0 -1
  696. package/web-ui/build/static/false-yLjhfaSw.js +0 -1
  697. package/web-ui/build/static/firestore-security-rules-oaQNoH8l.js +0 -1
  698. package/web-ui/build/static/fix-C9IfnTuS.js +0 -1
  699. package/web-ui/build/static/flix-EmJ_JhPo.js +0 -1
  700. package/web-ui/build/static/flow-DCUl7IAQ.js +0 -1
  701. package/web-ui/build/static/fortran-DvyxJmFN.js +0 -1
  702. package/web-ui/build/static/fortran-EEP9R3S5.js +0 -1
  703. package/web-ui/build/static/fsharp-D_98s3RX.js +0 -1
  704. package/web-ui/build/static/fsharp-Dt9jOO5G.js +0 -1
  705. package/web-ui/build/static/ftl-C8gMHWLo.js +0 -1
  706. package/web-ui/build/static/gams-BHxVPb4z.js +0 -1
  707. package/web-ui/build/static/gap-DFtyHk-q.js +0 -1
  708. package/web-ui/build/static/gauss-BwhJWUcg.js +0 -1
  709. package/web-ui/build/static/gcode-BvmXwp09.js +0 -1
  710. package/web-ui/build/static/gcode-gWcD6Vc7.js +0 -1
  711. package/web-ui/build/static/gdscript-btHoX8RE.js +0 -1
  712. package/web-ui/build/static/gedcom-MgPs9iqh.js +0 -1
  713. package/web-ui/build/static/gherkin-B9c_Q16A.js +0 -1
  714. package/web-ui/build/static/gherkin-BvOgkK6h.js +0 -1
  715. package/web-ui/build/static/git-D9XWOVcQ.js +0 -1
  716. package/web-ui/build/static/glsl-CshBHxHY.js +0 -1
  717. package/web-ui/build/static/glsl-fNRUMTDr.js +0 -1
  718. package/web-ui/build/static/gml-B78deHK8.js +0 -1
  719. package/web-ui/build/static/gml-Cj7d2u8O.js +0 -1
  720. package/web-ui/build/static/gn-CJLD-mF1.js +0 -1
  721. package/web-ui/build/static/go-CT93BEkL.js +0 -1
  722. package/web-ui/build/static/go-CTTlNuQO.js +0 -1
  723. package/web-ui/build/static/go-module-BgnXboUE.js +0 -1
  724. package/web-ui/build/static/golo-2S5tXS-l.js +0 -1
  725. package/web-ui/build/static/gradle-8W8DCcWJ.js +0 -1
  726. package/web-ui/build/static/graphql-DZfp6FNU.js +0 -1
  727. package/web-ui/build/static/groovy-BfsyMb3X.js +0 -1
  728. package/web-ui/build/static/groovy-Dxov7ENz.js +0 -1
  729. package/web-ui/build/static/haml-BlUFsdVV.js +0 -1
  730. package/web-ui/build/static/haml-CjVj6vvW.js +0 -1
  731. package/web-ui/build/static/handlebars-DxrQFkyA.js +0 -1
  732. package/web-ui/build/static/handlebars-FE6fotYl.js +0 -1
  733. package/web-ui/build/static/haskell-B6z0RCD_.js +0 -1
  734. package/web-ui/build/static/haskell-JBFmJTRy.js +0 -1
  735. package/web-ui/build/static/haxe-BtMZMi-_.js +0 -1
  736. package/web-ui/build/static/haxe-C1J8n-fH.js +0 -1
  737. package/web-ui/build/static/hcl-DJP-bFWE.js +0 -1
  738. package/web-ui/build/static/hlsl-DrGjhs1b.js +0 -1
  739. package/web-ui/build/static/hoon-Cg-ZhqIT.js +0 -1
  740. package/web-ui/build/static/hpkp-D07vgmoZ.js +0 -1
  741. package/web-ui/build/static/hsp-CsypPWoA.js +0 -1
  742. package/web-ui/build/static/hsts-B6DMRxvP.js +0 -1
  743. package/web-ui/build/static/htmlbars-BI7_Hw4e.js +0 -1
  744. package/web-ui/build/static/http-90ihEi4s.js +0 -1
  745. package/web-ui/build/static/http-Dp4QXj9E.js +0 -1
  746. package/web-ui/build/static/hy-BMgKvP4K.js +0 -1
  747. package/web-ui/build/static/ichigojam-D6wKvJDb.js +0 -1
  748. package/web-ui/build/static/icon-CrgkmCwl.js +0 -1
  749. package/web-ui/build/static/icu-message-format-Bi2JxCXs.js +0 -1
  750. package/web-ui/build/static/idris-DbUsyZt5.js +0 -1
  751. package/web-ui/build/static/iecst-CQZ9t8fW.js +0 -1
  752. package/web-ui/build/static/ignore-BaFgtNMs.js +0 -1
  753. package/web-ui/build/static/index-DEWSWosh.css +0 -1
  754. package/web-ui/build/static/index-Di1bjCFA.js +0 -13
  755. package/web-ui/build/static/index-otR_WSsL.js +0 -1
  756. package/web-ui/build/static/index-whZPU4as.js +0 -1183
  757. package/web-ui/build/static/inform7-ClyX1Gro.js +0 -1
  758. package/web-ui/build/static/inform7-tZHBS5XP.js +0 -1
  759. package/web-ui/build/static/ini-BrP5JNYL.js +0 -1
  760. package/web-ui/build/static/ini-CVkrAhwV.js +0 -1
  761. package/web-ui/build/static/io-BJ1Y6Bdc.js +0 -1
  762. package/web-ui/build/static/irpf90-fjjcKS_8.js +0 -1
  763. package/web-ui/build/static/isbl-ClpvfUIz.js +0 -1
  764. package/web-ui/build/static/j-CICW77xS.js +0 -1
  765. package/web-ui/build/static/java-B9DFK-0E.js +0 -1
  766. package/web-ui/build/static/java-BL_6rYko.js +0 -1
  767. package/web-ui/build/static/javadoc-Cc4HKpKK.js +0 -1
  768. package/web-ui/build/static/javadoclike-CgNkUDOm.js +0 -1
  769. package/web-ui/build/static/javascript-CM40ZECq.js +0 -1
  770. package/web-ui/build/static/javastacktrace-BHSqXfG5.js +0 -1
  771. package/web-ui/build/static/jboss-cli-Bv5NhVSZ.js +0 -1
  772. package/web-ui/build/static/jexl--Ohk_keA.js +0 -1
  773. package/web-ui/build/static/jolie-DMTN5Vdf.js +0 -1
  774. package/web-ui/build/static/jq-nXRLldXX.js +0 -1
  775. package/web-ui/build/static/js-extras-eLwv3frs.js +0 -1
  776. package/web-ui/build/static/js-templates-Ca0owlrg.js +0 -1
  777. package/web-ui/build/static/jsdoc-KERXp0da.js +0 -1
  778. package/web-ui/build/static/json-BTjLaRsy.js +0 -1
  779. package/web-ui/build/static/json-p7pU0qdW.js +0 -1
  780. package/web-ui/build/static/json5-Cxjy1udc.js +0 -1
  781. package/web-ui/build/static/jsonp-CO52H7Gy.js +0 -1
  782. package/web-ui/build/static/jsstacktrace-8YKfoyJP.js +0 -1
  783. package/web-ui/build/static/jsx-Ct_05KbM.js +0 -1
  784. package/web-ui/build/static/julia-23I1ubCE.js +0 -1
  785. package/web-ui/build/static/julia-d8rVGed_.js +0 -1
  786. package/web-ui/build/static/julia-repl-mwnHedW_.js +0 -1
  787. package/web-ui/build/static/keepalived-E85Rx_fF.js +0 -1
  788. package/web-ui/build/static/keyman-aWd3QUDq.js +0 -1
  789. package/web-ui/build/static/kotlin-Cu370hQq.js +0 -1
  790. package/web-ui/build/static/kotlin-DoJ2WnmZ.js +0 -1
  791. package/web-ui/build/static/kumir-oiOgqcQO.js +0 -1
  792. package/web-ui/build/static/kusto-Bp-B02K5.js +0 -1
  793. package/web-ui/build/static/lasso-BxoQVwOO.js +0 -1
  794. package/web-ui/build/static/latex-CANm5vsX.js +0 -1
  795. package/web-ui/build/static/latex-PMroeNch.js +0 -1
  796. package/web-ui/build/static/latte-2ErU_2XF.js +0 -1
  797. package/web-ui/build/static/ldif-ChPn_F7o.js +0 -1
  798. package/web-ui/build/static/leaf-UkCugDgG.js +0 -1
  799. package/web-ui/build/static/less-CCH5RA89.js +0 -1
  800. package/web-ui/build/static/less-CGZbVU1g.js +0 -1
  801. package/web-ui/build/static/lilypond-BoyM37sv.js +0 -1
  802. package/web-ui/build/static/liquid-DGJVpRBi.js +0 -1
  803. package/web-ui/build/static/lisp-93nne61u.js +0 -1
  804. package/web-ui/build/static/lisp-DYjIRsXz.js +0 -1
  805. package/web-ui/build/static/livecodeserver-CfNaxIE4.js +0 -1
  806. package/web-ui/build/static/livescript-C8kDlQkz.js +0 -1
  807. package/web-ui/build/static/livescript-CoarnRHq.js +0 -1
  808. package/web-ui/build/static/llvm-CBVyNmAh.js +0 -1
  809. package/web-ui/build/static/llvm-DGxq8a7u.js +0 -1
  810. package/web-ui/build/static/log-BivgwFql.js +0 -1
  811. package/web-ui/build/static/lolcode-l5sK2cZz.js +0 -1
  812. package/web-ui/build/static/lsl-Xm44xLRQ.js +0 -1
  813. package/web-ui/build/static/lua-CGvrzfKp.js +0 -1
  814. package/web-ui/build/static/lua-nHwXeY4c.js +0 -1
  815. package/web-ui/build/static/magma-DmNItmna.js +0 -1
  816. package/web-ui/build/static/makefile-CKJNNHGb.js +0 -1
  817. package/web-ui/build/static/makefile-DI6y5Qml.js +0 -1
  818. package/web-ui/build/static/markdown-BgpbxKd-.js +0 -1
  819. package/web-ui/build/static/markdown-CvcxA4yk.js +0 -1
  820. package/web-ui/build/static/markup-templating-DijqesiA.js +0 -1
  821. package/web-ui/build/static/mathematica-Cxll1Q10.js +0 -1
  822. package/web-ui/build/static/matlab-BJo2T1A-.js +0 -1
  823. package/web-ui/build/static/matlab-C6DlZX4l.js +0 -1
  824. package/web-ui/build/static/maxima-DJXO4sbL.js +0 -1
  825. package/web-ui/build/static/maxscript-DdLpUYBs.js +0 -1
  826. package/web-ui/build/static/mel-BIpfnSyZ.js +0 -1
  827. package/web-ui/build/static/mel-BYcTUZJW.js +0 -1
  828. package/web-ui/build/static/mercury-C_LSpbD8.js +0 -1
  829. package/web-ui/build/static/mermaid-D9yBWnrT.js +0 -1
  830. package/web-ui/build/static/mipsasm-nR_K2Ue-.js +0 -1
  831. package/web-ui/build/static/mizar-BeLUPncD.js +0 -1
  832. package/web-ui/build/static/mizar-BesIbZd9.js +0 -1
  833. package/web-ui/build/static/mojolicious-cBx3OWa-.js +0 -1
  834. package/web-ui/build/static/mongodb-DTWKy9ac.js +0 -1
  835. package/web-ui/build/static/monkey-B72bZC3c.js +0 -1
  836. package/web-ui/build/static/monkey-G9XELYPQ.js +0 -1
  837. package/web-ui/build/static/moonscript-BXYVQiqj.js +0 -1
  838. package/web-ui/build/static/moonscript-sDd-5knz.js +0 -1
  839. package/web-ui/build/static/n1ql-0vKSfFAO.js +0 -1
  840. package/web-ui/build/static/n1ql-C9_BSZfz.js +0 -1
  841. package/web-ui/build/static/n4js-B7Ct8dds.js +0 -1
  842. package/web-ui/build/static/nand2tetris-hdl-p9gpphTM.js +0 -1
  843. package/web-ui/build/static/naniscript-6ZVr8Aug.js +0 -1
  844. package/web-ui/build/static/nasm-Ca73yTUt.js +0 -1
  845. package/web-ui/build/static/neon-DNP49oyX.js +0 -1
  846. package/web-ui/build/static/nevod-Qhgt7Bce.js +0 -1
  847. package/web-ui/build/static/nginx-D5e7lu62.js +0 -1
  848. package/web-ui/build/static/nginx-DobnyESB.js +0 -1
  849. package/web-ui/build/static/nim-BPBivUOV.js +0 -1
  850. package/web-ui/build/static/nim-Baoug1Wa.js +0 -1
  851. package/web-ui/build/static/nix-CSPTQs5y.js +0 -1
  852. package/web-ui/build/static/nix-Dk4eNw49.js +0 -1
  853. package/web-ui/build/static/node-repl-NJNL8VFR.js +0 -1
  854. package/web-ui/build/static/nsis-BZ0oMzEw.js +0 -1
  855. package/web-ui/build/static/nsis-CKPCjtCU.js +0 -1
  856. package/web-ui/build/static/objectivec-BkfIRhhV.js +0 -1
  857. package/web-ui/build/static/objectivec-CnQgqhbJ.js +0 -1
  858. package/web-ui/build/static/ocaml-9rGNzRrK.js +0 -1
  859. package/web-ui/build/static/ocaml-CTolCqxL.js +0 -1
  860. package/web-ui/build/static/opencl-9Q3vRDxv.js +0 -1
  861. package/web-ui/build/static/openqasm-D2QiuFBp.js +0 -1
  862. package/web-ui/build/static/openscad-C3HyuzpB.js +0 -1
  863. package/web-ui/build/static/oxygene-4gi-VYy_.js +0 -1
  864. package/web-ui/build/static/oz-BGDEB-1A.js +0 -1
  865. package/web-ui/build/static/parigp-CfZzp1uE.js +0 -1
  866. package/web-ui/build/static/parser-UbGteTcy.js +0 -1
  867. package/web-ui/build/static/parser3-C-Jx-fy7.js +0 -1
  868. package/web-ui/build/static/pascal-D1_R0gW-.js +0 -1
  869. package/web-ui/build/static/pascaligo-B8C-98Np.js +0 -1
  870. package/web-ui/build/static/pcaxis-TGnlUKNs.js +0 -1
  871. package/web-ui/build/static/peoplecode-C5Vf1AH0.js +0 -1
  872. package/web-ui/build/static/perl-CBp1N62T.js +0 -1
  873. package/web-ui/build/static/perl-Z59j904t.js +0 -1
  874. package/web-ui/build/static/pf-Cq8B_xwQ.js +0 -1
  875. package/web-ui/build/static/pgsql-ofJbUHkL.js +0 -1
  876. package/web-ui/build/static/php-OlH7HLQJ.js +0 -1
  877. package/web-ui/build/static/php-extras-GqtrxLuk.js +0 -1
  878. package/web-ui/build/static/php-r09kMDOB.js +0 -1
  879. package/web-ui/build/static/php-template-18uT97Qo.js +0 -1
  880. package/web-ui/build/static/phpdoc-9tRFvup9.js +0 -1
  881. package/web-ui/build/static/plaintext-DsYT6Mu-.js +0 -1
  882. package/web-ui/build/static/plsql-RhWQNJVb.js +0 -1
  883. package/web-ui/build/static/pony-DD6JMLYI.js +0 -1
  884. package/web-ui/build/static/powerquery-CALow-bt.js +0 -1
  885. package/web-ui/build/static/powershell-C2QvIuKF.js +0 -1
  886. package/web-ui/build/static/powershell-yrbJEhCh.js +0 -1
  887. package/web-ui/build/static/processing-1T5w_Q03.js +0 -1
  888. package/web-ui/build/static/processing-DBim_dO-.js +0 -1
  889. package/web-ui/build/static/profile-Cdloh8mZ.js +0 -1
  890. package/web-ui/build/static/prolog-DRSsNnns.js +0 -1
  891. package/web-ui/build/static/prolog-D_ajweDr.js +0 -1
  892. package/web-ui/build/static/promql-BRuwn6Bn.js +0 -1
  893. package/web-ui/build/static/properties-D5Wyl4X4.js +0 -1
  894. package/web-ui/build/static/properties-kn4fl1bl.js +0 -1
  895. package/web-ui/build/static/protobuf-BMO76zWi.js +0 -1
  896. package/web-ui/build/static/protobuf-CTUCF-U-.js +0 -1
  897. package/web-ui/build/static/psl-CiqYdQbY.js +0 -1
  898. package/web-ui/build/static/pug-BLE2Qayj.js +0 -1
  899. package/web-ui/build/static/puppet-CFKLWXft.js +0 -1
  900. package/web-ui/build/static/puppet-DQci0Dl5.js +0 -1
  901. package/web-ui/build/static/pure-D2h_GynV.js +0 -1
  902. package/web-ui/build/static/purebasic-BF8MVw8V.js +0 -1
  903. package/web-ui/build/static/purebasic-BTtHiCkh.js +0 -1
  904. package/web-ui/build/static/purescript-D1ZSh-sH.js +0 -1
  905. package/web-ui/build/static/python-Cp9_Vdhb.js +0 -1
  906. package/web-ui/build/static/python-DdgNw8IW.js +0 -1
  907. package/web-ui/build/static/python-repl-DvK89VMC.js +0 -1
  908. package/web-ui/build/static/q-COaIgwhT.js +0 -1
  909. package/web-ui/build/static/q-Cm0dQkW8.js +0 -1
  910. package/web-ui/build/static/qml-BpsOqqJM.js +0 -1
  911. package/web-ui/build/static/qml-BziQXlU4.js +0 -1
  912. package/web-ui/build/static/qore-Cutz6g-2.js +0 -1
  913. package/web-ui/build/static/qsharp-B16619X1.js +0 -1
  914. package/web-ui/build/static/r-CFUIj5Hd.js +0 -1
  915. package/web-ui/build/static/r-CPrwCi5w.js +0 -1
  916. package/web-ui/build/static/racket-Bh08DFXF.js +0 -1
  917. package/web-ui/build/static/reason-BxjDq4e-.js +0 -1
  918. package/web-ui/build/static/reasonml-Ds5SsGP8.js +0 -1
  919. package/web-ui/build/static/regex-DhBIDIMI.js +0 -1
  920. package/web-ui/build/static/rego-DCwxZXcB.js +0 -1
  921. package/web-ui/build/static/renpy-C2fuQfqb.js +0 -1
  922. package/web-ui/build/static/rest-C52ZpxWQ.js +0 -1
  923. package/web-ui/build/static/rib-Cbl2Mzyj.js +0 -1
  924. package/web-ui/build/static/rip-BTOu5ZIE.js +0 -1
  925. package/web-ui/build/static/roboconf-3Oi2wuVk.js +0 -1
  926. package/web-ui/build/static/roboconf-ndLZLE39.js +0 -1
  927. package/web-ui/build/static/robotframework-BzHXiIj1.js +0 -1
  928. package/web-ui/build/static/routeros-CkpPoqx-.js +0 -1
  929. package/web-ui/build/static/rsl-C0bwOQ38.js +0 -1
  930. package/web-ui/build/static/ruby-C_hIhtuQ.js +0 -1
  931. package/web-ui/build/static/ruby-DvKfZPzj.js +0 -1
  932. package/web-ui/build/static/ruleslanguage-CbZJlddz.js +0 -1
  933. package/web-ui/build/static/rust-BFPIhB-X.js +0 -1
  934. package/web-ui/build/static/rust-sBpUq-qE.js +0 -1
  935. package/web-ui/build/static/sas-BCXvYN9x.js +0 -1
  936. package/web-ui/build/static/sas-D7GAsTY3.js +0 -1
  937. package/web-ui/build/static/sass-BdaErGMN.js +0 -1
  938. package/web-ui/build/static/scala-Cj81oCl9.js +0 -1
  939. package/web-ui/build/static/scala-CvbksfY6.js +0 -1
  940. package/web-ui/build/static/scheme-BM5ZqKnl.js +0 -1
  941. package/web-ui/build/static/scheme-BPvlu9Tk.js +0 -1
  942. package/web-ui/build/static/scilab-CJanLKQN.js +0 -1
  943. package/web-ui/build/static/scss-C53YF_7f.js +0 -1
  944. package/web-ui/build/static/scss-DPp8UZbr.js +0 -1
  945. package/web-ui/build/static/shell-CC9bQXMe.js +0 -1
  946. package/web-ui/build/static/shell-session-CuR3fbf-.js +0 -1
  947. package/web-ui/build/static/smali-CUgLls3D.js +0 -1
  948. package/web-ui/build/static/smali-YODSX8qt.js +0 -1
  949. package/web-ui/build/static/smalltalk-BMJQ4bbs.js +0 -1
  950. package/web-ui/build/static/smalltalk-BVGY3CTl.js +0 -1
  951. package/web-ui/build/static/smarty-C9aNt4-p.js +0 -1
  952. package/web-ui/build/static/sml-C3BIHhfq.js +0 -1
  953. package/web-ui/build/static/sml-DTipyRmY.js +0 -1
  954. package/web-ui/build/static/solidity-1yuPUqoC.js +0 -1
  955. package/web-ui/build/static/solution-file-BgzK4GOU.js +0 -1
  956. package/web-ui/build/static/soy-CFJXRvqc.js +0 -1
  957. package/web-ui/build/static/sparql-CAosYMpl.js +0 -1
  958. package/web-ui/build/static/splunk-spl-DkINtWr8.js +0 -1
  959. package/web-ui/build/static/sqf-DbrWIS2M.js +0 -1
  960. package/web-ui/build/static/sqf-nq8Q9J2W.js +0 -1
  961. package/web-ui/build/static/sql-9bwClhZQ.js +0 -1
  962. package/web-ui/build/static/sql-CqPkY-lX.js +0 -1
  963. package/web-ui/build/static/sql_more-CsY5ts77.js +0 -1
  964. package/web-ui/build/static/squirrel-BuqtzRBD.js +0 -1
  965. package/web-ui/build/static/stan-BNxBSglc.js +0 -1
  966. package/web-ui/build/static/stan-CZVMc34l.js +0 -1
  967. package/web-ui/build/static/stata-DKnVdHCd.js +0 -1
  968. package/web-ui/build/static/step21-Cu_TaBGF.js +0 -1
  969. package/web-ui/build/static/stylus-BS7-OJew.js +0 -1
  970. package/web-ui/build/static/stylus-DtFrp1Nk.js +0 -1
  971. package/web-ui/build/static/subunit-DDCoWkkc.js +0 -1
  972. package/web-ui/build/static/swift-BaguUZbl.js +0 -1
  973. package/web-ui/build/static/swift-mwBsb8Bx.js +0 -1
  974. package/web-ui/build/static/systemd-D6PpyDKk.js +0 -1
  975. package/web-ui/build/static/t4-cs-Cem8g4Ck.js +0 -1
  976. package/web-ui/build/static/t4-templating-BZo-HjmD.js +0 -1
  977. package/web-ui/build/static/t4-vb-B4oVnKa4.js +0 -1
  978. package/web-ui/build/static/taggerscript-DweAZ5pw.js +0 -1
  979. package/web-ui/build/static/tap-DpuvKHHF.js +0 -1
  980. package/web-ui/build/static/tap-hUKmJObZ.js +0 -1
  981. package/web-ui/build/static/tcl-BUvhAi7u.js +0 -1
  982. package/web-ui/build/static/tcl-Dsck63d8.js +0 -1
  983. package/web-ui/build/static/textile-CgKbqJ-j.js +0 -1
  984. package/web-ui/build/static/thrift-B5H6rApp.js +0 -1
  985. package/web-ui/build/static/toml-DggTpfOo.js +0 -1
  986. package/web-ui/build/static/tp-CazB2P2X.js +0 -1
  987. package/web-ui/build/static/tremor-B1jy7S5p.js +0 -1
  988. package/web-ui/build/static/tsx-BqF2lVDi.js +0 -1
  989. package/web-ui/build/static/tt2-BNoNXpEe.js +0 -1
  990. package/web-ui/build/static/turtle-B0evd5mn.js +0 -1
  991. package/web-ui/build/static/twig-B5A7nMdv.js +0 -1
  992. package/web-ui/build/static/twig-DZnLWvh8.js +0 -1
  993. package/web-ui/build/static/typescript-Bbe_P093.js +0 -1
  994. package/web-ui/build/static/typescript-BfhvmSSG.js +0 -1
  995. package/web-ui/build/static/typoscript-BjuZEIgw.js +0 -1
  996. package/web-ui/build/static/unrealscript-C3iUCFRi.js +0 -1
  997. package/web-ui/build/static/uorazor-CbZXwzIj.js +0 -1
  998. package/web-ui/build/static/uri-xMPSnp6m.js +0 -1
  999. package/web-ui/build/static/v-BKcGo5I6.js +0 -1
  1000. package/web-ui/build/static/vala-BRoBE4am.js +0 -1
  1001. package/web-ui/build/static/vala-B__Iyrma.js +0 -1
  1002. package/web-ui/build/static/vbnet-DBxlMRvN.js +0 -1
  1003. package/web-ui/build/static/vbnet-DjAXt5BE.js +0 -1
  1004. package/web-ui/build/static/vbscript-BNA4oANi.js +0 -1
  1005. package/web-ui/build/static/vbscript-html-o8ckLPKG.js +0 -1
  1006. package/web-ui/build/static/velocity-D7sc5ggA.js +0 -1
  1007. package/web-ui/build/static/verilog-BWJfMIng.js +0 -1
  1008. package/web-ui/build/static/verilog-jW2GPC--.js +0 -1
  1009. package/web-ui/build/static/vhdl-BIVlXRPa.js +0 -1
  1010. package/web-ui/build/static/vhdl-BeqdhhxD.js +0 -1
  1011. package/web-ui/build/static/vim-712lI4-g.js +0 -1
  1012. package/web-ui/build/static/vim-DMROTzr0.js +0 -1
  1013. package/web-ui/build/static/visual-basic-CQfbM-ta.js +0 -1
  1014. package/web-ui/build/static/warpscript-DFAvCXFQ.js +0 -1
  1015. package/web-ui/build/static/wasm-CiYoxBl0.js +0 -1
  1016. package/web-ui/build/static/web-idl-DoCkPK8y.js +0 -1
  1017. package/web-ui/build/static/wiki-bvz0AGzB.js +0 -1
  1018. package/web-ui/build/static/wolfram-fBuyFEgU.js +0 -1
  1019. package/web-ui/build/static/wren-DvATFxjF.js +0 -1
  1020. package/web-ui/build/static/x86asm-r4bPbUR_.js +0 -1
  1021. package/web-ui/build/static/xeora-B6iOnDJY.js +0 -1
  1022. package/web-ui/build/static/xl-Ce6B5slc.js +0 -1
  1023. package/web-ui/build/static/xml-DNjyPmhQ.js +0 -1
  1024. package/web-ui/build/static/xml-doc-DydogmZD.js +0 -1
  1025. package/web-ui/build/static/xojo-DCQLltvr.js +0 -1
  1026. package/web-ui/build/static/xquery-C-fAnA0H.js +0 -1
  1027. package/web-ui/build/static/xquery-CNeqzhLO.js +0 -1
  1028. package/web-ui/build/static/yaml-BsVaGsk5.js +0 -1
  1029. package/web-ui/build/static/yaml-kVZvwv_C.js +0 -1
  1030. package/web-ui/build/static/yang-B_gq9JEq.js +0 -1
  1031. package/web-ui/build/static/zephir-ECIXgXhX.js +0 -1
  1032. package/web-ui/build/static/zig-DY325EKG.js +0 -1
@@ -0,0 +1,430 @@
1
+ /**
2
+ * @file codebaseKnowledgeService.js
3
+ * @description Per-agent cache of structural knowledge the agent has
4
+ * already gathered about the codebase. Powers two layers:
5
+ *
6
+ * 1. The `## CODEBASE KNOWLEDGE` injection in the system prompt
7
+ * every turn (agentScheduler) — a salient index of "you already
8
+ * mapped these files" that the agent reads BEFORE deciding to
9
+ * issue another code-map / filesystem read.
10
+ *
11
+ * 2. A transparent cache underneath the code-map tool — when the
12
+ * agent does decide to re-issue, the tool can serve from cache
13
+ * (no parser run, no disk read) provided the file hasn't been
14
+ * written to since the last cache fill.
15
+ *
16
+ * Together these address the production-observed pattern in the
17
+ * Monopoly mission (1556 messages, 8.5h, see DESIGN doc): 22
18
+ * skeleton calls on the same file, 49 reads of the EXACT same
19
+ * (file, line-range) tuple, 80% of redundant calls happening
20
+ * while the original tool result was STILL in the active context
21
+ * window — i.e. the agent had the answer in front of it but had
22
+ * no salient signal to that effect.
23
+ *
24
+ * Freshness model (defense in depth):
25
+ * - `markDirty` is the FAST-PATH signal — called from the tools we
26
+ * know about (filesystem write/append/delete/copy/move,
27
+ * file-content-replace). Cheap; no stat needed when we already
28
+ * know we wrote.
29
+ * - mtime-on-lookup is the CATCH-ALL — stats the file on every
30
+ * cache hit, compares against the mtime captured at record
31
+ * time, treats any mismatch as dirty. Catches mutations from
32
+ * sources `markDirty` doesn't know about: terminal commands
33
+ * (sed -i, prettier --write, git checkout, npm install),
34
+ * external editors, build outputs, etc.
35
+ *
36
+ * Design constraints honored:
37
+ * - per-agent isolation (no cross-agent leakage)
38
+ * - never blocks the agent's turn — every public method is
39
+ * defensively try/catched at the call sites
40
+ * - bounded growth (MAX_FILES_PER_AGENT)
41
+ * - workingDir-relative canonicalization, no /src/-token magic
42
+ * (monorepo-safe; the old heuristic collided across apps/* in
43
+ * Yarn/pnpm workspaces and across vendor/* sibling paths)
44
+ * - asymmetric-lie prevention: a record without retrievable
45
+ * content is rejected at the door, never created as a stub
46
+ */
47
+
48
+ import { promises as fs } from 'fs';
49
+
50
+ const MAX_FILES_PER_AGENT = 50; // LRU cap; prevents unbounded growth
51
+ const MAX_RANGE_KEYS_PER_FILE = 30; // bound per-file growth (multiple ranges)
52
+
53
+ let _singleton = null;
54
+
55
+ class CodebaseKnowledgeService {
56
+ constructor(logger = null) {
57
+ this.logger = logger;
58
+ // agentId → Map(canonicalPath → entry)
59
+ this._byAgent = new Map();
60
+ }
61
+
62
+ /**
63
+ * Canonicalize a path so:
64
+ * 1. forward slashes only (Windows backslashes normalized)
65
+ * 2. relative to workingDir when an absolute path falls under it
66
+ * 3. lower-cased drive letter on Windows so `C:` and `c:` collide
67
+ * 4. trailing slash stripped
68
+ * 5. `./` prefix stripped
69
+ *
70
+ * Monorepo-safe: TWO files like `apps/web/src/Button.tsx` and
71
+ * `apps/api/src/Button.tsx` produce TWO distinct keys. The previous
72
+ * implementation collapsed both to `src/Button.tsx`, silently
73
+ * returning the wrong file's content on lookup.
74
+ *
75
+ * No regex — String.prototype only — so the path-handling logic is
76
+ * easy to audit and step through.
77
+ *
78
+ * @param {string} rawPath - the path as the tool received it (relative or absolute)
79
+ * @param {string|null} workingDir - the agent's CWD; absolute paths
80
+ * under it become relative. Pass null/undefined if not known —
81
+ * we'll still canonicalize separators + casing.
82
+ */
83
+ _canonicalize(rawPath, workingDir = null) {
84
+ if (typeof rawPath !== 'string') return null;
85
+ let p = rawPath.split('\\').join('/').trim();
86
+ if (!p) return null;
87
+
88
+ // Strip trailing slashes for stable keying ("src/" === "src").
89
+ while (p.length > 1 && p.endsWith('/')) p = p.slice(0, -1);
90
+ // Strip leading "./".
91
+ while (p.startsWith('./')) p = p.slice(2);
92
+ if (!p) return null;
93
+
94
+ // Windows drive-letter case normalization: "C:/foo" === "c:/foo".
95
+ if (p.length >= 2 && p[1] === ':') {
96
+ p = p[0].toLowerCase() + p.slice(1);
97
+ }
98
+
99
+ if (workingDir) {
100
+ let wd = workingDir.split('\\').join('/').trim();
101
+ while (wd.length > 1 && wd.endsWith('/')) wd = wd.slice(0, -1);
102
+ if (wd.length >= 2 && wd[1] === ':') wd = wd[0].toLowerCase() + wd.slice(1);
103
+ // If absolute path falls under workingDir, store as relative.
104
+ // Add a trailing slash to wd so we don't match a sibling whose
105
+ // name starts with the same prefix (`/foo` vs `/foobar`).
106
+ const wdSlash = wd + '/';
107
+ if (p === wd) return '.';
108
+ if (p.startsWith(wdSlash)) return p.slice(wdSlash.length);
109
+ }
110
+
111
+ return p;
112
+ }
113
+
114
+ /**
115
+ * Reconstruct an absolute path from the raw path + workingDir.
116
+ * String-native (no regex). Used for the mtime stat call.
117
+ *
118
+ * Returns null if we can't determine an absolute path (e.g. relative
119
+ * path given with no workingDir). In that case the caller falls back
120
+ * to the pre-mtime behaviour (no freshness check; rely on markDirty).
121
+ */
122
+ _toAbsolutePath(rawPath, workingDir) {
123
+ if (typeof rawPath !== 'string' || !rawPath) return null;
124
+ let p = rawPath.split('\\').join('/').trim();
125
+ if (!p) return null;
126
+ // Unix absolute: starts with /
127
+ if (p.startsWith('/')) return p;
128
+ // Windows absolute: X: or X:/
129
+ if (p.length >= 2 && p[1] === ':') {
130
+ return p[0].toLowerCase() + p.slice(1);
131
+ }
132
+ // Relative — need workingDir to anchor.
133
+ if (!workingDir) return null;
134
+ let wd = workingDir.split('\\').join('/').trim();
135
+ while (wd.length > 1 && wd.endsWith('/')) wd = wd.slice(0, -1);
136
+ if (wd.length >= 2 && wd[1] === ':') wd = wd[0].toLowerCase() + wd.slice(1);
137
+ while (p.startsWith('./')) p = p.slice(2);
138
+ return wd + '/' + p;
139
+ }
140
+
141
+ _agentMap(agentId) {
142
+ if (!this._byAgent.has(agentId)) {
143
+ this._byAgent.set(agentId, new Map());
144
+ }
145
+ return this._byAgent.get(agentId);
146
+ }
147
+
148
+ /**
149
+ * Touch an entry to keep it fresh under LRU (most-recently-accessed wins).
150
+ * @private
151
+ */
152
+ _touch(agentId, canonical) {
153
+ const m = this._agentMap(agentId);
154
+ const entry = m.get(canonical);
155
+ if (!entry) return;
156
+ m.delete(canonical);
157
+ m.set(canonical, entry);
158
+ // Evict oldest if over cap
159
+ while (m.size > MAX_FILES_PER_AGENT) {
160
+ const oldestKey = m.keys().next().value;
161
+ m.delete(oldestKey);
162
+ this.logger?.debug?.('codebaseKnowledge: evicted oldest', { agentId, file: oldestKey });
163
+ }
164
+ }
165
+
166
+ /**
167
+ * Record that a skeleton was just fetched for a file.
168
+ *
169
+ * Asymmetric-lie prevention: if content is empty/null we REJECT the
170
+ * record outright rather than creating a metadata-only entry. The
171
+ * old behaviour (drop content over 200KB but keep the metadata)
172
+ * meant the index injection advertised entries the lookup couldn't
173
+ * fulfil — actively misleading the agent. The 200KB cap is gone:
174
+ * RAM is cheap, LRU + per-file/per-agent counts are sufficient
175
+ * bounds.
176
+ *
177
+ * @param {string} agentId
178
+ * @param {string} rawPath
179
+ * @param {string} content
180
+ * @param {string|null} [workingDir] - the agent's CWD; used to
181
+ * anchor canonicalization. Optional for backward-compat.
182
+ */
183
+ async recordSkeleton(agentId, rawPath, content, workingDir = null) {
184
+ if (typeof content !== 'string' || content.length === 0) {
185
+ this.logger?.debug?.('codebaseKnowledge: skipping recordSkeleton (no content)', {
186
+ agentId, rawPath,
187
+ });
188
+ return;
189
+ }
190
+ const canonical = this._canonicalize(rawPath, workingDir);
191
+ if (!canonical) return;
192
+
193
+ // Capture mtime for the lookup-time freshness check. Best-effort:
194
+ // if stat fails (file gone? synthetic test path?), we just skip
195
+ // the mtime check at lookup — markDirty remains the only signal.
196
+ const absPath = this._toAbsolutePath(rawPath, workingDir);
197
+ let recordedMtimeMs = null;
198
+ if (absPath) {
199
+ try {
200
+ const stat = await fs.stat(absPath);
201
+ recordedMtimeMs = stat.mtimeMs;
202
+ } catch (e) {
203
+ this.logger?.debug?.('codebaseKnowledge: stat at record time failed (mtime check disabled for this entry)', {
204
+ agentId, absPath, error: e.message,
205
+ });
206
+ }
207
+ }
208
+
209
+ const m = this._agentMap(agentId);
210
+ const existing = m.get(canonical) || { ranges: new Map() };
211
+ existing.skeleton = { content, ts: Date.now(), absPath, recordedMtimeMs };
212
+ existing.dirty = false;
213
+ existing.lastUpdated = Date.now();
214
+ m.set(canonical, existing);
215
+ this._touch(agentId, canonical);
216
+ }
217
+
218
+ /**
219
+ * Record that a specific line range was fetched for a file.
220
+ *
221
+ * Same asymmetric-lie protection as recordSkeleton: no content →
222
+ * no entry.
223
+ */
224
+ async recordRange(agentId, rawPath, startLine, endLine, content, workingDir = null) {
225
+ if (typeof content !== 'string' || content.length === 0) {
226
+ this.logger?.debug?.('codebaseKnowledge: skipping recordRange (no content)', {
227
+ agentId, rawPath, startLine, endLine,
228
+ });
229
+ return;
230
+ }
231
+ if (typeof startLine !== 'number' || typeof endLine !== 'number') return;
232
+ const canonical = this._canonicalize(rawPath, workingDir);
233
+ if (!canonical) return;
234
+
235
+ // Capture mtime + absPath at the file level so range lookups can
236
+ // freshness-check the same way skeleton lookups do.
237
+ const absPath = this._toAbsolutePath(rawPath, workingDir);
238
+ let recordedMtimeMs = null;
239
+ if (absPath) {
240
+ try {
241
+ const stat = await fs.stat(absPath);
242
+ recordedMtimeMs = stat.mtimeMs;
243
+ } catch (e) {
244
+ this.logger?.debug?.('codebaseKnowledge: stat at record-range time failed', {
245
+ agentId, absPath, error: e.message,
246
+ });
247
+ }
248
+ }
249
+
250
+ const m = this._agentMap(agentId);
251
+ const existing = m.get(canonical) || { ranges: new Map() };
252
+ if (!(existing.ranges instanceof Map)) existing.ranges = new Map();
253
+ const key = `${startLine}-${endLine}`;
254
+ existing.ranges.set(key, { content, ts: Date.now(), absPath, recordedMtimeMs });
255
+ // Bound per-file ranges (FIFO within a file — file-level eviction is LRU).
256
+ while (existing.ranges.size > MAX_RANGE_KEYS_PER_FILE) {
257
+ const oldestKey = existing.ranges.keys().next().value;
258
+ existing.ranges.delete(oldestKey);
259
+ }
260
+ existing.dirty = false;
261
+ existing.lastUpdated = Date.now();
262
+ m.set(canonical, existing);
263
+ this._touch(agentId, canonical);
264
+ }
265
+
266
+ /**
267
+ * Mark a file as modified — invalidates cached skeleton + ranges.
268
+ * Called by filesystem write/append/delete and file-content-replace hooks.
269
+ */
270
+ markDirty(agentId, rawPath, workingDir = null) {
271
+ const canonical = this._canonicalize(rawPath, workingDir);
272
+ if (!canonical) return;
273
+ const m = this._agentMap(agentId);
274
+ const e = m.get(canonical);
275
+ if (e) {
276
+ e.dirty = true;
277
+ e.lastUpdated = Date.now();
278
+ }
279
+ }
280
+
281
+ /**
282
+ * Best-effort mtime freshness check. Returns true if the file has
283
+ * been modified since the recorded mtime, OR if the file is gone
284
+ * or unreadable. Returns false if the file is unchanged. Returns
285
+ * null when no check is possible (no absPath / no recorded mtime
286
+ * captured at record time) — caller should treat null as "no
287
+ * signal, keep going".
288
+ * @private
289
+ */
290
+ async _isStale(entry) {
291
+ if (!entry || !entry.absPath || typeof entry.recordedMtimeMs !== 'number') {
292
+ return null;
293
+ }
294
+ try {
295
+ const stat = await fs.stat(entry.absPath);
296
+ return stat.mtimeMs > entry.recordedMtimeMs;
297
+ } catch {
298
+ // File gone, unreadable, or otherwise inaccessible — treat as stale.
299
+ return true;
300
+ }
301
+ }
302
+
303
+ /**
304
+ * Look up cached skeleton content. Returns null if not cached, dirty,
305
+ * or stale per mtime check. Caller should fall through to a fresh
306
+ * fetch on null. ASYNC because of the mtime stat.
307
+ */
308
+ async lookupSkeleton(agentId, rawPath, workingDir = null) {
309
+ const canonical = this._canonicalize(rawPath, workingDir);
310
+ if (!canonical) return null;
311
+ const e = this._agentMap(agentId).get(canonical);
312
+ if (!e || e.dirty) return null;
313
+ if (!e.skeleton || !e.skeleton.content) return null;
314
+
315
+ // mtime catch-all. If the file was mutated by something `markDirty`
316
+ // doesn't know about (terminal, external editor, build output),
317
+ // this is where we catch it. Flip the entry to dirty so the next
318
+ // index injection shows STALE; return null so the agent re-fetches.
319
+ const stale = await this._isStale(e.skeleton);
320
+ if (stale === true) {
321
+ e.dirty = true;
322
+ return null;
323
+ }
324
+ return { content: e.skeleton.content, canonical };
325
+ }
326
+
327
+ /**
328
+ * Look up a cached line range. Returns null if missing, dirty, stale,
329
+ * or no exact range match. We don't currently slice cached ranges —
330
+ * exact matches only. ASYNC because of the mtime stat.
331
+ */
332
+ async lookupRange(agentId, rawPath, startLine, endLine, workingDir = null) {
333
+ const canonical = this._canonicalize(rawPath, workingDir);
334
+ if (!canonical) return null;
335
+ const e = this._agentMap(agentId).get(canonical);
336
+ if (!e || e.dirty || !(e.ranges instanceof Map)) return null;
337
+ const key = `${startLine}-${endLine}`;
338
+ const hit = e.ranges.get(key);
339
+ if (!hit || !hit.content) return null;
340
+
341
+ // Range entries carry their own absPath/recordedMtimeMs (captured
342
+ // at record-time). If a write happens between record and lookup,
343
+ // this catches it even for ranges that were never touched by
344
+ // markDirty.
345
+ const stale = await this._isStale(hit);
346
+ if (stale === true) {
347
+ // Mark the whole file dirty — any range on a mutated file is suspect.
348
+ e.dirty = true;
349
+ return null;
350
+ }
351
+ return { content: hit.content, canonical };
352
+ }
353
+
354
+ /**
355
+ * Build the system-prompt index block for this agent. Returns an empty
356
+ * string if nothing is cached — keeps the system prompt clean for new
357
+ * sessions and for agents that don't do code work.
358
+ */
359
+ buildIndexBlock(agentId) {
360
+ const m = this._byAgent.get(agentId);
361
+ if (!m || m.size === 0) return '';
362
+
363
+ // Sorted: dirty (STALE) entries first to grab attention, then by
364
+ // most-recently-accessed (the Map preserves insertion order, and
365
+ // _touch re-inserts on each access, so iteration order is LRU).
366
+ const entries = Array.from(m.entries());
367
+ const dirty = entries.filter(([_, e]) => e.dirty);
368
+ const fresh = entries.filter(([_, e]) => !e.dirty).reverse();
369
+
370
+ // Format: MINIMAL — just the file list. The explanatory paragraph
371
+ // ("re-issuing is wasted work, the cache will serve…") that earlier
372
+ // versions of this code emitted was REMOVED after empirical A/B
373
+ // testing showed it actively REGRESSED smaller models (gpt-4.1-nano
374
+ // went 5/5 to redundant `code-map skeleton` calls on the explained
375
+ // variant; 1/5 on the minimal variant; 0/5 with no index at all).
376
+ // Hypothesis: the verbose text repeats the tokens "code-map" and
377
+ // "skeleton" multiple times, which acts as an in-context-learning
378
+ // cue for the model to emit that exact pattern. The minimal list
379
+ // is descriptive (what's in cache) without prescriptive boilerplate
380
+ // (what to do about it) — the prescriptive guidance lives in the
381
+ // tool descriptions / OPERATING POSTURE, surfaced once, not per-turn.
382
+ // See tmp-compaction-experiment/behavior-test.mjs for the harness.
383
+ const lines = [
384
+ '',
385
+ '## CODEBASE KNOWLEDGE (cached this session)',
386
+ '',
387
+ ];
388
+ for (const [file, e] of [...dirty, ...fresh]) {
389
+ const what = [];
390
+ // Just `skeleton` — no `#msgIdx` citation. The phantom-citation
391
+ // feature never actually worked end-to-end (messageIndex was
392
+ // hard-coded to -1 because no caller populated it, and the LLM
393
+ // had no way to navigate by message number anyway).
394
+ if (e.skeleton) what.push('skeleton');
395
+ if (e.ranges instanceof Map && e.ranges.size > 0) {
396
+ // Show up to 3 most-recent range labels for compactness.
397
+ const rks = Array.from(e.ranges.keys()).slice(-3);
398
+ what.push(`ranges=[${rks.join(', ')}]`);
399
+ }
400
+ const flag = e.dirty ? ' STALE' : ' current';
401
+ lines.push(`- \`${file}\` ${what.join(' ')} ${flag}`);
402
+ }
403
+ return lines.join('\n');
404
+ }
405
+
406
+ /**
407
+ * Drop all knowledge for one agent — called when agent is deleted or reset.
408
+ */
409
+ clear(agentId) {
410
+ this._byAgent.delete(agentId);
411
+ }
412
+
413
+ /** For tests: reset everything. */
414
+ _resetForTests() {
415
+ this._byAgent.clear();
416
+ }
417
+ }
418
+
419
+ /** Singleton accessor. Mirrors the pattern used by memoryService. */
420
+ export function getCodebaseKnowledgeService(logger = null) {
421
+ if (!_singleton) _singleton = new CodebaseKnowledgeService(logger);
422
+ return _singleton;
423
+ }
424
+
425
+ /** For tests: replace the singleton. */
426
+ export function _resetCodebaseKnowledgeServiceForTests() {
427
+ _singleton = null;
428
+ }
429
+
430
+ export default CodebaseKnowledgeService;