@newsails/veil-studio 1.0.1 → 2.0.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 (1620) hide show
  1. package/README.md +11 -1
  2. package/nuxt-app/.output/public/200.html +9 -6
  3. package/nuxt-app/.output/public/404.html +9 -6
  4. package/nuxt-app/.output/public/_nuxt/abap.DLDM7-KI.js +1 -0
  5. package/nuxt-app/.output/public/_nuxt/apex.DNDY2TF8.js +1 -0
  6. package/nuxt-app/.output/public/_nuxt/azcli.Y6nb8tq_.js +1 -0
  7. package/nuxt-app/.output/public/_nuxt/bat.BwHxbl9M.js +1 -0
  8. package/nuxt-app/.output/public/_nuxt/bicep.CFznDFnq.js +2 -0
  9. package/nuxt-app/.output/public/_nuxt/cameligo.Bf6VGUru.js +1 -0
  10. package/nuxt-app/.output/public/_nuxt/clojure.Dnu-v4kV.js +1 -0
  11. package/nuxt-app/.output/public/_nuxt/codicon.ngg6Pgfi.ttf +0 -0
  12. package/nuxt-app/.output/public/_nuxt/coffee.Bd8akH9Z.js +1 -0
  13. package/nuxt-app/.output/public/_nuxt/cpp.BbWJElDN.js +1 -0
  14. package/nuxt-app/.output/public/_nuxt/csharp.Co3qMtFm.js +1 -0
  15. package/nuxt-app/.output/public/_nuxt/csp.D-4FJmMZ.js +1 -0
  16. package/nuxt-app/.output/public/_nuxt/css.DdJfP1eB.js +3 -0
  17. package/nuxt-app/.output/public/_nuxt/css.worker-V_k7FkW4.js +93 -0
  18. package/nuxt-app/.output/public/_nuxt/cssMode.Cn3v6mN5.js +1 -0
  19. package/nuxt-app/.output/public/_nuxt/cursor-editorTextHighlight.kG3uUOwL.svg +8 -0
  20. package/nuxt-app/.output/public/_nuxt/cypher.cTPe9QuQ.js +1 -0
  21. package/nuxt-app/.output/public/_nuxt/dart.BOtBlQCF.js +1 -0
  22. package/nuxt-app/.output/public/_nuxt/dockerfile.BG73LgW2.js +1 -0
  23. package/nuxt-app/.output/public/_nuxt/ecl.BEgZUVRK.js +1 -0
  24. package/nuxt-app/.output/public/_nuxt/editor.j6bgW0Rn.css +1 -0
  25. package/nuxt-app/.output/public/_nuxt/editor.main.BXnwZDNv.js +913 -0
  26. package/nuxt-app/.output/public/_nuxt/elixir.BkW5O-1t.js +1 -0
  27. package/nuxt-app/.output/public/_nuxt/entry.BTBLr2_9.js +178 -0
  28. package/nuxt-app/.output/public/_nuxt/entry.Bi330XvK.css +1 -0
  29. package/nuxt-app/.output/public/_nuxt/{error-404.VEDCv4Jx.js → error-404.BtcTx28A.js} +1 -1
  30. package/nuxt-app/.output/public/_nuxt/{error-500.DdyAxHjI.js → error-500.DOSB4mL7.js} +1 -1
  31. package/nuxt-app/.output/public/_nuxt/flow9.BeJ5waoc.js +1 -0
  32. package/nuxt-app/.output/public/_nuxt/freemarker2.DTkTX0AV.js +3 -0
  33. package/nuxt-app/.output/public/_nuxt/fsharp.PahG7c26.js +1 -0
  34. package/nuxt-app/.output/public/_nuxt/go.acbASCJo.js +1 -0
  35. package/nuxt-app/.output/public/_nuxt/graphql.BxJiqAUM.js +1 -0
  36. package/nuxt-app/.output/public/_nuxt/handlebars.1jygEZpg.js +1 -0
  37. package/nuxt-app/.output/public/_nuxt/hcl.DtV1sZF8.js +1 -0
  38. package/nuxt-app/.output/public/_nuxt/html.BpM62ame.js +1 -0
  39. package/nuxt-app/.output/public/_nuxt/html.worker-CAp20DN1.js +470 -0
  40. package/nuxt-app/.output/public/_nuxt/htmlMode.Cy5jAJfq.js +1 -0
  41. package/nuxt-app/.output/public/_nuxt/index.BLgiPK1n.js +415 -0
  42. package/nuxt-app/.output/public/_nuxt/index.DgMzrTGH.css +1 -0
  43. package/nuxt-app/.output/public/_nuxt/ini.Kd9XrMLS.js +1 -0
  44. package/nuxt-app/.output/public/_nuxt/java.CXBNlu9o.js +1 -0
  45. package/nuxt-app/.output/public/_nuxt/javascript.BUf38kZw.js +1 -0
  46. package/nuxt-app/.output/public/_nuxt/json.worker-6D_tMdcV.js +58 -0
  47. package/nuxt-app/.output/public/_nuxt/jsonMode.C0IX_rGY.js +7 -0
  48. package/nuxt-app/.output/public/_nuxt/julia.cl7-CwDS.js +1 -0
  49. package/nuxt-app/.output/public/_nuxt/kotlin.s7OhZKlX.js +1 -0
  50. package/nuxt-app/.output/public/_nuxt/less.9HpZscsL.js +2 -0
  51. package/nuxt-app/.output/public/_nuxt/lexon.OrD6JF1K.js +1 -0
  52. package/nuxt-app/.output/public/_nuxt/liquid.DL96V_07.js +1 -0
  53. package/nuxt-app/.output/public/_nuxt/lspLanguageFeatures.xehlwcr0.js +4 -0
  54. package/nuxt-app/.output/public/_nuxt/lua.Cyyb5UIc.js +1 -0
  55. package/nuxt-app/.output/public/_nuxt/m3.B8OfTtLu.js +1 -0
  56. package/nuxt-app/.output/public/_nuxt/markdown.BFxVWTOG.js +1 -0
  57. package/nuxt-app/.output/public/_nuxt/mdx.BNt0FFnz.js +1 -0
  58. package/nuxt-app/.output/public/_nuxt/mips.CiqrrVzr.js +1 -0
  59. package/nuxt-app/.output/public/_nuxt/msdax.DmeGPVcC.js +1 -0
  60. package/nuxt-app/.output/public/_nuxt/mysql.C_tMU-Nz.js +1 -0
  61. package/nuxt-app/.output/public/_nuxt/objective-c.BDtDVThU.js +1 -0
  62. package/nuxt-app/.output/public/_nuxt/pascal.vHIfCaH5.js +1 -0
  63. package/nuxt-app/.output/public/_nuxt/pascaligo.DtZ0uQbO.js +1 -0
  64. package/nuxt-app/.output/public/_nuxt/perl.Ub6l9XKa.js +1 -0
  65. package/nuxt-app/.output/public/_nuxt/pgsql.BlNEE0v7.js +1 -0
  66. package/nuxt-app/.output/public/_nuxt/php.BBUBE1dy.js +1 -0
  67. package/nuxt-app/.output/public/_nuxt/pla.DSh2-awV.js +1 -0
  68. package/nuxt-app/.output/public/_nuxt/postiats.CocnycG-.js +1 -0
  69. package/nuxt-app/.output/public/_nuxt/powerquery.tScXyioY.js +1 -0
  70. package/nuxt-app/.output/public/_nuxt/powershell.COWaemsV.js +1 -0
  71. package/nuxt-app/.output/public/_nuxt/protobuf.Brw8urJB.js +2 -0
  72. package/nuxt-app/.output/public/_nuxt/pug.8SOpv6rk.js +1 -0
  73. package/nuxt-app/.output/public/_nuxt/python.DjrP6G10.js +1 -0
  74. package/nuxt-app/.output/public/_nuxt/qsharp.Bw9ernYp.js +1 -0
  75. package/nuxt-app/.output/public/_nuxt/r.j7ic8hl3.js +1 -0
  76. package/nuxt-app/.output/public/_nuxt/razor.Du9jUt14.js +1 -0
  77. package/nuxt-app/.output/public/_nuxt/redis.Bu5POkcn.js +1 -0
  78. package/nuxt-app/.output/public/_nuxt/redshift.Bs9aos_-.js +1 -0
  79. package/nuxt-app/.output/public/_nuxt/restructuredtext.CqXO7rUv.js +1 -0
  80. package/nuxt-app/.output/public/_nuxt/ruby.zBfavPgS.js +1 -0
  81. package/nuxt-app/.output/public/_nuxt/rust.BzKRNQWT.js +1 -0
  82. package/nuxt-app/.output/public/_nuxt/sb.BBc9UKZt.js +1 -0
  83. package/nuxt-app/.output/public/_nuxt/scala.D9hQfWCl.js +1 -0
  84. package/nuxt-app/.output/public/_nuxt/scheme.BPhDTwHR.js +1 -0
  85. package/nuxt-app/.output/public/_nuxt/scss.CBJaRo0y.js +3 -0
  86. package/nuxt-app/.output/public/_nuxt/shell.DiJ1NA_G.js +1 -0
  87. package/nuxt-app/.output/public/_nuxt/solidity.Db0IVjzk.js +1 -0
  88. package/nuxt-app/.output/public/_nuxt/sophia.CnS9iZB_.js +1 -0
  89. package/nuxt-app/.output/public/_nuxt/sparql.CJmd_6j2.js +1 -0
  90. package/nuxt-app/.output/public/_nuxt/sql.ClhHkBeG.js +1 -0
  91. package/nuxt-app/.output/public/_nuxt/st.CHwy0fLd.js +1 -0
  92. package/nuxt-app/.output/public/_nuxt/swift.Bqt4WxQ4.js +3 -0
  93. package/nuxt-app/.output/public/_nuxt/systemverilog.Bs9z6M-B.js +1 -0
  94. package/nuxt-app/.output/public/_nuxt/tcl.Dm6ycUr_.js +1 -0
  95. package/nuxt-app/.output/public/_nuxt/ts.worker-B0yERHG1.js +67731 -0
  96. package/nuxt-app/.output/public/_nuxt/tsMode.BSdAUy8X.js +11 -0
  97. package/nuxt-app/.output/public/_nuxt/twig.Csy3S7wG.js +1 -0
  98. package/nuxt-app/.output/public/_nuxt/typescript.DGCEyVS5.js +1 -0
  99. package/nuxt-app/.output/public/_nuxt/typespec.Btyra-wh.js +1 -0
  100. package/nuxt-app/.output/public/_nuxt/vb.Db0cS2oM.js +1 -0
  101. package/nuxt-app/.output/public/_nuxt/{vue.-sixQ7xP.DWUp_HHF.js → vue.-sixQ7xP.BPDPwbEb.js} +1 -1
  102. package/nuxt-app/.output/public/_nuxt/wgsl.BTesnYfV.js +298 -0
  103. package/nuxt-app/.output/public/_nuxt/xml.B1Yz6scE.js +1 -0
  104. package/nuxt-app/.output/public/_nuxt/yaml.DyJuxYw-.js +1 -0
  105. package/nuxt-app/.output/public/icons/default_file.svg +1 -0
  106. package/nuxt-app/.output/public/icons/default_folder.svg +54 -0
  107. package/nuxt-app/.output/public/icons/default_folder_opened.svg +58 -0
  108. package/nuxt-app/.output/public/icons/default_root_folder.svg +1 -0
  109. package/nuxt-app/.output/public/icons/default_root_folder_opened.svg +1 -0
  110. package/nuxt-app/.output/public/icons/file_type_access.svg +1 -0
  111. package/nuxt-app/.output/public/icons/file_type_access2.svg +1 -0
  112. package/nuxt-app/.output/public/icons/file_type_actionscript.svg +1 -0
  113. package/nuxt-app/.output/public/icons/file_type_actionscript2.svg +1 -0
  114. package/nuxt-app/.output/public/icons/file_type_ada.svg +1 -0
  115. package/nuxt-app/.output/public/icons/file_type_advpl.svg +1 -0
  116. package/nuxt-app/.output/public/icons/file_type_affectscript.svg +1 -0
  117. package/nuxt-app/.output/public/icons/file_type_affinity.svg +1 -0
  118. package/nuxt-app/.output/public/icons/file_type_affinitydesigner.svg +1 -0
  119. package/nuxt-app/.output/public/icons/file_type_affinityphoto.svg +1 -0
  120. package/nuxt-app/.output/public/icons/file_type_affinitypublisher.svg +1 -0
  121. package/nuxt-app/.output/public/icons/file_type_agda.svg +1 -0
  122. package/nuxt-app/.output/public/icons/file_type_agents.svg +1 -0
  123. package/nuxt-app/.output/public/icons/file_type_ai.svg +1 -0
  124. package/nuxt-app/.output/public/icons/file_type_ai2.svg +1 -0
  125. package/nuxt-app/.output/public/icons/file_type_al.svg +1 -0
  126. package/nuxt-app/.output/public/icons/file_type_al_dal.svg +11 -0
  127. package/nuxt-app/.output/public/icons/file_type_alchemy.svg +1 -0
  128. package/nuxt-app/.output/public/icons/file_type_allcontributors.svg +1 -0
  129. package/nuxt-app/.output/public/icons/file_type_alloy.svg +1 -0
  130. package/nuxt-app/.output/public/icons/file_type_allure.svg +49 -0
  131. package/nuxt-app/.output/public/icons/file_type_angular.svg +1 -0
  132. package/nuxt-app/.output/public/icons/file_type_ansible.svg +1 -0
  133. package/nuxt-app/.output/public/icons/file_type_antlers_html.svg +1 -0
  134. package/nuxt-app/.output/public/icons/file_type_antlr.svg +1 -0
  135. package/nuxt-app/.output/public/icons/file_type_anyscript.svg +1 -0
  136. package/nuxt-app/.output/public/icons/file_type_apache.svg +1 -0
  137. package/nuxt-app/.output/public/icons/file_type_apex.svg +1 -0
  138. package/nuxt-app/.output/public/icons/file_type_api_extractor.svg +1 -0
  139. package/nuxt-app/.output/public/icons/file_type_apib.svg +1 -0
  140. package/nuxt-app/.output/public/icons/file_type_apib2.svg +1 -0
  141. package/nuxt-app/.output/public/icons/file_type_apl.svg +1 -0
  142. package/nuxt-app/.output/public/icons/file_type_applescript.svg +1 -0
  143. package/nuxt-app/.output/public/icons/file_type_appscript.svg +1 -0
  144. package/nuxt-app/.output/public/icons/file_type_appsemble.svg +1 -0
  145. package/nuxt-app/.output/public/icons/file_type_appveyor.svg +1 -0
  146. package/nuxt-app/.output/public/icons/file_type_arduino.svg +1 -0
  147. package/nuxt-app/.output/public/icons/file_type_asciidoc.svg +1 -0
  148. package/nuxt-app/.output/public/icons/file_type_aseprite.svg +1 -0
  149. package/nuxt-app/.output/public/icons/file_type_asp.svg +1 -0
  150. package/nuxt-app/.output/public/icons/file_type_aspx.svg +1 -0
  151. package/nuxt-app/.output/public/icons/file_type_assembly.svg +1 -0
  152. package/nuxt-app/.output/public/icons/file_type_assembly_script.svg +1 -0
  153. package/nuxt-app/.output/public/icons/file_type_astro.svg +1 -0
  154. package/nuxt-app/.output/public/icons/file_type_astroconfig.svg +1 -0
  155. package/nuxt-app/.output/public/icons/file_type_atom.svg +1 -0
  156. package/nuxt-app/.output/public/icons/file_type_ats.svg +1 -0
  157. package/nuxt-app/.output/public/icons/file_type_attw.svg +1 -0
  158. package/nuxt-app/.output/public/icons/file_type_audio.svg +1 -0
  159. package/nuxt-app/.output/public/icons/file_type_aurelia.svg +1 -0
  160. package/nuxt-app/.output/public/icons/file_type_autohotkey.svg +1 -0
  161. package/nuxt-app/.output/public/icons/file_type_autoit.svg +1 -0
  162. package/nuxt-app/.output/public/icons/file_type_avif.svg +1 -0
  163. package/nuxt-app/.output/public/icons/file_type_avro.svg +1 -0
  164. package/nuxt-app/.output/public/icons/file_type_awk.svg +1 -0
  165. package/nuxt-app/.output/public/icons/file_type_aws.svg +1 -0
  166. package/nuxt-app/.output/public/icons/file_type_azure.svg +1 -0
  167. package/nuxt-app/.output/public/icons/file_type_azurepipelines.svg +1 -0
  168. package/nuxt-app/.output/public/icons/file_type_babel.svg +1 -0
  169. package/nuxt-app/.output/public/icons/file_type_babel2.svg +1 -0
  170. package/nuxt-app/.output/public/icons/file_type_bak.svg +1 -0
  171. package/nuxt-app/.output/public/icons/file_type_ballerina.svg +1 -0
  172. package/nuxt-app/.output/public/icons/file_type_bat.svg +1 -0
  173. package/nuxt-app/.output/public/icons/file_type_bats.svg +1 -0
  174. package/nuxt-app/.output/public/icons/file_type_bazaar.svg +1 -0
  175. package/nuxt-app/.output/public/icons/file_type_bazel.svg +1 -0
  176. package/nuxt-app/.output/public/icons/file_type_bazel_ignore.svg +1 -0
  177. package/nuxt-app/.output/public/icons/file_type_bazel_version.svg +1 -0
  178. package/nuxt-app/.output/public/icons/file_type_befunge.svg +1 -0
  179. package/nuxt-app/.output/public/icons/file_type_bicep.svg +1 -0
  180. package/nuxt-app/.output/public/icons/file_type_biml.svg +1 -0
  181. package/nuxt-app/.output/public/icons/file_type_binary.svg +1 -0
  182. package/nuxt-app/.output/public/icons/file_type_biome.svg +1 -0
  183. package/nuxt-app/.output/public/icons/file_type_bitbucketpipeline.svg +1 -0
  184. package/nuxt-app/.output/public/icons/file_type_bithound.svg +1 -0
  185. package/nuxt-app/.output/public/icons/file_type_blade.svg +1 -0
  186. package/nuxt-app/.output/public/icons/file_type_blender.svg +1 -0
  187. package/nuxt-app/.output/public/icons/file_type_blitzbasic.svg +1 -0
  188. package/nuxt-app/.output/public/icons/file_type_bolt.svg +1 -0
  189. package/nuxt-app/.output/public/icons/file_type_bosque.svg +1 -0
  190. package/nuxt-app/.output/public/icons/file_type_bower.svg +1 -0
  191. package/nuxt-app/.output/public/icons/file_type_bower2.svg +1 -0
  192. package/nuxt-app/.output/public/icons/file_type_browserslist.svg +1 -0
  193. package/nuxt-app/.output/public/icons/file_type_bruno.svg +1 -0
  194. package/nuxt-app/.output/public/icons/file_type_buckbuild.svg +1 -0
  195. package/nuxt-app/.output/public/icons/file_type_buf.svg +1 -0
  196. package/nuxt-app/.output/public/icons/file_type_bun.svg +1 -0
  197. package/nuxt-app/.output/public/icons/file_type_bundlemon.svg +1 -0
  198. package/nuxt-app/.output/public/icons/file_type_bundler.svg +1 -0
  199. package/nuxt-app/.output/public/icons/file_type_bunfig.svg +1 -0
  200. package/nuxt-app/.output/public/icons/file_type_c.svg +1 -0
  201. package/nuxt-app/.output/public/icons/file_type_c2.svg +1 -0
  202. package/nuxt-app/.output/public/icons/file_type_c3.svg +1 -0
  203. package/nuxt-app/.output/public/icons/file_type_c_al.svg +1 -0
  204. package/nuxt-app/.output/public/icons/file_type_cabal.svg +1 -0
  205. package/nuxt-app/.output/public/icons/file_type_caddy.svg +1 -0
  206. package/nuxt-app/.output/public/icons/file_type_cake.svg +1 -0
  207. package/nuxt-app/.output/public/icons/file_type_cakephp.svg +1 -0
  208. package/nuxt-app/.output/public/icons/file_type_capacitor.svg +1 -0
  209. package/nuxt-app/.output/public/icons/file_type_capnp.svg +1 -0
  210. package/nuxt-app/.output/public/icons/file_type_cargo.svg +1 -0
  211. package/nuxt-app/.output/public/icons/file_type_casc.svg +1 -0
  212. package/nuxt-app/.output/public/icons/file_type_cddl.svg +1 -0
  213. package/nuxt-app/.output/public/icons/file_type_cert.svg +1 -0
  214. package/nuxt-app/.output/public/icons/file_type_ceylon.svg +1 -0
  215. package/nuxt-app/.output/public/icons/file_type_cf.svg +1 -0
  216. package/nuxt-app/.output/public/icons/file_type_cf2.svg +1 -0
  217. package/nuxt-app/.output/public/icons/file_type_cfc.svg +1 -0
  218. package/nuxt-app/.output/public/icons/file_type_cfc2.svg +1 -0
  219. package/nuxt-app/.output/public/icons/file_type_cfm.svg +1 -0
  220. package/nuxt-app/.output/public/icons/file_type_cfm2.svg +1 -0
  221. package/nuxt-app/.output/public/icons/file_type_changie.svg +1 -0
  222. package/nuxt-app/.output/public/icons/file_type_cheader.svg +1 -0
  223. package/nuxt-app/.output/public/icons/file_type_chef.svg +1 -0
  224. package/nuxt-app/.output/public/icons/file_type_chef_cookbook.svg +1 -0
  225. package/nuxt-app/.output/public/icons/file_type_circleci.svg +1 -0
  226. package/nuxt-app/.output/public/icons/file_type_circom.svg +1 -0
  227. package/nuxt-app/.output/public/icons/file_type_class.svg +1 -0
  228. package/nuxt-app/.output/public/icons/file_type_claude.svg +1 -0
  229. package/nuxt-app/.output/public/icons/file_type_clojure.svg +1 -0
  230. package/nuxt-app/.output/public/icons/file_type_clojurescript.svg +1 -0
  231. package/nuxt-app/.output/public/icons/file_type_cloudflare.svg +1 -0
  232. package/nuxt-app/.output/public/icons/file_type_cloudfoundry.svg +1 -0
  233. package/nuxt-app/.output/public/icons/file_type_cmake.svg +1 -0
  234. package/nuxt-app/.output/public/icons/file_type_cobol.svg +1 -0
  235. package/nuxt-app/.output/public/icons/file_type_codacy.svg +1 -0
  236. package/nuxt-app/.output/public/icons/file_type_codeclimate.svg +1 -0
  237. package/nuxt-app/.output/public/icons/file_type_codecov.svg +1 -0
  238. package/nuxt-app/.output/public/icons/file_type_codekit.svg +1 -0
  239. package/nuxt-app/.output/public/icons/file_type_codemagic.svg +1 -0
  240. package/nuxt-app/.output/public/icons/file_type_codeowners.svg +1 -0
  241. package/nuxt-app/.output/public/icons/file_type_codeql.svg +1 -0
  242. package/nuxt-app/.output/public/icons/file_type_coderabbit.svg +1 -0
  243. package/nuxt-app/.output/public/icons/file_type_coffeelint.svg +1 -0
  244. package/nuxt-app/.output/public/icons/file_type_coffeescript.svg +1 -0
  245. package/nuxt-app/.output/public/icons/file_type_commitizen.svg +1 -0
  246. package/nuxt-app/.output/public/icons/file_type_commitlint.svg +1 -0
  247. package/nuxt-app/.output/public/icons/file_type_compass.svg +1 -0
  248. package/nuxt-app/.output/public/icons/file_type_composer.svg +1 -0
  249. package/nuxt-app/.output/public/icons/file_type_conan.svg +1 -0
  250. package/nuxt-app/.output/public/icons/file_type_conda.svg +1 -0
  251. package/nuxt-app/.output/public/icons/file_type_config.svg +1 -0
  252. package/nuxt-app/.output/public/icons/file_type_confluence.svg +1 -0
  253. package/nuxt-app/.output/public/icons/file_type_copilot.svg +1 -0
  254. package/nuxt-app/.output/public/icons/file_type_coverage.svg +1 -0
  255. package/nuxt-app/.output/public/icons/file_type_coveralls.svg +1 -0
  256. package/nuxt-app/.output/public/icons/file_type_cpp.svg +1 -0
  257. package/nuxt-app/.output/public/icons/file_type_cpp2.svg +1 -0
  258. package/nuxt-app/.output/public/icons/file_type_cpp3.svg +1 -0
  259. package/nuxt-app/.output/public/icons/file_type_cppheader.svg +1 -0
  260. package/nuxt-app/.output/public/icons/file_type_craco.svg +1 -0
  261. package/nuxt-app/.output/public/icons/file_type_crowdin.svg +1 -0
  262. package/nuxt-app/.output/public/icons/file_type_crystal.svg +1 -0
  263. package/nuxt-app/.output/public/icons/file_type_csharp.svg +1 -0
  264. package/nuxt-app/.output/public/icons/file_type_csharp2.svg +1 -0
  265. package/nuxt-app/.output/public/icons/file_type_cspell.svg +1 -0
  266. package/nuxt-app/.output/public/icons/file_type_csproj.svg +1 -0
  267. package/nuxt-app/.output/public/icons/file_type_css.svg +1 -0
  268. package/nuxt-app/.output/public/icons/file_type_css2.svg +1 -0
  269. package/nuxt-app/.output/public/icons/file_type_css2map.svg +1 -0
  270. package/nuxt-app/.output/public/icons/file_type_csscomb.svg +1 -0
  271. package/nuxt-app/.output/public/icons/file_type_csslint.svg +1 -0
  272. package/nuxt-app/.output/public/icons/file_type_cssmap.svg +8 -0
  273. package/nuxt-app/.output/public/icons/file_type_cucumber.svg +1 -0
  274. package/nuxt-app/.output/public/icons/file_type_cuda.svg +1 -0
  275. package/nuxt-app/.output/public/icons/file_type_cursorrules.svg +1 -0
  276. package/nuxt-app/.output/public/icons/file_type_cvs.svg +1 -0
  277. package/nuxt-app/.output/public/icons/file_type_cypress.svg +1 -0
  278. package/nuxt-app/.output/public/icons/file_type_cypress_spec.svg +1 -0
  279. package/nuxt-app/.output/public/icons/file_type_cython.svg +1 -0
  280. package/nuxt-app/.output/public/icons/file_type_dal.svg +1 -0
  281. package/nuxt-app/.output/public/icons/file_type_darcs.svg +1 -0
  282. package/nuxt-app/.output/public/icons/file_type_dartlang.svg +1 -0
  283. package/nuxt-app/.output/public/icons/file_type_dartlang_generated.svg +1 -0
  284. package/nuxt-app/.output/public/icons/file_type_dartlang_ignore.svg +1 -0
  285. package/nuxt-app/.output/public/icons/file_type_datadog.svg +1 -0
  286. package/nuxt-app/.output/public/icons/file_type_db.svg +1 -0
  287. package/nuxt-app/.output/public/icons/file_type_debian.svg +1 -0
  288. package/nuxt-app/.output/public/icons/file_type_delphi.svg +1 -0
  289. package/nuxt-app/.output/public/icons/file_type_deno.svg +1 -0
  290. package/nuxt-app/.output/public/icons/file_type_denoify.svg +1 -0
  291. package/nuxt-app/.output/public/icons/file_type_dependabot.svg +1 -0
  292. package/nuxt-app/.output/public/icons/file_type_dependencies.svg +1 -0
  293. package/nuxt-app/.output/public/icons/file_type_design_tokens.svg +1 -0
  294. package/nuxt-app/.output/public/icons/file_type_devcontainer.svg +1 -0
  295. package/nuxt-app/.output/public/icons/file_type_devvit.svg +1 -0
  296. package/nuxt-app/.output/public/icons/file_type_dhall.svg +1 -0
  297. package/nuxt-app/.output/public/icons/file_type_diff.svg +1 -0
  298. package/nuxt-app/.output/public/icons/file_type_django.svg +1 -0
  299. package/nuxt-app/.output/public/icons/file_type_dlang.svg +1 -0
  300. package/nuxt-app/.output/public/icons/file_type_docker.svg +1 -0
  301. package/nuxt-app/.output/public/icons/file_type_docker2.svg +1 -0
  302. package/nuxt-app/.output/public/icons/file_type_dockertest.svg +1 -0
  303. package/nuxt-app/.output/public/icons/file_type_dockertest2.svg +1 -0
  304. package/nuxt-app/.output/public/icons/file_type_docpad.svg +1 -0
  305. package/nuxt-app/.output/public/icons/file_type_docusaurus.svg +1 -0
  306. package/nuxt-app/.output/public/icons/file_type_docz.svg +1 -0
  307. package/nuxt-app/.output/public/icons/file_type_dojo.svg +1 -0
  308. package/nuxt-app/.output/public/icons/file_type_doppler.svg +1 -0
  309. package/nuxt-app/.output/public/icons/file_type_dotenv.svg +1 -0
  310. package/nuxt-app/.output/public/icons/file_type_dotjs.svg +1 -0
  311. package/nuxt-app/.output/public/icons/file_type_doxygen.svg +1 -0
  312. package/nuxt-app/.output/public/icons/file_type_drawio.svg +1 -0
  313. package/nuxt-app/.output/public/icons/file_type_drone.svg +1 -0
  314. package/nuxt-app/.output/public/icons/file_type_drools.svg +1 -0
  315. package/nuxt-app/.output/public/icons/file_type_dtd.svg +1 -0
  316. package/nuxt-app/.output/public/icons/file_type_dune.svg +1 -0
  317. package/nuxt-app/.output/public/icons/file_type_dustjs.svg +1 -0
  318. package/nuxt-app/.output/public/icons/file_type_dvc.svg +1 -0
  319. package/nuxt-app/.output/public/icons/file_type_dylan.svg +1 -0
  320. package/nuxt-app/.output/public/icons/file_type_earthly.svg +1 -0
  321. package/nuxt-app/.output/public/icons/file_type_eas-metadata.svg +1 -0
  322. package/nuxt-app/.output/public/icons/file_type_edge.svg +1 -0
  323. package/nuxt-app/.output/public/icons/file_type_edge2.svg +1 -0
  324. package/nuxt-app/.output/public/icons/file_type_editorconfig.svg +1 -0
  325. package/nuxt-app/.output/public/icons/file_type_eex.svg +1 -0
  326. package/nuxt-app/.output/public/icons/file_type_ejs.svg +1 -0
  327. package/nuxt-app/.output/public/icons/file_type_elastic.svg +1 -0
  328. package/nuxt-app/.output/public/icons/file_type_elasticbeanstalk.svg +1 -0
  329. package/nuxt-app/.output/public/icons/file_type_electron.svg +1 -0
  330. package/nuxt-app/.output/public/icons/file_type_eleventy.svg +1 -0
  331. package/nuxt-app/.output/public/icons/file_type_eleventy2.svg +1 -0
  332. package/nuxt-app/.output/public/icons/file_type_elixir.svg +1 -0
  333. package/nuxt-app/.output/public/icons/file_type_elm.svg +1 -0
  334. package/nuxt-app/.output/public/icons/file_type_elm2.svg +1 -0
  335. package/nuxt-app/.output/public/icons/file_type_emacs.svg +1 -0
  336. package/nuxt-app/.output/public/icons/file_type_ember.svg +1 -0
  337. package/nuxt-app/.output/public/icons/file_type_ensime.svg +1 -0
  338. package/nuxt-app/.output/public/icons/file_type_eps.svg +1 -0
  339. package/nuxt-app/.output/public/icons/file_type_epub.svg +1 -0
  340. package/nuxt-app/.output/public/icons/file_type_erb.svg +1 -0
  341. package/nuxt-app/.output/public/icons/file_type_erlang.svg +1 -0
  342. package/nuxt-app/.output/public/icons/file_type_erlang2.svg +1 -0
  343. package/nuxt-app/.output/public/icons/file_type_esbuild.svg +1 -0
  344. package/nuxt-app/.output/public/icons/file_type_eslint.svg +1 -0
  345. package/nuxt-app/.output/public/icons/file_type_eslint2.svg +1 -0
  346. package/nuxt-app/.output/public/icons/file_type_esphome.svg +1 -0
  347. package/nuxt-app/.output/public/icons/file_type_excalidraw.svg +1 -0
  348. package/nuxt-app/.output/public/icons/file_type_excel.svg +1 -0
  349. package/nuxt-app/.output/public/icons/file_type_excel2.svg +1 -0
  350. package/nuxt-app/.output/public/icons/file_type_expo.svg +1 -0
  351. package/nuxt-app/.output/public/icons/file_type_falcon.svg +1 -0
  352. package/nuxt-app/.output/public/icons/file_type_fantasticon.svg +1 -0
  353. package/nuxt-app/.output/public/icons/file_type_fastly.svg +1 -0
  354. package/nuxt-app/.output/public/icons/file_type_fauna.svg +1 -0
  355. package/nuxt-app/.output/public/icons/file_type_favicon.svg +1 -0
  356. package/nuxt-app/.output/public/icons/file_type_fbx.svg +1 -0
  357. package/nuxt-app/.output/public/icons/file_type_firebase.svg +1 -0
  358. package/nuxt-app/.output/public/icons/file_type_firebasehosting.svg +1 -0
  359. package/nuxt-app/.output/public/icons/file_type_firebasestorage.svg +1 -0
  360. package/nuxt-app/.output/public/icons/file_type_firestore.svg +1 -0
  361. package/nuxt-app/.output/public/icons/file_type_fitbit.svg +1 -0
  362. package/nuxt-app/.output/public/icons/file_type_fla.svg +1 -0
  363. package/nuxt-app/.output/public/icons/file_type_flareact.svg +1 -0
  364. package/nuxt-app/.output/public/icons/file_type_flash.svg +1 -0
  365. package/nuxt-app/.output/public/icons/file_type_floobits.svg +1 -0
  366. package/nuxt-app/.output/public/icons/file_type_flow.svg +1 -0
  367. package/nuxt-app/.output/public/icons/file_type_flutter.svg +1 -0
  368. package/nuxt-app/.output/public/icons/file_type_flutter_package.svg +1 -0
  369. package/nuxt-app/.output/public/icons/file_type_flyio.svg +1 -0
  370. package/nuxt-app/.output/public/icons/file_type_font.svg +1 -0
  371. package/nuxt-app/.output/public/icons/file_type_formkit.svg +1 -0
  372. package/nuxt-app/.output/public/icons/file_type_fortran.svg +1 -0
  373. package/nuxt-app/.output/public/icons/file_type_fossa.svg +1 -0
  374. package/nuxt-app/.output/public/icons/file_type_fossil.svg +1 -0
  375. package/nuxt-app/.output/public/icons/file_type_freemarker.svg +1 -0
  376. package/nuxt-app/.output/public/icons/file_type_frontcommerce.svg +1 -0
  377. package/nuxt-app/.output/public/icons/file_type_fsharp.svg +1 -0
  378. package/nuxt-app/.output/public/icons/file_type_fsharp2.svg +1 -0
  379. package/nuxt-app/.output/public/icons/file_type_fsproj.svg +1 -0
  380. package/nuxt-app/.output/public/icons/file_type_fthtml.svg +1 -0
  381. package/nuxt-app/.output/public/icons/file_type_funding.svg +1 -0
  382. package/nuxt-app/.output/public/icons/file_type_fusebox.svg +1 -0
  383. package/nuxt-app/.output/public/icons/file_type_galen.svg +1 -0
  384. package/nuxt-app/.output/public/icons/file_type_galen2.svg +1 -0
  385. package/nuxt-app/.output/public/icons/file_type_gamemaker.svg +1 -0
  386. package/nuxt-app/.output/public/icons/file_type_gamemaker2.svg +1 -0
  387. package/nuxt-app/.output/public/icons/file_type_gamemaker81.svg +1 -0
  388. package/nuxt-app/.output/public/icons/file_type_gatsby.svg +1 -0
  389. package/nuxt-app/.output/public/icons/file_type_gcloud.svg +1 -0
  390. package/nuxt-app/.output/public/icons/file_type_gcode.svg +1 -0
  391. package/nuxt-app/.output/public/icons/file_type_gdscript.svg +1 -0
  392. package/nuxt-app/.output/public/icons/file_type_gduid.svg +1 -0
  393. package/nuxt-app/.output/public/icons/file_type_gemini.svg +1 -0
  394. package/nuxt-app/.output/public/icons/file_type_genstat.svg +1 -0
  395. package/nuxt-app/.output/public/icons/file_type_geojson.svg +1 -0
  396. package/nuxt-app/.output/public/icons/file_type_gimp.svg +1 -0
  397. package/nuxt-app/.output/public/icons/file_type_git.svg +1 -0
  398. package/nuxt-app/.output/public/icons/file_type_git2.svg +1 -0
  399. package/nuxt-app/.output/public/icons/file_type_gitlab.svg +1 -0
  400. package/nuxt-app/.output/public/icons/file_type_gitpod.svg +1 -0
  401. package/nuxt-app/.output/public/icons/file_type_gleam.svg +1 -0
  402. package/nuxt-app/.output/public/icons/file_type_gleamconfig.svg +1 -0
  403. package/nuxt-app/.output/public/icons/file_type_glide.svg +1 -0
  404. package/nuxt-app/.output/public/icons/file_type_glimmer.svg +1 -0
  405. package/nuxt-app/.output/public/icons/file_type_glitter.svg +1 -0
  406. package/nuxt-app/.output/public/icons/file_type_glsl.svg +1 -0
  407. package/nuxt-app/.output/public/icons/file_type_gltf.svg +1 -0
  408. package/nuxt-app/.output/public/icons/file_type_glyphs.svg +1 -0
  409. package/nuxt-app/.output/public/icons/file_type_gnu.svg +1 -0
  410. package/nuxt-app/.output/public/icons/file_type_gnuplot.svg +1 -0
  411. package/nuxt-app/.output/public/icons/file_type_go.svg +1 -0
  412. package/nuxt-app/.output/public/icons/file_type_go_aqua.svg +1 -0
  413. package/nuxt-app/.output/public/icons/file_type_go_black.svg +1 -0
  414. package/nuxt-app/.output/public/icons/file_type_go_fuchsia.svg +1 -0
  415. package/nuxt-app/.output/public/icons/file_type_go_gopher.svg +1 -0
  416. package/nuxt-app/.output/public/icons/file_type_go_lightblue.svg +1 -0
  417. package/nuxt-app/.output/public/icons/file_type_go_package.svg +1 -0
  418. package/nuxt-app/.output/public/icons/file_type_go_white.svg +1 -0
  419. package/nuxt-app/.output/public/icons/file_type_go_work.svg +1 -0
  420. package/nuxt-app/.output/public/icons/file_type_go_yellow.svg +1 -0
  421. package/nuxt-app/.output/public/icons/file_type_goctl.svg +1 -0
  422. package/nuxt-app/.output/public/icons/file_type_godot.svg +1 -0
  423. package/nuxt-app/.output/public/icons/file_type_gpg.svg +1 -0
  424. package/nuxt-app/.output/public/icons/file_type_gradle.svg +1 -0
  425. package/nuxt-app/.output/public/icons/file_type_gradle2.svg +1 -0
  426. package/nuxt-app/.output/public/icons/file_type_grain.svg +1 -0
  427. package/nuxt-app/.output/public/icons/file_type_graphql.svg +1 -0
  428. package/nuxt-app/.output/public/icons/file_type_graphql_config.svg +1 -0
  429. package/nuxt-app/.output/public/icons/file_type_graphviz.svg +1 -0
  430. package/nuxt-app/.output/public/icons/file_type_greenkeeper.svg +1 -0
  431. package/nuxt-app/.output/public/icons/file_type_gridsome.svg +1 -0
  432. package/nuxt-app/.output/public/icons/file_type_grit.svg +1 -0
  433. package/nuxt-app/.output/public/icons/file_type_groovy.svg +1 -0
  434. package/nuxt-app/.output/public/icons/file_type_groovy2.svg +1 -0
  435. package/nuxt-app/.output/public/icons/file_type_grunt.svg +1 -0
  436. package/nuxt-app/.output/public/icons/file_type_gulp.svg +1 -0
  437. package/nuxt-app/.output/public/icons/file_type_haml.svg +1 -0
  438. package/nuxt-app/.output/public/icons/file_type_handlebars.svg +1 -0
  439. package/nuxt-app/.output/public/icons/file_type_handlebars2.svg +1 -0
  440. package/nuxt-app/.output/public/icons/file_type_harbour.svg +1 -0
  441. package/nuxt-app/.output/public/icons/file_type_hardhat.svg +1 -0
  442. package/nuxt-app/.output/public/icons/file_type_hashicorp.svg +1 -0
  443. package/nuxt-app/.output/public/icons/file_type_haskell.svg +1 -0
  444. package/nuxt-app/.output/public/icons/file_type_haskell2.svg +1 -0
  445. package/nuxt-app/.output/public/icons/file_type_haxe.svg +1 -0
  446. package/nuxt-app/.output/public/icons/file_type_haxecheckstyle.svg +1 -0
  447. package/nuxt-app/.output/public/icons/file_type_haxedevelop.svg +1 -0
  448. package/nuxt-app/.output/public/icons/file_type_helix.svg +1 -0
  449. package/nuxt-app/.output/public/icons/file_type_helm.svg +1 -0
  450. package/nuxt-app/.output/public/icons/file_type_histoire.svg +1 -0
  451. package/nuxt-app/.output/public/icons/file_type_hjson.svg +1 -0
  452. package/nuxt-app/.output/public/icons/file_type_hlsl.svg +1 -0
  453. package/nuxt-app/.output/public/icons/file_type_homeassistant.svg +1 -0
  454. package/nuxt-app/.output/public/icons/file_type_horusec.svg +1 -0
  455. package/nuxt-app/.output/public/icons/file_type_host.svg +1 -0
  456. package/nuxt-app/.output/public/icons/file_type_html.svg +1 -0
  457. package/nuxt-app/.output/public/icons/file_type_htmlhint.svg +1 -0
  458. package/nuxt-app/.output/public/icons/file_type_htmlvalidate.svg +1 -0
  459. package/nuxt-app/.output/public/icons/file_type_http.svg +1 -0
  460. package/nuxt-app/.output/public/icons/file_type_hugo.svg +1 -0
  461. package/nuxt-app/.output/public/icons/file_type_humanstxt.svg +1 -0
  462. package/nuxt-app/.output/public/icons/file_type_hunspell.svg +1 -0
  463. package/nuxt-app/.output/public/icons/file_type_husky.svg +1 -0
  464. package/nuxt-app/.output/public/icons/file_type_hy.svg +1 -0
  465. package/nuxt-app/.output/public/icons/file_type_hygen.svg +1 -0
  466. package/nuxt-app/.output/public/icons/file_type_hypr.svg +1 -0
  467. package/nuxt-app/.output/public/icons/file_type_icl.svg +1 -0
  468. package/nuxt-app/.output/public/icons/file_type_idris.svg +1 -0
  469. package/nuxt-app/.output/public/icons/file_type_idrisbin.svg +1 -0
  470. package/nuxt-app/.output/public/icons/file_type_idrispkg.svg +1 -0
  471. package/nuxt-app/.output/public/icons/file_type_image.svg +1 -0
  472. package/nuxt-app/.output/public/icons/file_type_imba.svg +1 -0
  473. package/nuxt-app/.output/public/icons/file_type_inc.svg +1 -0
  474. package/nuxt-app/.output/public/icons/file_type_infopath.svg +1 -0
  475. package/nuxt-app/.output/public/icons/file_type_informix.svg +1 -0
  476. package/nuxt-app/.output/public/icons/file_type_ini.svg +1 -0
  477. package/nuxt-app/.output/public/icons/file_type_ink.svg +1 -0
  478. package/nuxt-app/.output/public/icons/file_type_innosetup.svg +1 -0
  479. package/nuxt-app/.output/public/icons/file_type_io.svg +1 -0
  480. package/nuxt-app/.output/public/icons/file_type_iodine.svg +1 -0
  481. package/nuxt-app/.output/public/icons/file_type_ionic.svg +1 -0
  482. package/nuxt-app/.output/public/icons/file_type_jake.svg +1 -0
  483. package/nuxt-app/.output/public/icons/file_type_janet.svg +1 -0
  484. package/nuxt-app/.output/public/icons/file_type_jar.svg +1 -0
  485. package/nuxt-app/.output/public/icons/file_type_jasmine.svg +1 -0
  486. package/nuxt-app/.output/public/icons/file_type_java.svg +1 -0
  487. package/nuxt-app/.output/public/icons/file_type_jbuilder.svg +1 -0
  488. package/nuxt-app/.output/public/icons/file_type_jekyll.svg +1 -0
  489. package/nuxt-app/.output/public/icons/file_type_jenkins.svg +1 -0
  490. package/nuxt-app/.output/public/icons/file_type_jest.svg +1 -0
  491. package/nuxt-app/.output/public/icons/file_type_jest_snapshot.svg +1 -0
  492. package/nuxt-app/.output/public/icons/file_type_jetbrains.svg +1 -0
  493. package/nuxt-app/.output/public/icons/file_type_jinja.svg +1 -0
  494. package/nuxt-app/.output/public/icons/file_type_jpm.svg +1 -0
  495. package/nuxt-app/.output/public/icons/file_type_js.svg +1 -0
  496. package/nuxt-app/.output/public/icons/file_type_js_official.svg +1 -0
  497. package/nuxt-app/.output/public/icons/file_type_jsbeautify.svg +1 -0
  498. package/nuxt-app/.output/public/icons/file_type_jsconfig.svg +1 -0
  499. package/nuxt-app/.output/public/icons/file_type_jscpd.svg +1 -0
  500. package/nuxt-app/.output/public/icons/file_type_jshint.svg +1 -0
  501. package/nuxt-app/.output/public/icons/file_type_jsmap.svg +1 -0
  502. package/nuxt-app/.output/public/icons/file_type_json.svg +1 -0
  503. package/nuxt-app/.output/public/icons/file_type_json2.svg +1 -0
  504. package/nuxt-app/.output/public/icons/file_type_json5.svg +1 -0
  505. package/nuxt-app/.output/public/icons/file_type_json_official.svg +1 -0
  506. package/nuxt-app/.output/public/icons/file_type_json_schema.svg +1 -0
  507. package/nuxt-app/.output/public/icons/file_type_jsonld.svg +1 -0
  508. package/nuxt-app/.output/public/icons/file_type_jsonnet.svg +1 -0
  509. package/nuxt-app/.output/public/icons/file_type_jsp.svg +1 -0
  510. package/nuxt-app/.output/public/icons/file_type_jsr.svg +1 -0
  511. package/nuxt-app/.output/public/icons/file_type_jss.svg +1 -0
  512. package/nuxt-app/.output/public/icons/file_type_juice.svg +1 -0
  513. package/nuxt-app/.output/public/icons/file_type_julia.svg +1 -0
  514. package/nuxt-app/.output/public/icons/file_type_julia2.svg +1 -0
  515. package/nuxt-app/.output/public/icons/file_type_jupyter.svg +1 -0
  516. package/nuxt-app/.output/public/icons/file_type_just.svg +1 -0
  517. package/nuxt-app/.output/public/icons/file_type_k.svg +1 -0
  518. package/nuxt-app/.output/public/icons/file_type_karma.svg +1 -0
  519. package/nuxt-app/.output/public/icons/file_type_key.svg +1 -0
  520. package/nuxt-app/.output/public/icons/file_type_kitchenci.svg +1 -0
  521. package/nuxt-app/.output/public/icons/file_type_kite.svg +1 -0
  522. package/nuxt-app/.output/public/icons/file_type_kivy.svg +1 -0
  523. package/nuxt-app/.output/public/icons/file_type_knip.svg +1 -0
  524. package/nuxt-app/.output/public/icons/file_type_kos.svg +1 -0
  525. package/nuxt-app/.output/public/icons/file_type_kotlin.svg +1 -0
  526. package/nuxt-app/.output/public/icons/file_type_kusto.svg +1 -0
  527. package/nuxt-app/.output/public/icons/file_type_language_configuration.svg +1 -0
  528. package/nuxt-app/.output/public/icons/file_type_lark.svg +1 -0
  529. package/nuxt-app/.output/public/icons/file_type_latino.svg +1 -0
  530. package/nuxt-app/.output/public/icons/file_type_layout.svg +1 -0
  531. package/nuxt-app/.output/public/icons/file_type_lean.svg +1 -0
  532. package/nuxt-app/.output/public/icons/file_type_leanconfig.svg +1 -0
  533. package/nuxt-app/.output/public/icons/file_type_lefthook.svg +1 -0
  534. package/nuxt-app/.output/public/icons/file_type_lemon.svg +1 -0
  535. package/nuxt-app/.output/public/icons/file_type_lerna.svg +1 -0
  536. package/nuxt-app/.output/public/icons/file_type_less.svg +1 -0
  537. package/nuxt-app/.output/public/icons/file_type_lex.svg +1 -0
  538. package/nuxt-app/.output/public/icons/file_type_liara.svg +1 -0
  539. package/nuxt-app/.output/public/icons/file_type_libreoffice_base.svg +1 -0
  540. package/nuxt-app/.output/public/icons/file_type_libreoffice_calc.svg +1 -0
  541. package/nuxt-app/.output/public/icons/file_type_libreoffice_draw.svg +1 -0
  542. package/nuxt-app/.output/public/icons/file_type_libreoffice_impress.svg +1 -0
  543. package/nuxt-app/.output/public/icons/file_type_libreoffice_math.svg +1 -0
  544. package/nuxt-app/.output/public/icons/file_type_libreoffice_writer.svg +1 -0
  545. package/nuxt-app/.output/public/icons/file_type_license.svg +1 -0
  546. package/nuxt-app/.output/public/icons/file_type_licensebat.svg +1 -0
  547. package/nuxt-app/.output/public/icons/file_type_light_actionscript2.svg +1 -0
  548. package/nuxt-app/.output/public/icons/file_type_light_ada.svg +1 -0
  549. package/nuxt-app/.output/public/icons/file_type_light_agda.svg +1 -0
  550. package/nuxt-app/.output/public/icons/file_type_light_agents.svg +1 -0
  551. package/nuxt-app/.output/public/icons/file_type_light_apl.svg +1 -0
  552. package/nuxt-app/.output/public/icons/file_type_light_astro.svg +1 -0
  553. package/nuxt-app/.output/public/icons/file_type_light_astroconfig.svg +1 -0
  554. package/nuxt-app/.output/public/icons/file_type_light_babel.svg +1 -0
  555. package/nuxt-app/.output/public/icons/file_type_light_babel2.svg +1 -0
  556. package/nuxt-app/.output/public/icons/file_type_light_cabal.svg +1 -0
  557. package/nuxt-app/.output/public/icons/file_type_light_circleci.svg +1 -0
  558. package/nuxt-app/.output/public/icons/file_type_light_cloudfoundry.svg +1 -0
  559. package/nuxt-app/.output/public/icons/file_type_light_codacy.svg +1 -0
  560. package/nuxt-app/.output/public/icons/file_type_light_codeclimate.svg +1 -0
  561. package/nuxt-app/.output/public/icons/file_type_light_codeowners.svg +1 -0
  562. package/nuxt-app/.output/public/icons/file_type_light_config.svg +1 -0
  563. package/nuxt-app/.output/public/icons/file_type_light_copilot.svg +1 -0
  564. package/nuxt-app/.output/public/icons/file_type_light_crystal.svg +1 -0
  565. package/nuxt-app/.output/public/icons/file_type_light_cypress.svg +1 -0
  566. package/nuxt-app/.output/public/icons/file_type_light_cypress_spec.svg +1 -0
  567. package/nuxt-app/.output/public/icons/file_type_light_db.svg +1 -0
  568. package/nuxt-app/.output/public/icons/file_type_light_dhall.svg +1 -0
  569. package/nuxt-app/.output/public/icons/file_type_light_docpad.svg +1 -0
  570. package/nuxt-app/.output/public/icons/file_type_light_drone.svg +1 -0
  571. package/nuxt-app/.output/public/icons/file_type_light_eas-metadata.svg +1 -0
  572. package/nuxt-app/.output/public/icons/file_type_light_eleventy.svg +1 -0
  573. package/nuxt-app/.output/public/icons/file_type_light_eleventy2.svg +1 -0
  574. package/nuxt-app/.output/public/icons/file_type_light_esphome.svg +1 -0
  575. package/nuxt-app/.output/public/icons/file_type_light_expo.svg +1 -0
  576. package/nuxt-app/.output/public/icons/file_type_light_firebasehosting.svg +1 -0
  577. package/nuxt-app/.output/public/icons/file_type_light_fla.svg +1 -0
  578. package/nuxt-app/.output/public/icons/file_type_light_font.svg +1 -0
  579. package/nuxt-app/.output/public/icons/file_type_light_gamemaker2.svg +1 -0
  580. package/nuxt-app/.output/public/icons/file_type_light_gradle.svg +1 -0
  581. package/nuxt-app/.output/public/icons/file_type_light_hashicorp.svg +1 -0
  582. package/nuxt-app/.output/public/icons/file_type_light_hjson.svg +1 -0
  583. package/nuxt-app/.output/public/icons/file_type_light_ini.svg +1 -0
  584. package/nuxt-app/.output/public/icons/file_type_light_io.svg +1 -0
  585. package/nuxt-app/.output/public/icons/file_type_light_js.svg +1 -0
  586. package/nuxt-app/.output/public/icons/file_type_light_jsconfig.svg +1 -0
  587. package/nuxt-app/.output/public/icons/file_type_light_jsmap.svg +1 -0
  588. package/nuxt-app/.output/public/icons/file_type_light_json.svg +1 -0
  589. package/nuxt-app/.output/public/icons/file_type_light_json5.svg +1 -0
  590. package/nuxt-app/.output/public/icons/file_type_light_json_schema.svg +1 -0
  591. package/nuxt-app/.output/public/icons/file_type_light_jsonld.svg +1 -0
  592. package/nuxt-app/.output/public/icons/file_type_light_kite.svg +1 -0
  593. package/nuxt-app/.output/public/icons/file_type_light_lark.svg +1 -0
  594. package/nuxt-app/.output/public/icons/file_type_light_lean.svg +1 -0
  595. package/nuxt-app/.output/public/icons/file_type_light_leanconfig.svg +1 -0
  596. package/nuxt-app/.output/public/icons/file_type_light_lerna.svg +1 -0
  597. package/nuxt-app/.output/public/icons/file_type_light_mailing.svg +1 -0
  598. package/nuxt-app/.output/public/icons/file_type_light_markuplint.svg +1 -0
  599. package/nuxt-app/.output/public/icons/file_type_light_mcp.svg +1 -0
  600. package/nuxt-app/.output/public/icons/file_type_light_mdx-components.svg +1 -0
  601. package/nuxt-app/.output/public/icons/file_type_light_mdx.svg +1 -0
  602. package/nuxt-app/.output/public/icons/file_type_light_mlang.svg +1 -0
  603. package/nuxt-app/.output/public/icons/file_type_light_mustache.svg +1 -0
  604. package/nuxt-app/.output/public/icons/file_type_light_mypy.svg +1 -0
  605. package/nuxt-app/.output/public/icons/file_type_light_neo4j.svg +1 -0
  606. package/nuxt-app/.output/public/icons/file_type_light_netlify.svg +1 -0
  607. package/nuxt-app/.output/public/icons/file_type_light_next.svg +1 -0
  608. package/nuxt-app/.output/public/icons/file_type_light_nim.svg +1 -0
  609. package/nuxt-app/.output/public/icons/file_type_light_nx.svg +1 -0
  610. package/nuxt-app/.output/public/icons/file_type_light_objidconfig.svg +1 -0
  611. package/nuxt-app/.output/public/icons/file_type_light_openHAB.svg +1 -0
  612. package/nuxt-app/.output/public/icons/file_type_light_oxc.svg +1 -0
  613. package/nuxt-app/.output/public/icons/file_type_light_packship.svg +4 -0
  614. package/nuxt-app/.output/public/icons/file_type_light_pcl.svg +1 -0
  615. package/nuxt-app/.output/public/icons/file_type_light_pnpm.svg +1 -0
  616. package/nuxt-app/.output/public/icons/file_type_light_prettier.svg +1 -0
  617. package/nuxt-app/.output/public/icons/file_type_light_prisma.svg +1 -0
  618. package/nuxt-app/.output/public/icons/file_type_light_purescript.svg +1 -0
  619. package/nuxt-app/.output/public/icons/file_type_light_quasar.svg +1 -0
  620. package/nuxt-app/.output/public/icons/file_type_light_railway.svg +1 -0
  621. package/nuxt-app/.output/public/icons/file_type_light_raku.svg +1 -0
  622. package/nuxt-app/.output/public/icons/file_type_light_razzle.svg +1 -0
  623. package/nuxt-app/.output/public/icons/file_type_light_reactrouter.svg +1 -0
  624. package/nuxt-app/.output/public/icons/file_type_light_rehype.svg +1 -0
  625. package/nuxt-app/.output/public/icons/file_type_light_remark.svg +1 -0
  626. package/nuxt-app/.output/public/icons/file_type_light_replit.svg +1 -0
  627. package/nuxt-app/.output/public/icons/file_type_light_retext.svg +1 -0
  628. package/nuxt-app/.output/public/icons/file_type_light_rolldown.svg +1 -0
  629. package/nuxt-app/.output/public/icons/file_type_light_rome.svg +1 -0
  630. package/nuxt-app/.output/public/icons/file_type_light_rubocop.svg +1 -0
  631. package/nuxt-app/.output/public/icons/file_type_light_rust.svg +1 -0
  632. package/nuxt-app/.output/public/icons/file_type_light_rust_toolchain.svg +1 -0
  633. package/nuxt-app/.output/public/icons/file_type_light_safetensors.svg +1 -0
  634. package/nuxt-app/.output/public/icons/file_type_light_shadcn.svg +1 -0
  635. package/nuxt-app/.output/public/icons/file_type_light_shaderlab.svg +1 -0
  636. package/nuxt-app/.output/public/icons/file_type_light_skill.svg +1 -0
  637. package/nuxt-app/.output/public/icons/file_type_light_solidity.svg +1 -0
  638. package/nuxt-app/.output/public/icons/file_type_light_spin.svg +1 -0
  639. package/nuxt-app/.output/public/icons/file_type_light_stylelint.svg +1 -0
  640. package/nuxt-app/.output/public/icons/file_type_light_stylus.svg +1 -0
  641. package/nuxt-app/.output/public/icons/file_type_light_symfony.svg +1 -0
  642. package/nuxt-app/.output/public/icons/file_type_light_systemd.svg +1 -0
  643. package/nuxt-app/.output/public/icons/file_type_light_systemverilog.svg +1 -0
  644. package/nuxt-app/.output/public/icons/file_type_light_testcafe.svg +1 -0
  645. package/nuxt-app/.output/public/icons/file_type_light_testjs.svg +1 -0
  646. package/nuxt-app/.output/public/icons/file_type_light_tex.svg +1 -0
  647. package/nuxt-app/.output/public/icons/file_type_light_tm.svg +141 -0
  648. package/nuxt-app/.output/public/icons/file_type_light_tmux.svg +1 -0
  649. package/nuxt-app/.output/public/icons/file_type_light_todo.svg +1 -0
  650. package/nuxt-app/.output/public/icons/file_type_light_toit.svg +1 -0
  651. package/nuxt-app/.output/public/icons/file_type_light_toml.svg +1 -0
  652. package/nuxt-app/.output/public/icons/file_type_light_toon.svg +1 -0
  653. package/nuxt-app/.output/public/icons/file_type_light_tree.svg +1 -0
  654. package/nuxt-app/.output/public/icons/file_type_light_turbo.svg +1 -0
  655. package/nuxt-app/.output/public/icons/file_type_light_unibeautify.svg +1 -0
  656. package/nuxt-app/.output/public/icons/file_type_light_vash.svg +1 -0
  657. package/nuxt-app/.output/public/icons/file_type_light_vercel.svg +1 -0
  658. package/nuxt-app/.output/public/icons/file_type_light_vite.svg +1 -0
  659. package/nuxt-app/.output/public/icons/file_type_light_vitest.svg +1 -0
  660. package/nuxt-app/.output/public/icons/file_type_light_vsix.svg +1 -0
  661. package/nuxt-app/.output/public/icons/file_type_light_vsixmanifest.svg +1 -0
  662. package/nuxt-app/.output/public/icons/file_type_light_xfl.svg +1 -0
  663. package/nuxt-app/.output/public/icons/file_type_light_xorg.svg +1 -0
  664. package/nuxt-app/.output/public/icons/file_type_light_yaml.svg +1 -0
  665. package/nuxt-app/.output/public/icons/file_type_light_yaml_official.svg +1 -0
  666. package/nuxt-app/.output/public/icons/file_type_lighthouse.svg +1 -0
  667. package/nuxt-app/.output/public/icons/file_type_lilypond.svg +1 -0
  668. package/nuxt-app/.output/public/icons/file_type_lime.svg +1 -0
  669. package/nuxt-app/.output/public/icons/file_type_lintstagedrc.svg +1 -0
  670. package/nuxt-app/.output/public/icons/file_type_liquid.svg +1 -0
  671. package/nuxt-app/.output/public/icons/file_type_lisp.svg +1 -0
  672. package/nuxt-app/.output/public/icons/file_type_livescript.svg +1 -0
  673. package/nuxt-app/.output/public/icons/file_type_lnk.svg +1 -0
  674. package/nuxt-app/.output/public/icons/file_type_locale.svg +1 -0
  675. package/nuxt-app/.output/public/icons/file_type_log.svg +1 -0
  676. package/nuxt-app/.output/public/icons/file_type_lolcode.svg +1 -0
  677. package/nuxt-app/.output/public/icons/file_type_lsl.svg +1 -0
  678. package/nuxt-app/.output/public/icons/file_type_lua.svg +1 -0
  679. package/nuxt-app/.output/public/icons/file_type_luau.svg +1 -0
  680. package/nuxt-app/.output/public/icons/file_type_lync.svg +1 -0
  681. package/nuxt-app/.output/public/icons/file_type_mailing.svg +1 -0
  682. package/nuxt-app/.output/public/icons/file_type_manifest.svg +1 -0
  683. package/nuxt-app/.output/public/icons/file_type_manifest_bak.svg +1 -0
  684. package/nuxt-app/.output/public/icons/file_type_manifest_skip.svg +1 -0
  685. package/nuxt-app/.output/public/icons/file_type_map.svg +1 -0
  686. package/nuxt-app/.output/public/icons/file_type_mariadb.svg +1 -0
  687. package/nuxt-app/.output/public/icons/file_type_markdown.svg +65 -0
  688. package/nuxt-app/.output/public/icons/file_type_markdownlint.svg +1 -0
  689. package/nuxt-app/.output/public/icons/file_type_markdownlint_ignore.svg +1 -0
  690. package/nuxt-app/.output/public/icons/file_type_marko.svg +1 -0
  691. package/nuxt-app/.output/public/icons/file_type_markojs.svg +1 -0
  692. package/nuxt-app/.output/public/icons/file_type_markuplint.svg +1 -0
  693. package/nuxt-app/.output/public/icons/file_type_master-co.svg +1 -0
  694. package/nuxt-app/.output/public/icons/file_type_matlab.svg +1 -0
  695. package/nuxt-app/.output/public/icons/file_type_maven.svg +1 -0
  696. package/nuxt-app/.output/public/icons/file_type_maxscript.svg +1 -0
  697. package/nuxt-app/.output/public/icons/file_type_maya.svg +1 -0
  698. package/nuxt-app/.output/public/icons/file_type_mcp.svg +1 -0
  699. package/nuxt-app/.output/public/icons/file_type_mdx-components.svg +1 -0
  700. package/nuxt-app/.output/public/icons/file_type_mdx.svg +1 -0
  701. package/nuxt-app/.output/public/icons/file_type_mdxlint.svg +1 -0
  702. package/nuxt-app/.output/public/icons/file_type_mediawiki.svg +1 -0
  703. package/nuxt-app/.output/public/icons/file_type_mercurial.svg +1 -0
  704. package/nuxt-app/.output/public/icons/file_type_mermaid.svg +1 -0
  705. package/nuxt-app/.output/public/icons/file_type_meson.svg +1 -0
  706. package/nuxt-app/.output/public/icons/file_type_metal.svg +1 -0
  707. package/nuxt-app/.output/public/icons/file_type_meteor.svg +1 -0
  708. package/nuxt-app/.output/public/icons/file_type_minecraft.svg +1 -0
  709. package/nuxt-app/.output/public/icons/file_type_mise.svg +1 -0
  710. package/nuxt-app/.output/public/icons/file_type_mivascript.svg +1 -0
  711. package/nuxt-app/.output/public/icons/file_type_mjml.svg +1 -0
  712. package/nuxt-app/.output/public/icons/file_type_mlang.svg +1 -0
  713. package/nuxt-app/.output/public/icons/file_type_mocha.svg +1 -0
  714. package/nuxt-app/.output/public/icons/file_type_modernizr.svg +1 -0
  715. package/nuxt-app/.output/public/icons/file_type_mojo.svg +1 -0
  716. package/nuxt-app/.output/public/icons/file_type_mojolicious.svg +1 -0
  717. package/nuxt-app/.output/public/icons/file_type_moleculer.svg +1 -0
  718. package/nuxt-app/.output/public/icons/file_type_mondoo.svg +1 -0
  719. package/nuxt-app/.output/public/icons/file_type_mongo.svg +1 -0
  720. package/nuxt-app/.output/public/icons/file_type_monotone.svg +1 -0
  721. package/nuxt-app/.output/public/icons/file_type_motif.svg +1 -0
  722. package/nuxt-app/.output/public/icons/file_type_mson.svg +1 -0
  723. package/nuxt-app/.output/public/icons/file_type_mustache.svg +1 -0
  724. package/nuxt-app/.output/public/icons/file_type_mvt.svg +1 -0
  725. package/nuxt-app/.output/public/icons/file_type_mvtcss.svg +1 -0
  726. package/nuxt-app/.output/public/icons/file_type_mvtjs.svg +1 -0
  727. package/nuxt-app/.output/public/icons/file_type_mypy.svg +1 -0
  728. package/nuxt-app/.output/public/icons/file_type_mysql.svg +1 -0
  729. package/nuxt-app/.output/public/icons/file_type_n64.svg +1 -0
  730. package/nuxt-app/.output/public/icons/file_type_nanostaged.svg +1 -0
  731. package/nuxt-app/.output/public/icons/file_type_ndst.svg +7 -0
  732. package/nuxt-app/.output/public/icons/file_type_nearly.svg +1 -0
  733. package/nuxt-app/.output/public/icons/file_type_neo4j.svg +1 -0
  734. package/nuxt-app/.output/public/icons/file_type_nest_adapter_js.svg +1 -0
  735. package/nuxt-app/.output/public/icons/file_type_nest_adapter_ts.svg +1 -0
  736. package/nuxt-app/.output/public/icons/file_type_nest_controller_js.svg +1 -0
  737. package/nuxt-app/.output/public/icons/file_type_nest_controller_ts.svg +1 -0
  738. package/nuxt-app/.output/public/icons/file_type_nest_decorator_js.svg +1 -0
  739. package/nuxt-app/.output/public/icons/file_type_nest_decorator_ts.svg +1 -0
  740. package/nuxt-app/.output/public/icons/file_type_nest_filter_js.svg +1 -0
  741. package/nuxt-app/.output/public/icons/file_type_nest_filter_ts.svg +1 -0
  742. package/nuxt-app/.output/public/icons/file_type_nest_gateway_js.svg +1 -0
  743. package/nuxt-app/.output/public/icons/file_type_nest_gateway_ts.svg +1 -0
  744. package/nuxt-app/.output/public/icons/file_type_nest_guard_js.svg +1 -0
  745. package/nuxt-app/.output/public/icons/file_type_nest_guard_ts.svg +1 -0
  746. package/nuxt-app/.output/public/icons/file_type_nest_interceptor_js.svg +1 -0
  747. package/nuxt-app/.output/public/icons/file_type_nest_interceptor_ts.svg +1 -0
  748. package/nuxt-app/.output/public/icons/file_type_nest_middleware_js.svg +1 -0
  749. package/nuxt-app/.output/public/icons/file_type_nest_middleware_ts.svg +1 -0
  750. package/nuxt-app/.output/public/icons/file_type_nest_module_js.svg +1 -0
  751. package/nuxt-app/.output/public/icons/file_type_nest_module_ts.svg +1 -0
  752. package/nuxt-app/.output/public/icons/file_type_nest_pipe_js.svg +1 -0
  753. package/nuxt-app/.output/public/icons/file_type_nest_pipe_ts.svg +1 -0
  754. package/nuxt-app/.output/public/icons/file_type_nest_service_js.svg +1 -0
  755. package/nuxt-app/.output/public/icons/file_type_nest_service_ts.svg +1 -0
  756. package/nuxt-app/.output/public/icons/file_type_nestjs.svg +1 -0
  757. package/nuxt-app/.output/public/icons/file_type_netlify.svg +1 -0
  758. package/nuxt-app/.output/public/icons/file_type_next.svg +1 -0
  759. package/nuxt-app/.output/public/icons/file_type_nextflow.svg +1 -0
  760. package/nuxt-app/.output/public/icons/file_type_ng_component_css.svg +1 -0
  761. package/nuxt-app/.output/public/icons/file_type_ng_component_dart.svg +1 -0
  762. package/nuxt-app/.output/public/icons/file_type_ng_component_html.svg +1 -0
  763. package/nuxt-app/.output/public/icons/file_type_ng_component_js.svg +1 -0
  764. package/nuxt-app/.output/public/icons/file_type_ng_component_js2.svg +1 -0
  765. package/nuxt-app/.output/public/icons/file_type_ng_component_less.svg +1 -0
  766. package/nuxt-app/.output/public/icons/file_type_ng_component_sass.svg +1 -0
  767. package/nuxt-app/.output/public/icons/file_type_ng_component_scss.svg +1 -0
  768. package/nuxt-app/.output/public/icons/file_type_ng_component_ts.svg +1 -0
  769. package/nuxt-app/.output/public/icons/file_type_ng_component_ts2.svg +1 -0
  770. package/nuxt-app/.output/public/icons/file_type_ng_controller_js.svg +1 -0
  771. package/nuxt-app/.output/public/icons/file_type_ng_controller_ts.svg +1 -0
  772. package/nuxt-app/.output/public/icons/file_type_ng_directive_dart.svg +1 -0
  773. package/nuxt-app/.output/public/icons/file_type_ng_directive_js.svg +1 -0
  774. package/nuxt-app/.output/public/icons/file_type_ng_directive_js2.svg +1 -0
  775. package/nuxt-app/.output/public/icons/file_type_ng_directive_ts.svg +1 -0
  776. package/nuxt-app/.output/public/icons/file_type_ng_directive_ts2.svg +1 -0
  777. package/nuxt-app/.output/public/icons/file_type_ng_guard_dart.svg +1 -0
  778. package/nuxt-app/.output/public/icons/file_type_ng_guard_js.svg +1 -0
  779. package/nuxt-app/.output/public/icons/file_type_ng_guard_ts.svg +1 -0
  780. package/nuxt-app/.output/public/icons/file_type_ng_interceptor_dart.svg +1 -0
  781. package/nuxt-app/.output/public/icons/file_type_ng_interceptor_js.svg +1 -0
  782. package/nuxt-app/.output/public/icons/file_type_ng_interceptor_ts.svg +1 -0
  783. package/nuxt-app/.output/public/icons/file_type_ng_module_dart.svg +1 -0
  784. package/nuxt-app/.output/public/icons/file_type_ng_module_js.svg +1 -0
  785. package/nuxt-app/.output/public/icons/file_type_ng_module_js2.svg +1 -0
  786. package/nuxt-app/.output/public/icons/file_type_ng_module_ts.svg +1 -0
  787. package/nuxt-app/.output/public/icons/file_type_ng_module_ts2.svg +1 -0
  788. package/nuxt-app/.output/public/icons/file_type_ng_pipe_dart.svg +1 -0
  789. package/nuxt-app/.output/public/icons/file_type_ng_pipe_js.svg +1 -0
  790. package/nuxt-app/.output/public/icons/file_type_ng_pipe_js2.svg +1 -0
  791. package/nuxt-app/.output/public/icons/file_type_ng_pipe_ts.svg +1 -0
  792. package/nuxt-app/.output/public/icons/file_type_ng_pipe_ts2.svg +1 -0
  793. package/nuxt-app/.output/public/icons/file_type_ng_routing_dart.svg +1 -0
  794. package/nuxt-app/.output/public/icons/file_type_ng_routing_js.svg +1 -0
  795. package/nuxt-app/.output/public/icons/file_type_ng_routing_js2.svg +1 -0
  796. package/nuxt-app/.output/public/icons/file_type_ng_routing_ts.svg +1 -0
  797. package/nuxt-app/.output/public/icons/file_type_ng_routing_ts2.svg +1 -0
  798. package/nuxt-app/.output/public/icons/file_type_ng_service_dart.svg +1 -0
  799. package/nuxt-app/.output/public/icons/file_type_ng_service_js.svg +1 -0
  800. package/nuxt-app/.output/public/icons/file_type_ng_service_js2.svg +1 -0
  801. package/nuxt-app/.output/public/icons/file_type_ng_service_ts.svg +1 -0
  802. package/nuxt-app/.output/public/icons/file_type_ng_service_ts2.svg +1 -0
  803. package/nuxt-app/.output/public/icons/file_type_ng_smart_component_dart.svg +1 -0
  804. package/nuxt-app/.output/public/icons/file_type_ng_smart_component_js.svg +1 -0
  805. package/nuxt-app/.output/public/icons/file_type_ng_smart_component_js2.svg +1 -0
  806. package/nuxt-app/.output/public/icons/file_type_ng_smart_component_ts.svg +1 -0
  807. package/nuxt-app/.output/public/icons/file_type_ng_smart_component_ts2.svg +1 -0
  808. package/nuxt-app/.output/public/icons/file_type_ng_tailwind.svg +1 -0
  809. package/nuxt-app/.output/public/icons/file_type_nginx.svg +1 -0
  810. package/nuxt-app/.output/public/icons/file_type_nim.svg +1 -0
  811. package/nuxt-app/.output/public/icons/file_type_nimble.svg +1 -0
  812. package/nuxt-app/.output/public/icons/file_type_ninja.svg +1 -0
  813. package/nuxt-app/.output/public/icons/file_type_nix.svg +1 -0
  814. package/nuxt-app/.output/public/icons/file_type_njsproj.svg +1 -0
  815. package/nuxt-app/.output/public/icons/file_type_noc.svg +1 -0
  816. package/nuxt-app/.output/public/icons/file_type_node.svg +1 -0
  817. package/nuxt-app/.output/public/icons/file_type_node2.svg +1 -0
  818. package/nuxt-app/.output/public/icons/file_type_nodemon.svg +1 -0
  819. package/nuxt-app/.output/public/icons/file_type_npm.svg +1 -0
  820. package/nuxt-app/.output/public/icons/file_type_npmpackagejsonlint.svg +1 -0
  821. package/nuxt-app/.output/public/icons/file_type_nsi.svg +1 -0
  822. package/nuxt-app/.output/public/icons/file_type_nsri-integrity.svg +1 -0
  823. package/nuxt-app/.output/public/icons/file_type_nsri.svg +1 -0
  824. package/nuxt-app/.output/public/icons/file_type_nuget.svg +1 -0
  825. package/nuxt-app/.output/public/icons/file_type_numpy.svg +1 -0
  826. package/nuxt-app/.output/public/icons/file_type_nunjucks.svg +1 -0
  827. package/nuxt-app/.output/public/icons/file_type_nushell.svg +1 -0
  828. package/nuxt-app/.output/public/icons/file_type_nuxt.svg +1 -0
  829. package/nuxt-app/.output/public/icons/file_type_nx.svg +1 -0
  830. package/nuxt-app/.output/public/icons/file_type_nyc.svg +1 -0
  831. package/nuxt-app/.output/public/icons/file_type_objectivec.svg +1 -0
  832. package/nuxt-app/.output/public/icons/file_type_objectivecpp.svg +1 -0
  833. package/nuxt-app/.output/public/icons/file_type_objidconfig.svg +1 -0
  834. package/nuxt-app/.output/public/icons/file_type_ocaml.svg +1 -0
  835. package/nuxt-app/.output/public/icons/file_type_ocaml_intf.svg +1 -0
  836. package/nuxt-app/.output/public/icons/file_type_ogone.svg +1 -0
  837. package/nuxt-app/.output/public/icons/file_type_onenote.svg +1 -0
  838. package/nuxt-app/.output/public/icons/file_type_opam.svg +1 -0
  839. package/nuxt-app/.output/public/icons/file_type_openHAB.svg +1 -0
  840. package/nuxt-app/.output/public/icons/file_type_opencl.svg +1 -0
  841. package/nuxt-app/.output/public/icons/file_type_openscad.svg +1 -0
  842. package/nuxt-app/.output/public/icons/file_type_opentofu.svg +1 -0
  843. package/nuxt-app/.output/public/icons/file_type_org.svg +1 -0
  844. package/nuxt-app/.output/public/icons/file_type_outlook.svg +1 -0
  845. package/nuxt-app/.output/public/icons/file_type_ovpn.svg +1 -0
  846. package/nuxt-app/.output/public/icons/file_type_oxc.svg +1 -0
  847. package/nuxt-app/.output/public/icons/file_type_package.svg +1 -0
  848. package/nuxt-app/.output/public/icons/file_type_packship.svg +4 -0
  849. package/nuxt-app/.output/public/icons/file_type_paket.svg +1 -0
  850. package/nuxt-app/.output/public/icons/file_type_pandacss.svg +1 -0
  851. package/nuxt-app/.output/public/icons/file_type_patch.svg +1 -0
  852. package/nuxt-app/.output/public/icons/file_type_pcl.svg +1 -0
  853. package/nuxt-app/.output/public/icons/file_type_pddl.svg +1 -0
  854. package/nuxt-app/.output/public/icons/file_type_pddl_happenings.svg +1 -0
  855. package/nuxt-app/.output/public/icons/file_type_pddl_plan.svg +1 -0
  856. package/nuxt-app/.output/public/icons/file_type_pdf.svg +1 -0
  857. package/nuxt-app/.output/public/icons/file_type_pdf2.svg +1 -0
  858. package/nuxt-app/.output/public/icons/file_type_pdm.svg +1 -0
  859. package/nuxt-app/.output/public/icons/file_type_peeky.svg +1 -0
  860. package/nuxt-app/.output/public/icons/file_type_perl.svg +1 -0
  861. package/nuxt-app/.output/public/icons/file_type_perl2.svg +1 -0
  862. package/nuxt-app/.output/public/icons/file_type_perl6.svg +1 -0
  863. package/nuxt-app/.output/public/icons/file_type_pgsql.svg +1 -0
  864. package/nuxt-app/.output/public/icons/file_type_photoshop.svg +1 -0
  865. package/nuxt-app/.output/public/icons/file_type_photoshop2.svg +1 -0
  866. package/nuxt-app/.output/public/icons/file_type_php.svg +1 -0
  867. package/nuxt-app/.output/public/icons/file_type_php2.svg +1 -0
  868. package/nuxt-app/.output/public/icons/file_type_php3.svg +1 -0
  869. package/nuxt-app/.output/public/icons/file_type_phpcsfixer.svg +1 -0
  870. package/nuxt-app/.output/public/icons/file_type_phpstan.svg +1 -0
  871. package/nuxt-app/.output/public/icons/file_type_phpunit.svg +1 -0
  872. package/nuxt-app/.output/public/icons/file_type_phraseapp.svg +1 -0
  873. package/nuxt-app/.output/public/icons/file_type_pine.svg +1 -0
  874. package/nuxt-app/.output/public/icons/file_type_pip.svg +1 -0
  875. package/nuxt-app/.output/public/icons/file_type_pipeline.svg +3 -0
  876. package/nuxt-app/.output/public/icons/file_type_plantuml.svg +1 -0
  877. package/nuxt-app/.output/public/icons/file_type_platformio.svg +1 -0
  878. package/nuxt-app/.output/public/icons/file_type_playwright.svg +1 -0
  879. package/nuxt-app/.output/public/icons/file_type_plsql.svg +1 -0
  880. package/nuxt-app/.output/public/icons/file_type_plsql_package.svg +1 -0
  881. package/nuxt-app/.output/public/icons/file_type_plsql_package_body.svg +1 -0
  882. package/nuxt-app/.output/public/icons/file_type_plsql_package_header.svg +1 -0
  883. package/nuxt-app/.output/public/icons/file_type_plsql_package_spec.svg +1 -0
  884. package/nuxt-app/.output/public/icons/file_type_pm2.svg +1 -0
  885. package/nuxt-app/.output/public/icons/file_type_pnpm.svg +1 -0
  886. package/nuxt-app/.output/public/icons/file_type_poedit.svg +1 -0
  887. package/nuxt-app/.output/public/icons/file_type_poetry.svg +1 -0
  888. package/nuxt-app/.output/public/icons/file_type_polyglot.svg +1 -0
  889. package/nuxt-app/.output/public/icons/file_type_polymer.svg +1 -0
  890. package/nuxt-app/.output/public/icons/file_type_pony.svg +1 -0
  891. package/nuxt-app/.output/public/icons/file_type_postcss.svg +1 -0
  892. package/nuxt-app/.output/public/icons/file_type_postcssconfig.svg +1 -0
  893. package/nuxt-app/.output/public/icons/file_type_postman.svg +1 -0
  894. package/nuxt-app/.output/public/icons/file_type_postscript.svg +1 -0
  895. package/nuxt-app/.output/public/icons/file_type_powerpoint.svg +1 -0
  896. package/nuxt-app/.output/public/icons/file_type_powerpoint2.svg +1 -0
  897. package/nuxt-app/.output/public/icons/file_type_powershell.svg +1 -0
  898. package/nuxt-app/.output/public/icons/file_type_powershell2.svg +1 -0
  899. package/nuxt-app/.output/public/icons/file_type_powershell_format.svg +1 -0
  900. package/nuxt-app/.output/public/icons/file_type_powershell_psd.svg +1 -0
  901. package/nuxt-app/.output/public/icons/file_type_powershell_psd2.svg +1 -0
  902. package/nuxt-app/.output/public/icons/file_type_powershell_psm.svg +1 -0
  903. package/nuxt-app/.output/public/icons/file_type_powershell_psm2.svg +1 -0
  904. package/nuxt-app/.output/public/icons/file_type_powershell_types.svg +1 -0
  905. package/nuxt-app/.output/public/icons/file_type_preact.svg +1 -0
  906. package/nuxt-app/.output/public/icons/file_type_precommit.svg +1 -0
  907. package/nuxt-app/.output/public/icons/file_type_prettier.svg +1 -0
  908. package/nuxt-app/.output/public/icons/file_type_prisma.svg +1 -0
  909. package/nuxt-app/.output/public/icons/file_type_prismaconfig.svg +1 -0
  910. package/nuxt-app/.output/public/icons/file_type_processinglang.svg +1 -0
  911. package/nuxt-app/.output/public/icons/file_type_procfile.svg +1 -0
  912. package/nuxt-app/.output/public/icons/file_type_progress.svg +1 -0
  913. package/nuxt-app/.output/public/icons/file_type_prolog.svg +1 -0
  914. package/nuxt-app/.output/public/icons/file_type_prometheus.svg +1 -0
  915. package/nuxt-app/.output/public/icons/file_type_protobuf.svg +9 -0
  916. package/nuxt-app/.output/public/icons/file_type_protractor.svg +1 -0
  917. package/nuxt-app/.output/public/icons/file_type_publiccode.svg +1 -0
  918. package/nuxt-app/.output/public/icons/file_type_publisher.svg +1 -0
  919. package/nuxt-app/.output/public/icons/file_type_pug.svg +1 -0
  920. package/nuxt-app/.output/public/icons/file_type_pulumi.svg +1 -0
  921. package/nuxt-app/.output/public/icons/file_type_puppet.svg +1 -0
  922. package/nuxt-app/.output/public/icons/file_type_purescript.svg +1 -0
  923. package/nuxt-app/.output/public/icons/file_type_purgecss.svg +1 -0
  924. package/nuxt-app/.output/public/icons/file_type_pyenv.svg +1 -0
  925. package/nuxt-app/.output/public/icons/file_type_pypi.svg +1 -0
  926. package/nuxt-app/.output/public/icons/file_type_pyret.svg +1 -0
  927. package/nuxt-app/.output/public/icons/file_type_pyscript.svg +1 -0
  928. package/nuxt-app/.output/public/icons/file_type_pytest.svg +1 -0
  929. package/nuxt-app/.output/public/icons/file_type_python.svg +1 -0
  930. package/nuxt-app/.output/public/icons/file_type_pythowo.svg +1 -0
  931. package/nuxt-app/.output/public/icons/file_type_pytyped.svg +1 -0
  932. package/nuxt-app/.output/public/icons/file_type_pyup.svg +1 -0
  933. package/nuxt-app/.output/public/icons/file_type_q.svg +1 -0
  934. package/nuxt-app/.output/public/icons/file_type_qbs.svg +1 -0
  935. package/nuxt-app/.output/public/icons/file_type_qlikview.svg +1 -0
  936. package/nuxt-app/.output/public/icons/file_type_qml.svg +1 -0
  937. package/nuxt-app/.output/public/icons/file_type_qmldir.svg +1 -0
  938. package/nuxt-app/.output/public/icons/file_type_qsharp.svg +1 -0
  939. package/nuxt-app/.output/public/icons/file_type_quasar.svg +1 -0
  940. package/nuxt-app/.output/public/icons/file_type_r.svg +1 -0
  941. package/nuxt-app/.output/public/icons/file_type_ra_syntax_tree.svg +1 -0
  942. package/nuxt-app/.output/public/icons/file_type_racket.svg +1 -0
  943. package/nuxt-app/.output/public/icons/file_type_rails.svg +1 -0
  944. package/nuxt-app/.output/public/icons/file_type_railway.svg +1 -0
  945. package/nuxt-app/.output/public/icons/file_type_rake.svg +1 -0
  946. package/nuxt-app/.output/public/icons/file_type_raku.svg +1 -0
  947. package/nuxt-app/.output/public/icons/file_type_raml.svg +1 -0
  948. package/nuxt-app/.output/public/icons/file_type_razor.svg +1 -0
  949. package/nuxt-app/.output/public/icons/file_type_razzle.svg +1 -0
  950. package/nuxt-app/.output/public/icons/file_type_reactjs.svg +1 -0
  951. package/nuxt-app/.output/public/icons/file_type_reactrouter.svg +1 -0
  952. package/nuxt-app/.output/public/icons/file_type_reacttemplate.svg +1 -0
  953. package/nuxt-app/.output/public/icons/file_type_reactts.svg +1 -0
  954. package/nuxt-app/.output/public/icons/file_type_reason.svg +1 -0
  955. package/nuxt-app/.output/public/icons/file_type_red.svg +1 -0
  956. package/nuxt-app/.output/public/icons/file_type_registry.svg +1 -0
  957. package/nuxt-app/.output/public/icons/file_type_rego.svg +1 -0
  958. package/nuxt-app/.output/public/icons/file_type_rehype.svg +1 -0
  959. package/nuxt-app/.output/public/icons/file_type_remark.svg +1 -0
  960. package/nuxt-app/.output/public/icons/file_type_renovate.svg +1 -0
  961. package/nuxt-app/.output/public/icons/file_type_replit.svg +1 -0
  962. package/nuxt-app/.output/public/icons/file_type_rescript.svg +1 -0
  963. package/nuxt-app/.output/public/icons/file_type_rest.svg +1 -0
  964. package/nuxt-app/.output/public/icons/file_type_retext.svg +1 -0
  965. package/nuxt-app/.output/public/icons/file_type_rexx.svg +1 -0
  966. package/nuxt-app/.output/public/icons/file_type_riot.svg +1 -0
  967. package/nuxt-app/.output/public/icons/file_type_ripple.svg +4 -0
  968. package/nuxt-app/.output/public/icons/file_type_rmd.svg +1 -0
  969. package/nuxt-app/.output/public/icons/file_type_rnc.svg +1 -0
  970. package/nuxt-app/.output/public/icons/file_type_robotframework.svg +1 -0
  971. package/nuxt-app/.output/public/icons/file_type_robots.svg +1 -0
  972. package/nuxt-app/.output/public/icons/file_type_rolldown.svg +1 -0
  973. package/nuxt-app/.output/public/icons/file_type_rollup.svg +1 -0
  974. package/nuxt-app/.output/public/icons/file_type_rome.svg +1 -0
  975. package/nuxt-app/.output/public/icons/file_type_ron.svg +1 -0
  976. package/nuxt-app/.output/public/icons/file_type_rproj.svg +1 -0
  977. package/nuxt-app/.output/public/icons/file_type_rspec.svg +1 -0
  978. package/nuxt-app/.output/public/icons/file_type_rss.svg +1 -0
  979. package/nuxt-app/.output/public/icons/file_type_rubocop.svg +1 -0
  980. package/nuxt-app/.output/public/icons/file_type_ruby.svg +1 -0
  981. package/nuxt-app/.output/public/icons/file_type_rust.svg +1 -0
  982. package/nuxt-app/.output/public/icons/file_type_rust_toolchain.svg +1 -0
  983. package/nuxt-app/.output/public/icons/file_type_s-lang.svg +1 -0
  984. package/nuxt-app/.output/public/icons/file_type_safetensors.svg +1 -0
  985. package/nuxt-app/.output/public/icons/file_type_sails.svg +1 -0
  986. package/nuxt-app/.output/public/icons/file_type_saltstack.svg +1 -0
  987. package/nuxt-app/.output/public/icons/file_type_san.svg +1 -0
  988. package/nuxt-app/.output/public/icons/file_type_sapphire_framework_cli.svg +1 -0
  989. package/nuxt-app/.output/public/icons/file_type_sas.svg +1 -0
  990. package/nuxt-app/.output/public/icons/file_type_sass.svg +1 -0
  991. package/nuxt-app/.output/public/icons/file_type_sbt.svg +1 -0
  992. package/nuxt-app/.output/public/icons/file_type_scala.svg +1 -0
  993. package/nuxt-app/.output/public/icons/file_type_scilab.svg +1 -0
  994. package/nuxt-app/.output/public/icons/file_type_script.svg +1 -0
  995. package/nuxt-app/.output/public/icons/file_type_scss.svg +1 -0
  996. package/nuxt-app/.output/public/icons/file_type_scss2.svg +1 -0
  997. package/nuxt-app/.output/public/icons/file_type_sdlang.svg +1 -0
  998. package/nuxt-app/.output/public/icons/file_type_search_result.svg +1 -0
  999. package/nuxt-app/.output/public/icons/file_type_seedkit.svg +1 -0
  1000. package/nuxt-app/.output/public/icons/file_type_sentry.svg +1 -0
  1001. package/nuxt-app/.output/public/icons/file_type_sequelize.svg +1 -0
  1002. package/nuxt-app/.output/public/icons/file_type_serverless.svg +1 -0
  1003. package/nuxt-app/.output/public/icons/file_type_shadcn.svg +1 -0
  1004. package/nuxt-app/.output/public/icons/file_type_shaderlab.svg +1 -0
  1005. package/nuxt-app/.output/public/icons/file_type_shell.svg +1 -0
  1006. package/nuxt-app/.output/public/icons/file_type_shellcheck.svg +1 -0
  1007. package/nuxt-app/.output/public/icons/file_type_shuttle.svg +1 -0
  1008. package/nuxt-app/.output/public/icons/file_type_silverstripe.svg +1 -0
  1009. package/nuxt-app/.output/public/icons/file_type_sino.svg +1 -0
  1010. package/nuxt-app/.output/public/icons/file_type_sitemap.svg +1 -0
  1011. package/nuxt-app/.output/public/icons/file_type_siyuan.svg +1 -0
  1012. package/nuxt-app/.output/public/icons/file_type_sketch.svg +1 -0
  1013. package/nuxt-app/.output/public/icons/file_type_skill.svg +1 -0
  1014. package/nuxt-app/.output/public/icons/file_type_skipper.svg +1 -0
  1015. package/nuxt-app/.output/public/icons/file_type_slang.svg +1 -0
  1016. package/nuxt-app/.output/public/icons/file_type_slashup.svg +1 -0
  1017. package/nuxt-app/.output/public/icons/file_type_slice.svg +1 -0
  1018. package/nuxt-app/.output/public/icons/file_type_slim.svg +1 -0
  1019. package/nuxt-app/.output/public/icons/file_type_slint.svg +1 -0
  1020. package/nuxt-app/.output/public/icons/file_type_sln.svg +1 -0
  1021. package/nuxt-app/.output/public/icons/file_type_sln2.svg +1 -0
  1022. package/nuxt-app/.output/public/icons/file_type_smarty.svg +1 -0
  1023. package/nuxt-app/.output/public/icons/file_type_smithery.svg +1 -0
  1024. package/nuxt-app/.output/public/icons/file_type_snakemake.svg +1 -0
  1025. package/nuxt-app/.output/public/icons/file_type_snapcraft.svg +1 -0
  1026. package/nuxt-app/.output/public/icons/file_type_snaplet.svg +1 -0
  1027. package/nuxt-app/.output/public/icons/file_type_snort.svg +1 -0
  1028. package/nuxt-app/.output/public/icons/file_type_snyk.svg +1 -0
  1029. package/nuxt-app/.output/public/icons/file_type_solidarity.svg +1 -0
  1030. package/nuxt-app/.output/public/icons/file_type_solidity.svg +1 -0
  1031. package/nuxt-app/.output/public/icons/file_type_source.svg +1 -0
  1032. package/nuxt-app/.output/public/icons/file_type_spacengine.svg +1 -0
  1033. package/nuxt-app/.output/public/icons/file_type_sparql.svg +1 -0
  1034. package/nuxt-app/.output/public/icons/file_type_spin.svg +1 -0
  1035. package/nuxt-app/.output/public/icons/file_type_sqf.svg +1 -0
  1036. package/nuxt-app/.output/public/icons/file_type_sql.svg +1 -0
  1037. package/nuxt-app/.output/public/icons/file_type_sqlite.svg +1 -0
  1038. package/nuxt-app/.output/public/icons/file_type_squirrel.svg +1 -0
  1039. package/nuxt-app/.output/public/icons/file_type_sss.svg +1 -0
  1040. package/nuxt-app/.output/public/icons/file_type_sst.svg +1 -0
  1041. package/nuxt-app/.output/public/icons/file_type_stackblitz.svg +1 -0
  1042. package/nuxt-app/.output/public/icons/file_type_stan.svg +1 -0
  1043. package/nuxt-app/.output/public/icons/file_type_stata.svg +1 -0
  1044. package/nuxt-app/.output/public/icons/file_type_stencil.svg +1 -0
  1045. package/nuxt-app/.output/public/icons/file_type_storyboard.svg +1 -0
  1046. package/nuxt-app/.output/public/icons/file_type_storybook.svg +1 -0
  1047. package/nuxt-app/.output/public/icons/file_type_stryker.svg +1 -0
  1048. package/nuxt-app/.output/public/icons/file_type_stylable.svg +1 -0
  1049. package/nuxt-app/.output/public/icons/file_type_style.svg +1 -0
  1050. package/nuxt-app/.output/public/icons/file_type_styled.svg +1 -0
  1051. package/nuxt-app/.output/public/icons/file_type_stylelint.svg +1 -0
  1052. package/nuxt-app/.output/public/icons/file_type_stylish_haskell.svg +1 -0
  1053. package/nuxt-app/.output/public/icons/file_type_stylus.svg +1 -0
  1054. package/nuxt-app/.output/public/icons/file_type_sublime.svg +1 -0
  1055. package/nuxt-app/.output/public/icons/file_type_subversion.svg +1 -0
  1056. package/nuxt-app/.output/public/icons/file_type_svelte.svg +1 -0
  1057. package/nuxt-app/.output/public/icons/file_type_svelteconfig.svg +1 -0
  1058. package/nuxt-app/.output/public/icons/file_type_svg.svg +1 -0
  1059. package/nuxt-app/.output/public/icons/file_type_svgo.svg +1 -0
  1060. package/nuxt-app/.output/public/icons/file_type_swagger.svg +1 -0
  1061. package/nuxt-app/.output/public/icons/file_type_swc.svg +1 -0
  1062. package/nuxt-app/.output/public/icons/file_type_swift.svg +1 -0
  1063. package/nuxt-app/.output/public/icons/file_type_swig.svg +1 -0
  1064. package/nuxt-app/.output/public/icons/file_type_symfony.svg +1 -0
  1065. package/nuxt-app/.output/public/icons/file_type_syncpack.svg +1 -0
  1066. package/nuxt-app/.output/public/icons/file_type_systemd.svg +1 -0
  1067. package/nuxt-app/.output/public/icons/file_type_systemverilog.svg +1 -0
  1068. package/nuxt-app/.output/public/icons/file_type_t4tt.svg +1 -0
  1069. package/nuxt-app/.output/public/icons/file_type_tailwind.svg +1 -0
  1070. package/nuxt-app/.output/public/icons/file_type_tamagui.svg +1 -0
  1071. package/nuxt-app/.output/public/icons/file_type_taplo.svg +1 -0
  1072. package/nuxt-app/.output/public/icons/file_type_taskfile.svg +1 -0
  1073. package/nuxt-app/.output/public/icons/file_type_tauri.svg +1 -0
  1074. package/nuxt-app/.output/public/icons/file_type_tcl.svg +1 -0
  1075. package/nuxt-app/.output/public/icons/file_type_teal.svg +1 -0
  1076. package/nuxt-app/.output/public/icons/file_type_templ.svg +1 -0
  1077. package/nuxt-app/.output/public/icons/file_type_tera.svg +1 -0
  1078. package/nuxt-app/.output/public/icons/file_type_terraform.svg +1 -0
  1079. package/nuxt-app/.output/public/icons/file_type_test.svg +1 -0
  1080. package/nuxt-app/.output/public/icons/file_type_testcafe.svg +1 -0
  1081. package/nuxt-app/.output/public/icons/file_type_testjs.svg +1 -0
  1082. package/nuxt-app/.output/public/icons/file_type_testplane.svg +1 -0
  1083. package/nuxt-app/.output/public/icons/file_type_testts.svg +1 -0
  1084. package/nuxt-app/.output/public/icons/file_type_tex.svg +1 -0
  1085. package/nuxt-app/.output/public/icons/file_type_text.svg +1 -0
  1086. package/nuxt-app/.output/public/icons/file_type_textile.svg +1 -0
  1087. package/nuxt-app/.output/public/icons/file_type_tfs.svg +1 -0
  1088. package/nuxt-app/.output/public/icons/file_type_tiltfile.svg +1 -0
  1089. package/nuxt-app/.output/public/icons/file_type_tm.svg +1 -0
  1090. package/nuxt-app/.output/public/icons/file_type_tmux.svg +1 -0
  1091. package/nuxt-app/.output/public/icons/file_type_todo.svg +1 -0
  1092. package/nuxt-app/.output/public/icons/file_type_toit.svg +1 -0
  1093. package/nuxt-app/.output/public/icons/file_type_toml.svg +1 -0
  1094. package/nuxt-app/.output/public/icons/file_type_toon.svg +1 -0
  1095. package/nuxt-app/.output/public/icons/file_type_tox.svg +1 -0
  1096. package/nuxt-app/.output/public/icons/file_type_travis.svg +1 -0
  1097. package/nuxt-app/.output/public/icons/file_type_tree.svg +1 -0
  1098. package/nuxt-app/.output/public/icons/file_type_tres.svg +1 -0
  1099. package/nuxt-app/.output/public/icons/file_type_truffle.svg +1 -0
  1100. package/nuxt-app/.output/public/icons/file_type_trunk.svg +1 -0
  1101. package/nuxt-app/.output/public/icons/file_type_tsbuildinfo.svg +1 -0
  1102. package/nuxt-app/.output/public/icons/file_type_tscn.svg +1 -0
  1103. package/nuxt-app/.output/public/icons/file_type_tsconfig.svg +1 -0
  1104. package/nuxt-app/.output/public/icons/file_type_tsconfig_official.svg +1 -0
  1105. package/nuxt-app/.output/public/icons/file_type_tsdoc.svg +1 -0
  1106. package/nuxt-app/.output/public/icons/file_type_tsdown.svg +2 -0
  1107. package/nuxt-app/.output/public/icons/file_type_tslint.svg +1 -0
  1108. package/nuxt-app/.output/public/icons/file_type_tt.svg +1 -0
  1109. package/nuxt-app/.output/public/icons/file_type_ttcn.svg +1 -0
  1110. package/nuxt-app/.output/public/icons/file_type_tuc.svg +1 -0
  1111. package/nuxt-app/.output/public/icons/file_type_turbo.svg +1 -0
  1112. package/nuxt-app/.output/public/icons/file_type_twig.svg +1 -0
  1113. package/nuxt-app/.output/public/icons/file_type_typedoc.svg +1 -0
  1114. package/nuxt-app/.output/public/icons/file_type_typescript.svg +1 -0
  1115. package/nuxt-app/.output/public/icons/file_type_typescript_official.svg +1 -0
  1116. package/nuxt-app/.output/public/icons/file_type_typescriptdef.svg +1 -0
  1117. package/nuxt-app/.output/public/icons/file_type_typescriptdef_official.svg +1 -0
  1118. package/nuxt-app/.output/public/icons/file_type_typo3.svg +1 -0
  1119. package/nuxt-app/.output/public/icons/file_type_uiua.svg +1 -0
  1120. package/nuxt-app/.output/public/icons/file_type_unibeautify.svg +1 -0
  1121. package/nuxt-app/.output/public/icons/file_type_unison.svg +1 -0
  1122. package/nuxt-app/.output/public/icons/file_type_unlicense.svg +1 -0
  1123. package/nuxt-app/.output/public/icons/file_type_unocss.svg +1 -0
  1124. package/nuxt-app/.output/public/icons/file_type_uv.svg +1 -0
  1125. package/nuxt-app/.output/public/icons/file_type_vagrant.svg +1 -0
  1126. package/nuxt-app/.output/public/icons/file_type_vala.svg +1 -0
  1127. package/nuxt-app/.output/public/icons/file_type_vanilla_extract.svg +1 -0
  1128. package/nuxt-app/.output/public/icons/file_type_vapi.svg +1 -0
  1129. package/nuxt-app/.output/public/icons/file_type_vapor.svg +1 -0
  1130. package/nuxt-app/.output/public/icons/file_type_vash.svg +1 -0
  1131. package/nuxt-app/.output/public/icons/file_type_vb.svg +1 -0
  1132. package/nuxt-app/.output/public/icons/file_type_vba.svg +1 -0
  1133. package/nuxt-app/.output/public/icons/file_type_vbhtml.svg +1 -0
  1134. package/nuxt-app/.output/public/icons/file_type_vbproj.svg +1 -0
  1135. package/nuxt-app/.output/public/icons/file_type_vcxproj.svg +1 -0
  1136. package/nuxt-app/.output/public/icons/file_type_velocity.svg +1 -0
  1137. package/nuxt-app/.output/public/icons/file_type_vento.svg +1 -0
  1138. package/nuxt-app/.output/public/icons/file_type_vercel.svg +1 -0
  1139. package/nuxt-app/.output/public/icons/file_type_verilog.svg +1 -0
  1140. package/nuxt-app/.output/public/icons/file_type_vhdl.svg +1 -0
  1141. package/nuxt-app/.output/public/icons/file_type_video.svg +1 -0
  1142. package/nuxt-app/.output/public/icons/file_type_view.svg +1 -0
  1143. package/nuxt-app/.output/public/icons/file_type_vim.svg +1 -0
  1144. package/nuxt-app/.output/public/icons/file_type_vite.svg +1 -0
  1145. package/nuxt-app/.output/public/icons/file_type_vitest.svg +1 -0
  1146. package/nuxt-app/.output/public/icons/file_type_vlang.svg +1 -0
  1147. package/nuxt-app/.output/public/icons/file_type_volt.svg +1 -0
  1148. package/nuxt-app/.output/public/icons/file_type_vroom.svg +1 -0
  1149. package/nuxt-app/.output/public/icons/file_type_vscode-insiders.svg +1 -0
  1150. package/nuxt-app/.output/public/icons/file_type_vscode.svg +1 -0
  1151. package/nuxt-app/.output/public/icons/file_type_vscode2.svg +1 -0
  1152. package/nuxt-app/.output/public/icons/file_type_vscode3.svg +1 -0
  1153. package/nuxt-app/.output/public/icons/file_type_vscode_test.svg +1 -0
  1154. package/nuxt-app/.output/public/icons/file_type_vsix.svg +1 -0
  1155. package/nuxt-app/.output/public/icons/file_type_vsixmanifest.svg +1 -0
  1156. package/nuxt-app/.output/public/icons/file_type_vue.svg +1 -0
  1157. package/nuxt-app/.output/public/icons/file_type_vueconfig.svg +1 -0
  1158. package/nuxt-app/.output/public/icons/file_type_vvvvvv.svg +1 -0
  1159. package/nuxt-app/.output/public/icons/file_type_vyper.svg +3 -0
  1160. package/nuxt-app/.output/public/icons/file_type_wallaby.svg +1 -0
  1161. package/nuxt-app/.output/public/icons/file_type_wally.svg +1 -0
  1162. package/nuxt-app/.output/public/icons/file_type_wasm.svg +1 -0
  1163. package/nuxt-app/.output/public/icons/file_type_watchmanconfig.svg +1 -0
  1164. package/nuxt-app/.output/public/icons/file_type_wdio.svg +1 -0
  1165. package/nuxt-app/.output/public/icons/file_type_weblate.svg +1 -0
  1166. package/nuxt-app/.output/public/icons/file_type_webpack.svg +1 -0
  1167. package/nuxt-app/.output/public/icons/file_type_wenyan.svg +1 -0
  1168. package/nuxt-app/.output/public/icons/file_type_wercker.svg +1 -0
  1169. package/nuxt-app/.output/public/icons/file_type_wgsl.svg +86 -0
  1170. package/nuxt-app/.output/public/icons/file_type_wikitext.svg +1 -0
  1171. package/nuxt-app/.output/public/icons/file_type_windi.svg +1 -0
  1172. package/nuxt-app/.output/public/icons/file_type_wit.svg +1 -0
  1173. package/nuxt-app/.output/public/icons/file_type_wolfram.svg +1 -0
  1174. package/nuxt-app/.output/public/icons/file_type_word.svg +1 -0
  1175. package/nuxt-app/.output/public/icons/file_type_word2.svg +1 -0
  1176. package/nuxt-app/.output/public/icons/file_type_wpml.svg +1 -0
  1177. package/nuxt-app/.output/public/icons/file_type_wurst.svg +1 -0
  1178. package/nuxt-app/.output/public/icons/file_type_wxml.svg +1 -0
  1179. package/nuxt-app/.output/public/icons/file_type_wxss.svg +1 -0
  1180. package/nuxt-app/.output/public/icons/file_type_wxt.svg +1 -0
  1181. package/nuxt-app/.output/public/icons/file_type_xaml.svg +1 -0
  1182. package/nuxt-app/.output/public/icons/file_type_xcode.svg +1 -0
  1183. package/nuxt-app/.output/public/icons/file_type_xfl.svg +1 -0
  1184. package/nuxt-app/.output/public/icons/file_type_xib.svg +1 -0
  1185. package/nuxt-app/.output/public/icons/file_type_xliff.svg +1 -0
  1186. package/nuxt-app/.output/public/icons/file_type_xmake.svg +1 -0
  1187. package/nuxt-app/.output/public/icons/file_type_xml.svg +1 -0
  1188. package/nuxt-app/.output/public/icons/file_type_xo.svg +1 -0
  1189. package/nuxt-app/.output/public/icons/file_type_xorg.svg +1 -0
  1190. package/nuxt-app/.output/public/icons/file_type_xquery.svg +1 -0
  1191. package/nuxt-app/.output/public/icons/file_type_xsl.svg +1 -0
  1192. package/nuxt-app/.output/public/icons/file_type_yacc.svg +1 -0
  1193. package/nuxt-app/.output/public/icons/file_type_yaml.svg +1 -0
  1194. package/nuxt-app/.output/public/icons/file_type_yaml_official.svg +1 -0
  1195. package/nuxt-app/.output/public/icons/file_type_yamllint.svg +1 -0
  1196. package/nuxt-app/.output/public/icons/file_type_yandex.svg +1 -0
  1197. package/nuxt-app/.output/public/icons/file_type_yang.svg +1 -0
  1198. package/nuxt-app/.output/public/icons/file_type_yarn.svg +1 -0
  1199. package/nuxt-app/.output/public/icons/file_type_yeoman.svg +1 -0
  1200. package/nuxt-app/.output/public/icons/file_type_zig.svg +1 -0
  1201. package/nuxt-app/.output/public/icons/file_type_zip.svg +1 -0
  1202. package/nuxt-app/.output/public/icons/file_type_zip2.svg +1 -0
  1203. package/nuxt-app/.output/public/icons/folder_type_android.svg +1 -0
  1204. package/nuxt-app/.output/public/icons/folder_type_android_opened.svg +1 -0
  1205. package/nuxt-app/.output/public/icons/folder_type_angular.svg +1 -0
  1206. package/nuxt-app/.output/public/icons/folder_type_angular_opened.svg +1 -0
  1207. package/nuxt-app/.output/public/icons/folder_type_apache.svg +1 -0
  1208. package/nuxt-app/.output/public/icons/folder_type_apache_opened.svg +1 -0
  1209. package/nuxt-app/.output/public/icons/folder_type_api.svg +1 -0
  1210. package/nuxt-app/.output/public/icons/folder_type_api_opened.svg +1 -0
  1211. package/nuxt-app/.output/public/icons/folder_type_app.svg +1 -0
  1212. package/nuxt-app/.output/public/icons/folder_type_app_opened.svg +1 -0
  1213. package/nuxt-app/.output/public/icons/folder_type_arangodb.svg +1 -0
  1214. package/nuxt-app/.output/public/icons/folder_type_arangodb_opened.svg +1 -0
  1215. package/nuxt-app/.output/public/icons/folder_type_asset.svg +1 -0
  1216. package/nuxt-app/.output/public/icons/folder_type_asset_opened.svg +1 -0
  1217. package/nuxt-app/.output/public/icons/folder_type_astro.svg +1 -0
  1218. package/nuxt-app/.output/public/icons/folder_type_astro_opened.svg +1 -0
  1219. package/nuxt-app/.output/public/icons/folder_type_audio.svg +1 -0
  1220. package/nuxt-app/.output/public/icons/folder_type_audio_opened.svg +1 -0
  1221. package/nuxt-app/.output/public/icons/folder_type_aurelia.svg +1 -0
  1222. package/nuxt-app/.output/public/icons/folder_type_aurelia_opened.svg +1 -0
  1223. package/nuxt-app/.output/public/icons/folder_type_aws.svg +1 -0
  1224. package/nuxt-app/.output/public/icons/folder_type_aws_opened.svg +1 -0
  1225. package/nuxt-app/.output/public/icons/folder_type_azure.svg +1 -0
  1226. package/nuxt-app/.output/public/icons/folder_type_azure_opened.svg +1 -0
  1227. package/nuxt-app/.output/public/icons/folder_type_azurepipelines.svg +1 -0
  1228. package/nuxt-app/.output/public/icons/folder_type_azurepipelines_opened.svg +1 -0
  1229. package/nuxt-app/.output/public/icons/folder_type_binary.svg +1 -0
  1230. package/nuxt-app/.output/public/icons/folder_type_binary_opened.svg +1 -0
  1231. package/nuxt-app/.output/public/icons/folder_type_bloc.svg +1 -0
  1232. package/nuxt-app/.output/public/icons/folder_type_bloc_opened.svg +1 -0
  1233. package/nuxt-app/.output/public/icons/folder_type_blueprint.svg +1 -0
  1234. package/nuxt-app/.output/public/icons/folder_type_blueprint_opened.svg +1 -0
  1235. package/nuxt-app/.output/public/icons/folder_type_bot.svg +1 -0
  1236. package/nuxt-app/.output/public/icons/folder_type_bot_opened.svg +1 -0
  1237. package/nuxt-app/.output/public/icons/folder_type_bower.svg +1 -0
  1238. package/nuxt-app/.output/public/icons/folder_type_bower_opened.svg +1 -0
  1239. package/nuxt-app/.output/public/icons/folder_type_buildkite.svg +1 -0
  1240. package/nuxt-app/.output/public/icons/folder_type_buildkite_opened.svg +1 -0
  1241. package/nuxt-app/.output/public/icons/folder_type_cake.svg +1 -0
  1242. package/nuxt-app/.output/public/icons/folder_type_cake_opened.svg +1 -0
  1243. package/nuxt-app/.output/public/icons/folder_type_cargo.svg +1 -0
  1244. package/nuxt-app/.output/public/icons/folder_type_cargo_opened.svg +1 -0
  1245. package/nuxt-app/.output/public/icons/folder_type_certificate.svg +1 -0
  1246. package/nuxt-app/.output/public/icons/folder_type_certificate_opened.svg +1 -0
  1247. package/nuxt-app/.output/public/icons/folder_type_changesets.svg +1 -0
  1248. package/nuxt-app/.output/public/icons/folder_type_changesets_opened.svg +1 -0
  1249. package/nuxt-app/.output/public/icons/folder_type_chef.svg +1 -0
  1250. package/nuxt-app/.output/public/icons/folder_type_chef_opened.svg +1 -0
  1251. package/nuxt-app/.output/public/icons/folder_type_circleci.svg +1 -0
  1252. package/nuxt-app/.output/public/icons/folder_type_circleci_opened.svg +1 -0
  1253. package/nuxt-app/.output/public/icons/folder_type_claude.svg +1 -0
  1254. package/nuxt-app/.output/public/icons/folder_type_claude_opened.svg +1 -0
  1255. package/nuxt-app/.output/public/icons/folder_type_cli.svg +1 -0
  1256. package/nuxt-app/.output/public/icons/folder_type_cli_opened.svg +1 -0
  1257. package/nuxt-app/.output/public/icons/folder_type_client.svg +1 -0
  1258. package/nuxt-app/.output/public/icons/folder_type_client_opened.svg +1 -0
  1259. package/nuxt-app/.output/public/icons/folder_type_cloudflare.svg +1 -0
  1260. package/nuxt-app/.output/public/icons/folder_type_cloudflare_opened.svg +1 -0
  1261. package/nuxt-app/.output/public/icons/folder_type_cmake.svg +1 -0
  1262. package/nuxt-app/.output/public/icons/folder_type_cmake_opened.svg +1 -0
  1263. package/nuxt-app/.output/public/icons/folder_type_common.svg +1 -0
  1264. package/nuxt-app/.output/public/icons/folder_type_common_opened.svg +1 -0
  1265. package/nuxt-app/.output/public/icons/folder_type_component.svg +1 -0
  1266. package/nuxt-app/.output/public/icons/folder_type_component_opened.svg +1 -0
  1267. package/nuxt-app/.output/public/icons/folder_type_composer.svg +1 -0
  1268. package/nuxt-app/.output/public/icons/folder_type_composer_opened.svg +1 -0
  1269. package/nuxt-app/.output/public/icons/folder_type_config.svg +1 -0
  1270. package/nuxt-app/.output/public/icons/folder_type_config_opened.svg +1 -0
  1271. package/nuxt-app/.output/public/icons/folder_type_controller.svg +1 -0
  1272. package/nuxt-app/.output/public/icons/folder_type_controller_opened.svg +1 -0
  1273. package/nuxt-app/.output/public/icons/folder_type_coverage.svg +1 -0
  1274. package/nuxt-app/.output/public/icons/folder_type_coverage_opened.svg +1 -0
  1275. package/nuxt-app/.output/public/icons/folder_type_css.svg +1 -0
  1276. package/nuxt-app/.output/public/icons/folder_type_css2.svg +1 -0
  1277. package/nuxt-app/.output/public/icons/folder_type_css2_opened.svg +1 -0
  1278. package/nuxt-app/.output/public/icons/folder_type_css_opened.svg +1 -0
  1279. package/nuxt-app/.output/public/icons/folder_type_cubit.svg +1 -0
  1280. package/nuxt-app/.output/public/icons/folder_type_cubit_opened.svg +1 -0
  1281. package/nuxt-app/.output/public/icons/folder_type_cursor.svg +1 -0
  1282. package/nuxt-app/.output/public/icons/folder_type_cursor_opened.svg +1 -0
  1283. package/nuxt-app/.output/public/icons/folder_type_cypress.svg +1 -0
  1284. package/nuxt-app/.output/public/icons/folder_type_cypress_opened.svg +1 -0
  1285. package/nuxt-app/.output/public/icons/folder_type_dapr.svg +1 -0
  1286. package/nuxt-app/.output/public/icons/folder_type_dapr_opened.svg +1 -0
  1287. package/nuxt-app/.output/public/icons/folder_type_dart.svg +1 -0
  1288. package/nuxt-app/.output/public/icons/folder_type_dart_opened.svg +1 -0
  1289. package/nuxt-app/.output/public/icons/folder_type_datadog.svg +66 -0
  1290. package/nuxt-app/.output/public/icons/folder_type_datadog_opened.svg +1 -0
  1291. package/nuxt-app/.output/public/icons/folder_type_db.svg +1 -0
  1292. package/nuxt-app/.output/public/icons/folder_type_db_opened.svg +1 -0
  1293. package/nuxt-app/.output/public/icons/folder_type_debian.svg +1 -0
  1294. package/nuxt-app/.output/public/icons/folder_type_debian_opened.svg +1 -0
  1295. package/nuxt-app/.output/public/icons/folder_type_dependabot.svg +1 -0
  1296. package/nuxt-app/.output/public/icons/folder_type_dependabot_opened.svg +1 -0
  1297. package/nuxt-app/.output/public/icons/folder_type_devcontainer.svg +1 -0
  1298. package/nuxt-app/.output/public/icons/folder_type_devcontainer_opened.svg +1 -0
  1299. package/nuxt-app/.output/public/icons/folder_type_dist.svg +1 -0
  1300. package/nuxt-app/.output/public/icons/folder_type_dist_opened.svg +1 -0
  1301. package/nuxt-app/.output/public/icons/folder_type_docker.svg +1 -0
  1302. package/nuxt-app/.output/public/icons/folder_type_docker_opened.svg +1 -0
  1303. package/nuxt-app/.output/public/icons/folder_type_docs.svg +1 -0
  1304. package/nuxt-app/.output/public/icons/folder_type_docs_opened.svg +1 -0
  1305. package/nuxt-app/.output/public/icons/folder_type_e2e.svg +1 -0
  1306. package/nuxt-app/.output/public/icons/folder_type_e2e_opened.svg +1 -0
  1307. package/nuxt-app/.output/public/icons/folder_type_elasticbeanstalk.svg +1 -0
  1308. package/nuxt-app/.output/public/icons/folder_type_elasticbeanstalk_opened.svg +1 -0
  1309. package/nuxt-app/.output/public/icons/folder_type_electron.svg +1 -0
  1310. package/nuxt-app/.output/public/icons/folder_type_electron_opened.svg +1 -0
  1311. package/nuxt-app/.output/public/icons/folder_type_expo.svg +1 -0
  1312. package/nuxt-app/.output/public/icons/folder_type_expo_opened.svg +1 -0
  1313. package/nuxt-app/.output/public/icons/folder_type_favicon.svg +1 -0
  1314. package/nuxt-app/.output/public/icons/folder_type_favicon_opened.svg +1 -0
  1315. package/nuxt-app/.output/public/icons/folder_type_flow.svg +1 -0
  1316. package/nuxt-app/.output/public/icons/folder_type_flow_opened.svg +1 -0
  1317. package/nuxt-app/.output/public/icons/folder_type_flutter.svg +1 -0
  1318. package/nuxt-app/.output/public/icons/folder_type_flutter_opened.svg +1 -0
  1319. package/nuxt-app/.output/public/icons/folder_type_fonts.svg +1 -0
  1320. package/nuxt-app/.output/public/icons/folder_type_fonts_opened.svg +1 -0
  1321. package/nuxt-app/.output/public/icons/folder_type_frontcommerce.svg +1 -0
  1322. package/nuxt-app/.output/public/icons/folder_type_frontcommerce_opened.svg +1 -0
  1323. package/nuxt-app/.output/public/icons/folder_type_gcp.svg +1 -0
  1324. package/nuxt-app/.output/public/icons/folder_type_gcp_opened.svg +1 -0
  1325. package/nuxt-app/.output/public/icons/folder_type_gemini.svg +1 -0
  1326. package/nuxt-app/.output/public/icons/folder_type_gemini_opened.svg +1 -0
  1327. package/nuxt-app/.output/public/icons/folder_type_git.svg +1 -0
  1328. package/nuxt-app/.output/public/icons/folder_type_git_opened.svg +1 -0
  1329. package/nuxt-app/.output/public/icons/folder_type_github.svg +1 -0
  1330. package/nuxt-app/.output/public/icons/folder_type_github_opened.svg +1 -0
  1331. package/nuxt-app/.output/public/icons/folder_type_gitlab.svg +1 -0
  1332. package/nuxt-app/.output/public/icons/folder_type_gitlab_opened.svg +1 -0
  1333. package/nuxt-app/.output/public/icons/folder_type_godot.svg +1 -0
  1334. package/nuxt-app/.output/public/icons/folder_type_godot_opened.svg +1 -0
  1335. package/nuxt-app/.output/public/icons/folder_type_gradle.svg +1 -0
  1336. package/nuxt-app/.output/public/icons/folder_type_gradle_opened.svg +1 -0
  1337. package/nuxt-app/.output/public/icons/folder_type_graphql.svg +1 -0
  1338. package/nuxt-app/.output/public/icons/folder_type_graphql_opened.svg +1 -0
  1339. package/nuxt-app/.output/public/icons/folder_type_grunt.svg +1 -0
  1340. package/nuxt-app/.output/public/icons/folder_type_grunt_opened.svg +1 -0
  1341. package/nuxt-app/.output/public/icons/folder_type_gulp.svg +1 -0
  1342. package/nuxt-app/.output/public/icons/folder_type_gulp_opened.svg +1 -0
  1343. package/nuxt-app/.output/public/icons/folder_type_haxelib.svg +1 -0
  1344. package/nuxt-app/.output/public/icons/folder_type_haxelib_opened.svg +1 -0
  1345. package/nuxt-app/.output/public/icons/folder_type_helper.svg +1 -0
  1346. package/nuxt-app/.output/public/icons/folder_type_helper_opened.svg +1 -0
  1347. package/nuxt-app/.output/public/icons/folder_type_histoire.svg +1 -0
  1348. package/nuxt-app/.output/public/icons/folder_type_histoire_opened.svg +1 -0
  1349. package/nuxt-app/.output/public/icons/folder_type_hook.svg +1 -0
  1350. package/nuxt-app/.output/public/icons/folder_type_hook_opened.svg +1 -0
  1351. package/nuxt-app/.output/public/icons/folder_type_husky.svg +1 -0
  1352. package/nuxt-app/.output/public/icons/folder_type_husky_opened.svg +1 -0
  1353. package/nuxt-app/.output/public/icons/folder_type_idea.svg +1 -0
  1354. package/nuxt-app/.output/public/icons/folder_type_idea_opened.svg +1 -0
  1355. package/nuxt-app/.output/public/icons/folder_type_images.svg +1 -0
  1356. package/nuxt-app/.output/public/icons/folder_type_images_opened.svg +1 -0
  1357. package/nuxt-app/.output/public/icons/folder_type_include.svg +1 -0
  1358. package/nuxt-app/.output/public/icons/folder_type_include_opened.svg +1 -0
  1359. package/nuxt-app/.output/public/icons/folder_type_interfaces.svg +1 -0
  1360. package/nuxt-app/.output/public/icons/folder_type_interfaces_opened.svg +1 -0
  1361. package/nuxt-app/.output/public/icons/folder_type_ios.svg +1 -0
  1362. package/nuxt-app/.output/public/icons/folder_type_ios_opened.svg +1 -0
  1363. package/nuxt-app/.output/public/icons/folder_type_js.svg +1 -0
  1364. package/nuxt-app/.output/public/icons/folder_type_js_opened.svg +1 -0
  1365. package/nuxt-app/.output/public/icons/folder_type_json.svg +1 -0
  1366. package/nuxt-app/.output/public/icons/folder_type_json_official.svg +1 -0
  1367. package/nuxt-app/.output/public/icons/folder_type_json_official_opened.svg +1 -0
  1368. package/nuxt-app/.output/public/icons/folder_type_json_opened.svg +1 -0
  1369. package/nuxt-app/.output/public/icons/folder_type_junie.svg +1 -0
  1370. package/nuxt-app/.output/public/icons/folder_type_junie_opened.svg +1 -0
  1371. package/nuxt-app/.output/public/icons/folder_type_kotlin.svg +1 -0
  1372. package/nuxt-app/.output/public/icons/folder_type_kotlin_opened.svg +1 -0
  1373. package/nuxt-app/.output/public/icons/folder_type_kubernetes.svg +1 -0
  1374. package/nuxt-app/.output/public/icons/folder_type_kubernetes_opened.svg +1 -0
  1375. package/nuxt-app/.output/public/icons/folder_type_less.svg +1 -0
  1376. package/nuxt-app/.output/public/icons/folder_type_less_opened.svg +1 -0
  1377. package/nuxt-app/.output/public/icons/folder_type_library.svg +1 -0
  1378. package/nuxt-app/.output/public/icons/folder_type_library_opened.svg +1 -0
  1379. package/nuxt-app/.output/public/icons/folder_type_light_cursor.svg +1 -0
  1380. package/nuxt-app/.output/public/icons/folder_type_light_cursor_opened.svg +1 -0
  1381. package/nuxt-app/.output/public/icons/folder_type_light_cypress.svg +1 -0
  1382. package/nuxt-app/.output/public/icons/folder_type_light_cypress_opened.svg +1 -0
  1383. package/nuxt-app/.output/public/icons/folder_type_light_electron.svg +1 -0
  1384. package/nuxt-app/.output/public/icons/folder_type_light_electron_opened.svg +1 -0
  1385. package/nuxt-app/.output/public/icons/folder_type_light_expo.svg +1 -0
  1386. package/nuxt-app/.output/public/icons/folder_type_light_expo_opened.svg +1 -0
  1387. package/nuxt-app/.output/public/icons/folder_type_light_fonts.svg +1 -0
  1388. package/nuxt-app/.output/public/icons/folder_type_light_fonts_opened.svg +1 -0
  1389. package/nuxt-app/.output/public/icons/folder_type_light_gradle.svg +1 -0
  1390. package/nuxt-app/.output/public/icons/folder_type_light_gradle_opened.svg +1 -0
  1391. package/nuxt-app/.output/public/icons/folder_type_light_meteor.svg +1 -0
  1392. package/nuxt-app/.output/public/icons/folder_type_light_meteor_opened.svg +1 -0
  1393. package/nuxt-app/.output/public/icons/folder_type_light_mypy.svg +1 -0
  1394. package/nuxt-app/.output/public/icons/folder_type_light_mypy_opened.svg +1 -0
  1395. package/nuxt-app/.output/public/icons/folder_type_light_mysql.svg +1 -0
  1396. package/nuxt-app/.output/public/icons/folder_type_light_mysql_opened.svg +1 -0
  1397. package/nuxt-app/.output/public/icons/folder_type_light_node.svg +1 -0
  1398. package/nuxt-app/.output/public/icons/folder_type_light_node_opened.svg +1 -0
  1399. package/nuxt-app/.output/public/icons/folder_type_light_redux.svg +1 -0
  1400. package/nuxt-app/.output/public/icons/folder_type_light_redux_opened.svg +1 -0
  1401. package/nuxt-app/.output/public/icons/folder_type_light_sass.svg +1 -0
  1402. package/nuxt-app/.output/public/icons/folder_type_light_sass_opened.svg +1 -0
  1403. package/nuxt-app/.output/public/icons/folder_type_light_zed.svg +1 -0
  1404. package/nuxt-app/.output/public/icons/folder_type_light_zed_opened.svg +1 -0
  1405. package/nuxt-app/.output/public/icons/folder_type_linux.svg +1 -0
  1406. package/nuxt-app/.output/public/icons/folder_type_linux_opened.svg +1 -0
  1407. package/nuxt-app/.output/public/icons/folder_type_locale.svg +1 -0
  1408. package/nuxt-app/.output/public/icons/folder_type_locale_opened.svg +1 -0
  1409. package/nuxt-app/.output/public/icons/folder_type_log.svg +1 -0
  1410. package/nuxt-app/.output/public/icons/folder_type_log_opened.svg +1 -0
  1411. package/nuxt-app/.output/public/icons/folder_type_macos.svg +1 -0
  1412. package/nuxt-app/.output/public/icons/folder_type_macos_opened.svg +1 -0
  1413. package/nuxt-app/.output/public/icons/folder_type_mariadb.svg +1 -0
  1414. package/nuxt-app/.output/public/icons/folder_type_mariadb_opened.svg +1 -0
  1415. package/nuxt-app/.output/public/icons/folder_type_maven.svg +1 -0
  1416. package/nuxt-app/.output/public/icons/folder_type_maven_opened.svg +1 -0
  1417. package/nuxt-app/.output/public/icons/folder_type_mediawiki.svg +41 -0
  1418. package/nuxt-app/.output/public/icons/folder_type_mediawiki_opened.svg +42 -0
  1419. package/nuxt-app/.output/public/icons/folder_type_memcached.svg +1 -0
  1420. package/nuxt-app/.output/public/icons/folder_type_memcached_opened.svg +1 -0
  1421. package/nuxt-app/.output/public/icons/folder_type_meteor.svg +1 -0
  1422. package/nuxt-app/.output/public/icons/folder_type_meteor_opened.svg +1 -0
  1423. package/nuxt-app/.output/public/icons/folder_type_middleware.svg +1 -0
  1424. package/nuxt-app/.output/public/icons/folder_type_middleware_opened.svg +1 -0
  1425. package/nuxt-app/.output/public/icons/folder_type_minecraft.svg +1 -0
  1426. package/nuxt-app/.output/public/icons/folder_type_minecraft_opened.svg +1 -0
  1427. package/nuxt-app/.output/public/icons/folder_type_minikube.svg +1 -0
  1428. package/nuxt-app/.output/public/icons/folder_type_minikube_opened.svg +1 -0
  1429. package/nuxt-app/.output/public/icons/folder_type_mjml.svg +1 -0
  1430. package/nuxt-app/.output/public/icons/folder_type_mjml_opened.svg +1 -0
  1431. package/nuxt-app/.output/public/icons/folder_type_mock.svg +1 -0
  1432. package/nuxt-app/.output/public/icons/folder_type_mock_opened.svg +1 -0
  1433. package/nuxt-app/.output/public/icons/folder_type_model.svg +1 -0
  1434. package/nuxt-app/.output/public/icons/folder_type_model_opened.svg +1 -0
  1435. package/nuxt-app/.output/public/icons/folder_type_module.svg +1 -0
  1436. package/nuxt-app/.output/public/icons/folder_type_module_opened.svg +1 -0
  1437. package/nuxt-app/.output/public/icons/folder_type_mojo.svg +1 -0
  1438. package/nuxt-app/.output/public/icons/folder_type_mojo_opened.svg +1 -0
  1439. package/nuxt-app/.output/public/icons/folder_type_mongodb.svg +1 -0
  1440. package/nuxt-app/.output/public/icons/folder_type_mongodb_opened.svg +1 -0
  1441. package/nuxt-app/.output/public/icons/folder_type_mypy.svg +1 -0
  1442. package/nuxt-app/.output/public/icons/folder_type_mypy_opened.svg +1 -0
  1443. package/nuxt-app/.output/public/icons/folder_type_mysql.svg +1 -0
  1444. package/nuxt-app/.output/public/icons/folder_type_mysql_opened.svg +1 -0
  1445. package/nuxt-app/.output/public/icons/folder_type_netlify.svg +1 -0
  1446. package/nuxt-app/.output/public/icons/folder_type_netlify_opened.svg +1 -0
  1447. package/nuxt-app/.output/public/icons/folder_type_next.svg +1 -0
  1448. package/nuxt-app/.output/public/icons/folder_type_next_opened.svg +1 -0
  1449. package/nuxt-app/.output/public/icons/folder_type_nginx.svg +1 -0
  1450. package/nuxt-app/.output/public/icons/folder_type_nginx_opened.svg +1 -0
  1451. package/nuxt-app/.output/public/icons/folder_type_nix.svg +1 -0
  1452. package/nuxt-app/.output/public/icons/folder_type_nix_opened.svg +1 -0
  1453. package/nuxt-app/.output/public/icons/folder_type_node.svg +1 -0
  1454. package/nuxt-app/.output/public/icons/folder_type_node_opened.svg +1 -0
  1455. package/nuxt-app/.output/public/icons/folder_type_notebooks.svg +1 -0
  1456. package/nuxt-app/.output/public/icons/folder_type_notebooks_opened.svg +1 -0
  1457. package/nuxt-app/.output/public/icons/folder_type_notification.svg +1 -0
  1458. package/nuxt-app/.output/public/icons/folder_type_notification_opened.svg +1 -0
  1459. package/nuxt-app/.output/public/icons/folder_type_nuget.svg +1 -0
  1460. package/nuxt-app/.output/public/icons/folder_type_nuget_opened.svg +1 -0
  1461. package/nuxt-app/.output/public/icons/folder_type_nuxt.svg +1 -0
  1462. package/nuxt-app/.output/public/icons/folder_type_nuxt_opened.svg +1 -0
  1463. package/nuxt-app/.output/public/icons/folder_type_package.svg +1 -0
  1464. package/nuxt-app/.output/public/icons/folder_type_package_opened.svg +1 -0
  1465. package/nuxt-app/.output/public/icons/folder_type_paket.svg +1 -0
  1466. package/nuxt-app/.output/public/icons/folder_type_paket_opened.svg +1 -0
  1467. package/nuxt-app/.output/public/icons/folder_type_php.svg +1 -0
  1468. package/nuxt-app/.output/public/icons/folder_type_php_opened.svg +1 -0
  1469. package/nuxt-app/.output/public/icons/folder_type_platformio.svg +1 -0
  1470. package/nuxt-app/.output/public/icons/folder_type_platformio_opened.svg +1 -0
  1471. package/nuxt-app/.output/public/icons/folder_type_plugin.svg +1 -0
  1472. package/nuxt-app/.output/public/icons/folder_type_plugin_opened.svg +1 -0
  1473. package/nuxt-app/.output/public/icons/folder_type_prisma.svg +1 -0
  1474. package/nuxt-app/.output/public/icons/folder_type_prisma_opened.svg +1 -0
  1475. package/nuxt-app/.output/public/icons/folder_type_private.svg +1 -0
  1476. package/nuxt-app/.output/public/icons/folder_type_private_opened.svg +1 -0
  1477. package/nuxt-app/.output/public/icons/folder_type_public.svg +1 -0
  1478. package/nuxt-app/.output/public/icons/folder_type_public_opened.svg +1 -0
  1479. package/nuxt-app/.output/public/icons/folder_type_pytest.svg +1 -0
  1480. package/nuxt-app/.output/public/icons/folder_type_pytest_opened.svg +1 -0
  1481. package/nuxt-app/.output/public/icons/folder_type_python.svg +1 -0
  1482. package/nuxt-app/.output/public/icons/folder_type_python_opened.svg +1 -0
  1483. package/nuxt-app/.output/public/icons/folder_type_ravendb.svg +1 -0
  1484. package/nuxt-app/.output/public/icons/folder_type_ravendb_opened.svg +1 -0
  1485. package/nuxt-app/.output/public/icons/folder_type_redis.svg +1 -0
  1486. package/nuxt-app/.output/public/icons/folder_type_redis_opened.svg +1 -0
  1487. package/nuxt-app/.output/public/icons/folder_type_redux.svg +1 -0
  1488. package/nuxt-app/.output/public/icons/folder_type_redux_opened.svg +1 -0
  1489. package/nuxt-app/.output/public/icons/folder_type_route.svg +1 -0
  1490. package/nuxt-app/.output/public/icons/folder_type_route_opened.svg +1 -0
  1491. package/nuxt-app/.output/public/icons/folder_type_sass.svg +1 -0
  1492. package/nuxt-app/.output/public/icons/folder_type_sass_opened.svg +1 -0
  1493. package/nuxt-app/.output/public/icons/folder_type_script.svg +1 -0
  1494. package/nuxt-app/.output/public/icons/folder_type_script_opened.svg +1 -0
  1495. package/nuxt-app/.output/public/icons/folder_type_seedkit.svg +1 -0
  1496. package/nuxt-app/.output/public/icons/folder_type_seedkit_opened.svg +1 -0
  1497. package/nuxt-app/.output/public/icons/folder_type_server.svg +1 -0
  1498. package/nuxt-app/.output/public/icons/folder_type_server_opened.svg +1 -0
  1499. package/nuxt-app/.output/public/icons/folder_type_services.svg +1 -0
  1500. package/nuxt-app/.output/public/icons/folder_type_services_opened.svg +1 -0
  1501. package/nuxt-app/.output/public/icons/folder_type_shared.svg +1 -0
  1502. package/nuxt-app/.output/public/icons/folder_type_shared_opened.svg +1 -0
  1503. package/nuxt-app/.output/public/icons/folder_type_snaplet.svg +1 -0
  1504. package/nuxt-app/.output/public/icons/folder_type_snaplet_opened.svg +1 -0
  1505. package/nuxt-app/.output/public/icons/folder_type_spin.svg +1 -0
  1506. package/nuxt-app/.output/public/icons/folder_type_spin_opened.svg +1 -0
  1507. package/nuxt-app/.output/public/icons/folder_type_src.svg +1 -0
  1508. package/nuxt-app/.output/public/icons/folder_type_src_opened.svg +1 -0
  1509. package/nuxt-app/.output/public/icons/folder_type_sso.svg +1 -0
  1510. package/nuxt-app/.output/public/icons/folder_type_sso_opened.svg +1 -0
  1511. package/nuxt-app/.output/public/icons/folder_type_story.svg +1 -0
  1512. package/nuxt-app/.output/public/icons/folder_type_story_opened.svg +1 -0
  1513. package/nuxt-app/.output/public/icons/folder_type_style.svg +1 -0
  1514. package/nuxt-app/.output/public/icons/folder_type_style_opened.svg +1 -0
  1515. package/nuxt-app/.output/public/icons/folder_type_supabase.svg +1 -0
  1516. package/nuxt-app/.output/public/icons/folder_type_supabase_opened.svg +1 -0
  1517. package/nuxt-app/.output/public/icons/folder_type_svelte.svg +1 -0
  1518. package/nuxt-app/.output/public/icons/folder_type_svelte_opened.svg +1 -0
  1519. package/nuxt-app/.output/public/icons/folder_type_tauri.svg +1 -0
  1520. package/nuxt-app/.output/public/icons/folder_type_tauri_opened.svg +1 -0
  1521. package/nuxt-app/.output/public/icons/folder_type_temp.svg +1 -0
  1522. package/nuxt-app/.output/public/icons/folder_type_temp_opened.svg +1 -0
  1523. package/nuxt-app/.output/public/icons/folder_type_template.svg +1 -0
  1524. package/nuxt-app/.output/public/icons/folder_type_template_opened.svg +1 -0
  1525. package/nuxt-app/.output/public/icons/folder_type_test.svg +1 -0
  1526. package/nuxt-app/.output/public/icons/folder_type_test_opened.svg +1 -0
  1527. package/nuxt-app/.output/public/icons/folder_type_theme.svg +1 -0
  1528. package/nuxt-app/.output/public/icons/folder_type_theme_opened.svg +1 -0
  1529. package/nuxt-app/.output/public/icons/folder_type_tools.svg +1 -0
  1530. package/nuxt-app/.output/public/icons/folder_type_tools_opened.svg +1 -0
  1531. package/nuxt-app/.output/public/icons/folder_type_travis.svg +1 -0
  1532. package/nuxt-app/.output/public/icons/folder_type_travis_opened.svg +1 -0
  1533. package/nuxt-app/.output/public/icons/folder_type_trunk.svg +1 -0
  1534. package/nuxt-app/.output/public/icons/folder_type_trunk_opened.svg +1 -0
  1535. package/nuxt-app/.output/public/icons/folder_type_turbo.svg +1 -0
  1536. package/nuxt-app/.output/public/icons/folder_type_turbo_opened.svg +1 -0
  1537. package/nuxt-app/.output/public/icons/folder_type_typescript.svg +1 -0
  1538. package/nuxt-app/.output/public/icons/folder_type_typescript_opened.svg +1 -0
  1539. package/nuxt-app/.output/public/icons/folder_type_typings.svg +1 -0
  1540. package/nuxt-app/.output/public/icons/folder_type_typings2.svg +1 -0
  1541. package/nuxt-app/.output/public/icons/folder_type_typings2_opened.svg +1 -0
  1542. package/nuxt-app/.output/public/icons/folder_type_typings_opened.svg +1 -0
  1543. package/nuxt-app/.output/public/icons/folder_type_vagrant.svg +1 -0
  1544. package/nuxt-app/.output/public/icons/folder_type_vagrant_opened.svg +1 -0
  1545. package/nuxt-app/.output/public/icons/folder_type_vercel.svg +1 -0
  1546. package/nuxt-app/.output/public/icons/folder_type_vercel_opened.svg +1 -0
  1547. package/nuxt-app/.output/public/icons/folder_type_video.svg +1 -0
  1548. package/nuxt-app/.output/public/icons/folder_type_video_opened.svg +1 -0
  1549. package/nuxt-app/.output/public/icons/folder_type_view.svg +1 -0
  1550. package/nuxt-app/.output/public/icons/folder_type_view_opened.svg +1 -0
  1551. package/nuxt-app/.output/public/icons/folder_type_vitepress.svg +1 -0
  1552. package/nuxt-app/.output/public/icons/folder_type_vitepress_opened.svg +1 -0
  1553. package/nuxt-app/.output/public/icons/folder_type_vs.svg +1 -0
  1554. package/nuxt-app/.output/public/icons/folder_type_vs2.svg +1 -0
  1555. package/nuxt-app/.output/public/icons/folder_type_vs2_opened.svg +1 -0
  1556. package/nuxt-app/.output/public/icons/folder_type_vs_opened.svg +1 -0
  1557. package/nuxt-app/.output/public/icons/folder_type_vscode.svg +1 -0
  1558. package/nuxt-app/.output/public/icons/folder_type_vscode2.svg +1 -0
  1559. package/nuxt-app/.output/public/icons/folder_type_vscode2_opened.svg +1 -0
  1560. package/nuxt-app/.output/public/icons/folder_type_vscode3.svg +1 -0
  1561. package/nuxt-app/.output/public/icons/folder_type_vscode3_opened.svg +1 -0
  1562. package/nuxt-app/.output/public/icons/folder_type_vscode_opened.svg +1 -0
  1563. package/nuxt-app/.output/public/icons/folder_type_vscode_test.svg +1 -0
  1564. package/nuxt-app/.output/public/icons/folder_type_vscode_test2.svg +1 -0
  1565. package/nuxt-app/.output/public/icons/folder_type_vscode_test2_opened.svg +1 -0
  1566. package/nuxt-app/.output/public/icons/folder_type_vscode_test3.svg +1 -0
  1567. package/nuxt-app/.output/public/icons/folder_type_vscode_test3_opened.svg +1 -0
  1568. package/nuxt-app/.output/public/icons/folder_type_vscode_test_opened.svg +1 -0
  1569. package/nuxt-app/.output/public/icons/folder_type_wasm.svg +1 -0
  1570. package/nuxt-app/.output/public/icons/folder_type_wasm_opened.svg +1 -0
  1571. package/nuxt-app/.output/public/icons/folder_type_webpack.svg +1 -0
  1572. package/nuxt-app/.output/public/icons/folder_type_webpack_opened.svg +1 -0
  1573. package/nuxt-app/.output/public/icons/folder_type_windows.svg +1 -0
  1574. package/nuxt-app/.output/public/icons/folder_type_windows_opened.svg +1 -0
  1575. package/nuxt-app/.output/public/icons/folder_type_windsurf.svg +1 -0
  1576. package/nuxt-app/.output/public/icons/folder_type_windsurf_opened.svg +1 -0
  1577. package/nuxt-app/.output/public/icons/folder_type_wit.svg +1 -0
  1578. package/nuxt-app/.output/public/icons/folder_type_wit_opened.svg +1 -0
  1579. package/nuxt-app/.output/public/icons/folder_type_www.svg +1 -0
  1580. package/nuxt-app/.output/public/icons/folder_type_www_opened.svg +1 -0
  1581. package/nuxt-app/.output/public/icons/folder_type_yarn.svg +1 -0
  1582. package/nuxt-app/.output/public/icons/folder_type_yarn_opened.svg +1 -0
  1583. package/nuxt-app/.output/public/icons/folder_type_zed.svg +1 -0
  1584. package/nuxt-app/.output/public/icons/folder_type_zed_opened.svg +1 -0
  1585. package/nuxt-app/.output/public/index.html +9 -6
  1586. package/package.json +26 -4
  1587. package/server/index.js +45 -10
  1588. package/server/routes/ai-dev/index.js +175 -0
  1589. package/server/routes/ai.js +40 -0
  1590. package/server/routes/files.js +119 -3
  1591. package/server/routes/git.js +276 -0
  1592. package/server/routes/stt.js +66 -0
  1593. package/server/socket.js +411 -21
  1594. package/server/utils/board-hooks.js +30 -0
  1595. package/server/utils/board-state.js +39 -4
  1596. package/server/utils/config.js +2 -0
  1597. package/server/utils/element-hooks.js +17 -0
  1598. package/server/utils/element-instances.js +9 -3
  1599. package/server/utils/element-registry.js +2 -2
  1600. package/server/utils/elements/agent-instance.js +2 -2
  1601. package/server/utils/elements/agent.js +0 -2
  1602. package/server/utils/elements/chat-view.js +2 -2
  1603. package/server/utils/elements/html.js +2 -2
  1604. package/server/utils/elements/terminal.js +38 -0
  1605. package/server/utils/elements/web-preview.js +31 -0
  1606. package/server/utils/file-utils.js +94 -20
  1607. package/server/utils/file-watcher.js +93 -0
  1608. package/server/utils/git.js +516 -0
  1609. package/server/utils/orchestration-graph.js +359 -0
  1610. package/server/utils/server-app.js +23 -0
  1611. package/server/utils/session-watcher.js +2 -63
  1612. package/server/utils/terminal-manager.js +212 -0
  1613. package/server/utils/veil-client.js +229 -9
  1614. package/server/utils/veil-ws.js +66 -0
  1615. package/nuxt-app/.output/public/_nuxt/builds/latest.json +0 -1
  1616. package/nuxt-app/.output/public/_nuxt/builds/meta/36837a3c-177e-42b6-ad7c-e2396d7093e8.json +0 -1
  1617. package/nuxt-app/.output/public/_nuxt/entry.BQ7NhIi1.js +0 -120
  1618. package/nuxt-app/.output/public/_nuxt/entry.CYnp7zY5.css +0 -1
  1619. package/nuxt-app/.output/public/_nuxt/index.BEoXSIOu.css +0 -1
  1620. package/nuxt-app/.output/public/_nuxt/index.D05qTKIv.js +0 -1
package/server/socket.js CHANGED
@@ -1,17 +1,30 @@
1
1
  'use strict'
2
2
 
3
+ const terminalManager = require('./utils/terminal-manager.js')
3
4
  const boardState = require('./utils/board-state.js')
4
5
  const { isVeilConnected } = require('./utils/veil-ws.js')
5
6
  const { getAllTypes, getElementType, reloadCustomElements } = require('./utils/element-registry.js')
6
7
  const { getInstance, invokeAction, initAllInstances, destroyInstance, createInstance, getViewData, getPorts } = require('./utils/element-instances.js')
7
8
  const { getIO } = require('./utils/socket-io.js')
8
9
  const {
9
- veilGet, veilPost, veilPut, veilDelete, veilStreamChat,
10
+ veilGet, veilPost, veilPut, veilPatch, veilDelete, veilStreamChat, veilStreamTerminalAi, veilStreamGitCommitAi, veilCancelSession, veilGetStreaming,
10
11
  } = require('./utils/veil-client.js')
11
12
  const { setActiveStreamsRef, setElementStreamingRef } = require('./utils/veil-ws.js')
12
13
  const { touchSession } = require('./utils/session-watcher.js')
14
+ const { orchestrationGraph, initOrchestrationGraph } = require('./utils/orchestration-graph.js')
13
15
 
14
16
  const _activeStreams = new Map() // sessionId → { stopped: boolean } — shared across all socket connections
17
+
18
+ // Extension connection handlers — called for every new socket connection
19
+ const _extConnectionHandlers = []
20
+
21
+ function registerExtensionConnectionHandler(fn) {
22
+ _extConnectionHandlers.push(fn)
23
+ return () => {
24
+ const idx = _extConnectionHandlers.indexOf(fn)
25
+ if (idx !== -1) _extConnectionHandlers.splice(idx, 1)
26
+ }
27
+ }
15
28
  setActiveStreamsRef(_activeStreams)
16
29
  setElementStreamingRef(_setElementStreaming)
17
30
 
@@ -39,6 +52,16 @@ function registerSocketHandlers(io) {
39
52
  socket.emit('board:init', { snapshot: boardState.getSnapshot() })
40
53
  socket.emit('veil:status', { connected: isVeilConnected() })
41
54
  socket.emit('element-types:update', { types: getAllTypes() })
55
+ socket.emit('orchestration:graph', orchestrationGraph.getFullGraph())
56
+
57
+ // PR-1 item 2A: best-effort fetch of Veil's authoritative active-streams
58
+ // list and emit to THIS socket only. Replaces the client's old
59
+ // `clearAllStreaming()` sledgehammer with a selective restoration. Any
60
+ // failure swallowed in `veilGetStreaming` → returns []; we still emit
61
+ // the empty list so the client knows to flip stale `isStreaming` flags off.
62
+ veilGetStreaming().then(streams => {
63
+ if (Array.isArray(streams)) socket.emit('streaming:active', streams)
64
+ }).catch(() => {})
42
65
 
43
66
  // Send initial element view data + ports for all elements
44
67
  for (const el of boardState.getElements()) {
@@ -85,7 +108,7 @@ function registerSocketHandlers(io) {
85
108
  const res = await veilPost('/sessions', { agentName })
86
109
  const sessionId = res.sessionId || res.id || res.session_id
87
110
  if (!sessionId) throw new Error('No sessionId returned from Veil API')
88
- const el = boardState.createElement({ type: 'agent-instance', x: x ?? 200, y: y ?? 200, width: 180, height: 120, data: { agentName, sessionId } })
111
+ const el = boardState.createElement({ type: 'agent-instance', x: x ?? 200, y: y ?? 200, data: { agentName, sessionId } })
89
112
  _createInstanceAndBroadcast(el)
90
113
  if (typeof ack === 'function') ack({ ok: true, elementId: el.id, sessionId })
91
114
  } catch (err) {
@@ -135,33 +158,80 @@ function registerSocketHandlers(io) {
135
158
 
136
159
  // ─── Chat Streaming ─────────────────────────────────────────────────────
137
160
 
138
- socket.on('chat:send', async ({ agentName, sessionId, message } = {}) => {
139
- const ctrl = { stopped: false }
161
+ socket.on('chat:send', async ({ agentName, sessionId, message, attachments, continue: continueResume } = {}) => {
162
+ // PR-3 item 2: outbound structured attachments. Additive destructure —
163
+ // `attachments` is `undefined` when absent (legacy callers / continue
164
+ // emits at `useChat.continueSession`). When present, it MUST be an array
165
+ // of `Attachment` objects (`{kind, url, mime_type?, name?}`) per
166
+ // `nuxt-app/types/index.ts`. We do NOT pre-flight-validate at the Studio
167
+ // layer (Med4 dropped the 8MB cap pre-check) — Veil's own
168
+ // per-attachment validator is authoritative; PR-1 item 7 preserves any
169
+ // structured error envelope back to the client. Defensive: a non-array
170
+ // value is silently dropped (treated as if absent).
171
+ const _atts = Array.isArray(attachments) && attachments.length ? attachments : undefined
172
+ // Mid-turn sends: do NOT cancel a prior active stream. Veil's
173
+ // pushToExistingSession buffers the new message into _pendingInjections
174
+ // and processes it after the current turn/tool completes. The new POST
175
+ // returns immediately with content:null; the buffered message's events
176
+ // flow through the original runtime's stream callbacks.
177
+ const ctrl = { abortController: new AbortController(), stopped: false }
140
178
  _activeStreams.set(sessionId, ctrl)
141
179
  // Broadcast user message to all clients immediately so every tab sees it
142
- getIO().to('board').emit('chat:user-message', { sessionId, agentName, message })
180
+ getIO().to('board').emit('chat:user-message', { sessionId, agentName, message, attachments: _atts })
143
181
  // Mark element as streaming so all clients can reflect the loading state
144
182
  _setElementStreaming(sessionId, true)
183
+ // Register the active session in the orchestration graph with its real
184
+ // agentName before any agent_spawn fires. Veil does not emit
185
+ // session.created for top-level sessions, so without this registration
186
+ // the parent shows up as a stub with empty agentName when its first
187
+ // sub-session is spawned. Idempotent — returns null on repeat calls.
188
+ const _stamp = orchestrationGraph._ensureNode(sessionId, null, agentName || '', 'active')
189
+ if (_stamp) orchestrationGraph._emitDeltas([_stamp])
145
190
  try {
146
191
  let lastMessage = null
147
192
  let tokenUsage = null
148
193
  const io = getIO()
149
- for await (const chunk of veilStreamChat(agentName, message, sessionId)) {
150
- if (ctrl.stopped) break
194
+ for await (const chunk of veilStreamChat(agentName, message, sessionId, { signal: ctrl.abortController.signal, attachments: _atts, continueResume })) {
195
+ if (ctrl.stopped) {
196
+ try { ctrl.abortController.abort() } catch (_) {}
197
+ break
198
+ }
199
+ // Mid-stream structured error from Veil (SSE `event: error`). Preserve
200
+ // the full envelope to the client and stop consuming the stream — see
201
+ // PR-1 item 7 (server-side error preservation).
202
+ if (chunk.eventType === 'error') {
203
+ io.to('board').emit('chat:error', { sessionId, error: chunk.data })
204
+ break
205
+ }
151
206
  io.to('board').emit('chat:stream', { sessionId, eventType: chunk.eventType, data: chunk.data })
152
- if (chunk.eventType === 'message') lastMessage = chunk.data
207
+ if (chunk.eventType === 'message') {
208
+ lastMessage = chunk.data
209
+ // Feed orchestration graph (Studio-initiated streams bypass veil-ws.js)
210
+ const oDeltas = orchestrationGraph.processMessage(sessionId, chunk.data, agentName)
211
+ if (oDeltas) orchestrationGraph._emitDeltas(oDeltas)
212
+ }
153
213
  if (chunk.data && chunk.data.token_usage) tokenUsage = chunk.data.token_usage
154
214
  }
155
215
  if (!ctrl.stopped) {
156
216
  io.to('board').emit('chat:done', { sessionId, message: lastMessage, tokenUsage })
157
217
  } else {
158
- io.to('board').emit('chat:done', { sessionId, message: null, tokenUsage: null })
218
+ io.to('board').emit('chat:done', { sessionId, message: null, tokenUsage: null, cancelled: true })
159
219
  }
160
220
  } catch (err) {
161
- console.error('[chat:send] Error:', err.message)
162
- getIO().to('board').emit('chat:error', { sessionId, error: err.message })
221
+ // AbortError or stopped flag → treat as cancelled, NOT an error. The
222
+ // upstream Veil generation has been instructed to halt via
223
+ // veilCancelSession (fired by chat:stop). Emit a `chat:done` with
224
+ // cancelled:true so the client preserves the partial buffer.
225
+ if (err && (err.name === 'AbortError' || ctrl.stopped)) {
226
+ getIO().to('board').emit('chat:done', { sessionId, message: null, tokenUsage: null, cancelled: true })
227
+ } else {
228
+ console.error('[chat:send] Error:', err.message)
229
+ getIO().to('board').emit('chat:error', { sessionId, error: { code: err.code || 'STUDIO_ERROR', message: err.message, details: err.details, phase: err.phase } })
230
+ }
163
231
  } finally {
164
- _activeStreams.delete(sessionId)
232
+ // Only clear the entry if it's still ours — a concurrent chat:send for
233
+ // the same sessionId may have replaced the controller above.
234
+ if (_activeStreams.get(sessionId) === ctrl) _activeStreams.delete(sessionId)
165
235
  // Mark element as no longer streaming
166
236
  _setElementStreaming(sessionId, false)
167
237
  // Advance message baseline so the next external syncSession skips these messages
@@ -171,7 +241,14 @@ function registerSocketHandlers(io) {
171
241
 
172
242
  socket.on('chat:stop', ({ sessionId } = {}) => {
173
243
  const ctrl = _activeStreams.get(sessionId)
174
- if (ctrl) ctrl.stopped = true
244
+ if (ctrl) {
245
+ ctrl.stopped = true
246
+ try { ctrl.abortController?.abort() } catch (_) {}
247
+ }
248
+ // Fire-and-forget upstream cancel — idempotent, 404-tolerant. Even if
249
+ // the local controller is already gone (race with `finally` above),
250
+ // the upstream call is safe to issue.
251
+ veilCancelSession(sessionId).catch(() => {})
175
252
  })
176
253
 
177
254
  // ─── VeilCLI Proxy Events ─────────────────────────────────────────────
@@ -216,9 +293,10 @@ function registerSocketHandlers(io) {
216
293
  })
217
294
 
218
295
  // Sessions
219
- socket.on('veil:get-sessions', async ({ agentName } = {}, ack) => {
296
+ socket.on('veil:get-sessions', async ({ agentName, limit } = {}, ack) => {
220
297
  try {
221
- const q = agentName ? { agent: agentName } : {}
298
+ const q = { limit: limit ?? 200 }
299
+ if (agentName) q.agentName = agentName
222
300
  ack({ sessions: await veilGet('/sessions', q) })
223
301
  } catch (err) { ack({ error: err.message }) }
224
302
  })
@@ -231,20 +309,50 @@ function registerSocketHandlers(io) {
231
309
  })
232
310
 
233
311
  socket.on('veil:get-session', async ({ id } = {}, ack) => {
234
- try { ack({ session: await veilGet(`/sessions/${encodeURIComponent(id)}`) }) }
312
+ try {
313
+ const raw = await veilGet(`/sessions/${encodeURIComponent(id)}`)
314
+ ack({ session: raw.session ?? raw })
315
+ }
235
316
  catch (err) { ack({ error: err.message }) }
236
317
  })
237
318
 
319
+ // PR-4 item 1: per-session effective-config proxy. Reads
320
+ // `GET /sessions/:id/config` (audit §B) and forwards the
321
+ // `{ effective, overrides, agentDefaults }` envelope to the client as
322
+ // `{ ok: true, config }`. Used by `useVeil.getSessionConfig` to drive
323
+ // inheritance hints in the session-config drawer (model + thinking).
324
+ socket.on('veil:get-session-config', async ({ sessionId } = {}, ack) => {
325
+ try {
326
+ const raw = await veilGet(`/sessions/${encodeURIComponent(sessionId)}/config`)
327
+ ack({ ok: true, config: raw })
328
+ } catch (err) {
329
+ ack({ ok: false, error: err && err.message })
330
+ }
331
+ })
332
+
238
333
  socket.on('veil:delete-session', async ({ id } = {}, ack) => {
239
- try { ack({ ok: true, result: await veilDelete(`/sessions/${encodeURIComponent(id)}`) }) }
334
+ try {
335
+ const result = await veilDelete(`/sessions/${encodeURIComponent(id)}`)
336
+ const oDeltas = orchestrationGraph.handleSessionDeleted(id)
337
+ if (oDeltas) orchestrationGraph._emitDeltas(oDeltas)
338
+ ack({ ok: true, result })
339
+ }
240
340
  catch (err) { ack({ error: err.message }) }
241
341
  })
242
342
 
243
- socket.on('veil:get-session-messages', async ({ id } = {}, ack) => {
343
+ // PR-11: forward optional `limit` + `offset` to Veil's
344
+ // `GET /sessions/:id/messages?limit=N&offset=M`. Veil defaults are
345
+ // `limit=100, offset=0` (id ASC). `Number.isFinite(0)` is true so
346
+ // offset=0 round-trips correctly.
347
+ socket.on('veil:get-session-messages', async ({ id, limit, offset } = {}, ack) => {
244
348
  try {
349
+ const params = new URLSearchParams()
350
+ if (Number.isFinite(limit)) params.set('limit', String(limit))
351
+ if (Number.isFinite(offset)) params.set('offset', String(offset))
352
+ const qs = params.toString()
245
353
  const [msgRes, sessionRes] = await Promise.all([
246
- veilGet(`/sessions/${encodeURIComponent(id)}/messages`),
247
- veilGet(`/sessions/${encodeURIComponent(id)}`).catch(() => null),
354
+ veilGet(`/sessions/${encodeURIComponent(id)}/messages${qs ? '?' + qs : ''}`),
355
+ veilGet(`/sessions/${encodeURIComponent(id)}`).then(r => r.session ?? r).catch(() => null),
248
356
  ])
249
357
  ack({
250
358
  messages: Array.isArray(msgRes) ? msgRes : (msgRes.messages ?? []),
@@ -254,11 +362,124 @@ function registerSocketHandlers(io) {
254
362
  catch (err) { ack({ error: err.message }) }
255
363
  })
256
364
 
365
+ socket.on('veil:patch-session', async ({ id, data } = {}, ack) => {
366
+ try {
367
+ const session = await veilPatch(`/sessions/${encodeURIComponent(id)}`, data)
368
+ const oDeltas = orchestrationGraph.handleSessionUpdated(id, session?.session ?? session ?? {})
369
+ if (oDeltas) orchestrationGraph._emitDeltas(oDeltas)
370
+ ack({ session })
371
+ }
372
+ catch (err) {
373
+ // Forward the structured Veil error envelope (code/details/phase) so
374
+ // client-side error-mapper can branch on it. Required for SESSION_BUSY
375
+ // / VALIDATION_ERROR detection on the agent-swap path.
376
+ ack({ error: err.message, code: err.code, details: err.details, phase: err.phase })
377
+ }
378
+ })
379
+
380
+ // Mid-session agent-swap pre-flight (Decision-4): client checks
381
+ // `GET /sessions/streaming` before submitting a swap to avoid hitting
382
+ // a 409 SESSION_BUSY race. Veil's response shape is
383
+ // `{ streams: [{ sessionId, agentName, startedAt }, ...] }` — we forward
384
+ // it under the same key for client consumption.
385
+ socket.on('veil:get-streaming-sessions', async (_payload = {}, ack) => {
386
+ try {
387
+ const result = await veilGet('/sessions/streaming')
388
+ ack({ ok: true, streams: Array.isArray(result?.streams) ? result.streams : [] })
389
+ }
390
+ catch (err) {
391
+ ack({ ok: false, error: err.message, code: err.code, details: err.details, phase: err.phase })
392
+ }
393
+ })
394
+
395
+ // PR-6: 4 message-edit/trim/fork/continue handlers — these were missing
396
+ // from PR-1..PR-5 and the four `useVeil` helpers (patchMessage,
397
+ // deleteMessagesAfter, deleteSessionMessage, forkSession) emitted socket
398
+ // events with NO server consumer. Studio's pre-PR-6 Rewind/Delete/Fork
399
+ // actions silently no-op'd on Veil while mutating Pinia locally — next
400
+ // `loadMessages` reverted them. PR-6 closes this latent silent-desync bug.
401
+
402
+ // PR-6 item 1: edit a (user) message via PATCH /sessions/:id/messages/:msgId
403
+ socket.on('veil:patch-message', async ({ sessionId, msgId, content } = {}, ack) => {
404
+ try {
405
+ const res = await veilPatch(
406
+ `/sessions/${encodeURIComponent(sessionId)}/messages/${encodeURIComponent(msgId)}`,
407
+ { content },
408
+ )
409
+ ack({ ok: true, message: res?.message ?? res })
410
+ } catch (err) {
411
+ ack({ error: err.message, code: err.code, details: err.details, phase: err.phase })
412
+ }
413
+ })
414
+
415
+ // PR-6 item 2: trim "from here" — DELETE /messages/after/:msgId then
416
+ // DELETE /messages/:msgId. Two-call chain (NOT atomic). Client surfaces
417
+ // any failure + force-resyncs via loadMessages (architect Q3).
418
+ socket.on('veil:delete-messages-after', async ({ sessionId, afterMsgId } = {}, ack) => {
419
+ try {
420
+ await veilDelete(`/sessions/${encodeURIComponent(sessionId)}/messages/after/${encodeURIComponent(afterMsgId)}`)
421
+ ack({ ok: true })
422
+ } catch (err) {
423
+ ack({ error: err.message, code: err.code, details: err.details, phase: err.phase })
424
+ }
425
+ })
426
+
427
+ socket.on('veil:delete-message', async ({ sessionId, msgId } = {}, ack) => {
428
+ try {
429
+ await veilDelete(`/sessions/${encodeURIComponent(sessionId)}/messages/${encodeURIComponent(msgId)}`)
430
+ ack({ ok: true })
431
+ } catch (err) {
432
+ ack({ error: err.message, code: err.code, details: err.details, phase: err.phase })
433
+ }
434
+ })
435
+
436
+ // PR-6 item 3: fork a session via POST /sessions/:id/fork. Body carries
437
+ // `upToMessageId` only when defined — Veil defaults to whole-session
438
+ // fork when the body is empty. Response shape per audit: `{ session }`
439
+ // with snake-case fields (`agent_name`, `parent_session_id`, …).
440
+ socket.on('veil:fork-session', async ({ sessionId, upToMessageId } = {}, ack) => {
441
+ try {
442
+ const body = (upToMessageId !== undefined && upToMessageId !== null)
443
+ ? { upToMessageId }
444
+ : {}
445
+ const res = await veilPost(`/sessions/${encodeURIComponent(sessionId)}/fork`, body)
446
+ ack({ ok: true, session: res?.session ?? res })
447
+ } catch (err) {
448
+ ack({ error: err.message, code: err.code, details: err.details, phase: err.phase })
449
+ }
450
+ })
451
+
452
+ // PR-7: forward optional { instructions, compactSize } body to Veil's
453
+ // POST /sessions/:id/compact endpoint. Body is omitted-when-empty so the
454
+ // existing zero-friction menu-item path (no body) keeps identical wire
455
+ // shape; the modal-driven prominent compact button populates these fields.
456
+ socket.on('veil:compact-session', async ({ id, instructions, compactSize } = {}, ack) => {
457
+ try {
458
+ const body = {}
459
+ if (typeof instructions === 'string' && instructions.trim().length > 0) {
460
+ body.instructions = instructions
461
+ }
462
+ if (typeof compactSize === 'number' && Number.isFinite(compactSize) && compactSize > 0) {
463
+ body.compactSize = compactSize
464
+ }
465
+ const session = Object.keys(body).length > 0
466
+ ? await veilPost(`/sessions/${encodeURIComponent(id)}/compact`, body)
467
+ : await veilPost(`/sessions/${encodeURIComponent(id)}/compact`)
468
+ ack({ session })
469
+ }
470
+ catch (err) { ack({ error: err.message }) }
471
+ })
472
+
257
473
  socket.on('veil:reset-session', async ({ id } = {}, ack) => {
258
474
  try { ack({ ok: true, result: await veilPost(`/sessions/${encodeURIComponent(id)}/reset`) }) }
259
475
  catch (err) { ack({ error: err.message }) }
260
476
  })
261
477
 
478
+ // Orchestration graph
479
+ socket.on('orchestration:get-graph', (_, ack) => {
480
+ if (typeof ack === 'function') ack(orchestrationGraph.getFullGraph())
481
+ })
482
+
262
483
  // Tasks
263
484
  socket.on('veil:create-task', async ({ agentName, prompt } = {}, ack) => {
264
485
  try { ack({ task: await veilPost('/tasks', { agent: agentName, prompt }) }) }
@@ -368,6 +589,20 @@ function registerSocketHandlers(io) {
368
589
  } catch (err) { ack({ error: err.message }) }
369
590
  })
370
591
 
592
+ socket.on('veil:get-agent-soul', async ({ name } = {}, ack) => {
593
+ try {
594
+ const fs = require('fs')
595
+ const path = require('path')
596
+ const agentRes = await veilGet(`/agents/${encodeURIComponent(name)}`)
597
+ const agentData = agentRes.agent ?? agentRes
598
+ const folder = agentData.agentFolder
599
+ if (!folder) { ack({ content: '' }); return }
600
+ const soulPath = path.join(folder, 'SOUL.md')
601
+ const content = fs.existsSync(soulPath) ? fs.readFileSync(soulPath, 'utf8') : ''
602
+ ack({ content })
603
+ } catch (err) { ack({ error: err.message }) }
604
+ })
605
+
371
606
  // Settings
372
607
  socket.on('veil:get-settings', async (_, ack) => {
373
608
  try { ack({ settings: await veilGet('/settings') }) }
@@ -378,6 +613,157 @@ function registerSocketHandlers(io) {
378
613
  try { ack({ ok: true, result: await veilPut('/settings', settings) }) }
379
614
  catch (err) { ack({ error: err.message }) }
380
615
  })
616
+
617
+ // ─── Terminal ────────────────────────────────────────────────────────────
618
+
619
+ socket.on('terminal:create', ({ terminalId, cols, rows, cwd, shell } = {}, ack) => {
620
+ if (!terminalId) return
621
+
622
+ terminalManager.subscribe(terminalId, socket.id)
623
+
624
+ let replay = ''
625
+ if (terminalManager.hasPTY(terminalId)) {
626
+ // Live session — return replay buffer via ack so only the requesting
627
+ // view receives it (avoids corrupting other views of the same terminal).
628
+ replay = terminalManager.getReplayBuffer(terminalId)
629
+ } else {
630
+ // No live PTY (first viewer, or respawn after exit)
631
+ terminalManager.createPTY(terminalId, {
632
+ cols: cols ?? 80,
633
+ rows: rows ?? 24,
634
+ cwd: cwd || process.cwd(),
635
+ shell: shell || undefined,
636
+ })
637
+ }
638
+
639
+ if (typeof ack === 'function') ack({ replay })
640
+ })
641
+
642
+ socket.on('terminal:keystroke', ({ terminalId, data } = {}) => {
643
+ if (!terminalId || typeof data !== 'string') return
644
+ terminalManager.write(terminalId, data)
645
+ })
646
+
647
+ socket.on('terminal:resize', ({ terminalId, cols, rows } = {}) => {
648
+ if (!terminalId || !cols || !rows) return
649
+ terminalManager.resize(terminalId, cols, rows)
650
+ })
651
+
652
+ socket.on('terminal:destroy', ({ terminalId } = {}) => {
653
+ if (!terminalId) return
654
+ terminalManager.destroyPTY(terminalId)
655
+ })
656
+
657
+ socket.on('terminal:list', (_, ack) => {
658
+ if (typeof ack === 'function') ack({ sessions: terminalManager.listSessions() })
659
+ })
660
+
661
+ // ─── Terminal AI (Ctrl+I) ─────────────────────────────────────────────────
662
+ // Requests are scoped to the requesting socket only — never broadcast.
663
+
664
+ const _aiRequests = new Map() // `${terminalId}` → AbortController
665
+
666
+ socket.on('terminal:ai-request', async ({ terminalId, prompt, cwd, model } = {}) => {
667
+ if (!terminalId || !prompt || !model) {
668
+ socket.emit('terminal:ai-error', { terminalId, error: 'Missing terminalId, prompt, or model.' })
669
+ return
670
+ }
671
+
672
+ // Abort any existing request for this terminal
673
+ _aiRequests.get(terminalId)?.abort()
674
+
675
+ const ctrl = new AbortController()
676
+ _aiRequests.set(terminalId, ctrl)
677
+
678
+ let fullText = ''
679
+ try {
680
+ for await (const chunk of veilStreamTerminalAi(prompt, { model, cwd, signal: ctrl.signal })) {
681
+ fullText += chunk
682
+ socket.emit('terminal:ai-chunk', { terminalId, text: chunk })
683
+ }
684
+ socket.emit('terminal:ai-done', { terminalId, text: fullText.trim() })
685
+ } catch (err) {
686
+ if (err.name !== 'AbortError') {
687
+ socket.emit('terminal:ai-error', { terminalId, error: err.message })
688
+ }
689
+ } finally {
690
+ _aiRequests.delete(terminalId)
691
+ }
692
+ })
693
+
694
+ socket.on('terminal:ai-cancel', ({ terminalId } = {}) => {
695
+ _aiRequests.get(terminalId)?.abort()
696
+ _aiRequests.delete(terminalId)
697
+ })
698
+
699
+ // ─── Git commit message AI ────────────────────────────────────────────────
700
+ // Single in-flight request per socket — keyed by a fixed string.
701
+
702
+ const GIT_AI_KEY = '__git_commit__'
703
+ const _gitAiRequests = new Map() // GIT_AI_KEY → AbortController
704
+
705
+ socket.on('git:ai-commit-request', async ({ model } = {}) => {
706
+ if (!model) {
707
+ socket.emit('git:ai-commit-error', { error: 'No AI model configured — set one in Settings → Git.' })
708
+ return
709
+ }
710
+
711
+ // Abort any existing request
712
+ _gitAiRequests.get(GIT_AI_KEY)?.abort()
713
+
714
+ const ctrl = new AbortController()
715
+ _gitAiRequests.set(GIT_AI_KEY, ctrl)
716
+
717
+ // Fetch diff + recent commits server-side
718
+ const git = require('./utils/git.js')
719
+ let diff = ''
720
+ let diffSource = 'staged'
721
+ let recentCommits = []
722
+ try { diff = git.getStagedDiff() } catch { /* no diff */ }
723
+ if (!diff.trim()) {
724
+ // Nothing explicitly staged — use comprehensive diff:
725
+ // tracked modifications + deletions (git diff HEAD) + untracked new files
726
+ try { diff = git.getComprehensiveDiff(); diffSource = 'working-tree' } catch { /* no diff */ }
727
+ }
728
+ try { recentCommits = git.getLog(10) } catch { /* no log */ }
729
+
730
+ let fullText = ''
731
+ try {
732
+ for await (const chunk of veilStreamGitCommitAi(diff, recentCommits, { model, diffSource, signal: ctrl.signal })) {
733
+ fullText += chunk
734
+ socket.emit('git:ai-commit-chunk', { text: chunk })
735
+ }
736
+ socket.emit('git:ai-commit-done', { text: fullText.trim() })
737
+ } catch (err) {
738
+ if (err.name !== 'AbortError') {
739
+ socket.emit('git:ai-commit-error', { error: err.message })
740
+ }
741
+ } finally {
742
+ _gitAiRequests.delete(GIT_AI_KEY)
743
+ }
744
+ })
745
+
746
+ socket.on('git:ai-commit-cancel', () => {
747
+ _gitAiRequests.get(GIT_AI_KEY)?.abort()
748
+ _gitAiRequests.delete(GIT_AI_KEY)
749
+ })
750
+
751
+ // ─── Disconnect cleanup ──────────────────────────────────────────────────
752
+ // PTYs are NOT killed on disconnect — they keep running for reconnect recovery.
753
+
754
+ // ─── Extension connection handlers ──────────────────────────────────────
755
+ for (const fn of _extConnectionHandlers) {
756
+ try { fn(socket, io) } catch (err) { console.error('[ext socket]', err.message) }
757
+ }
758
+
759
+ // ─── Disconnect cleanup ──────────────────────────────────────────────────
760
+ socket.on('disconnect', () => {
761
+ terminalManager.unsubscribeSocket(socket.id)
762
+ for (const ctrl of _aiRequests.values()) ctrl.abort()
763
+ _aiRequests.clear()
764
+ for (const ctrl of _gitAiRequests.values()) ctrl.abort()
765
+ _gitAiRequests.clear()
766
+ })
381
767
  })
382
768
  }
383
769
 
@@ -504,4 +890,8 @@ function _createInstanceAndBroadcast(el) {
504
890
  }
505
891
  }
506
892
 
507
- module.exports = { registerSocketHandlers }
893
+ // AI-dev hook: read-only accessor for the in-memory active-streams map.
894
+ // Used by `server/routes/ai-dev/index.js` (only mounted when STUDIO_AI_DEV=1).
895
+ function getActiveStreams() { return _activeStreams }
896
+
897
+ module.exports = { registerSocketHandlers, registerExtensionConnectionHandler, getActiveStreams }
@@ -0,0 +1,30 @@
1
+ 'use strict'
2
+
3
+ const { EventEmitter } = require('events')
4
+
5
+ /**
6
+ * Board mutation hooks — emitted before/after every board-state mutation.
7
+ *
8
+ * Events:
9
+ * beforeElementCreate(partial) afterElementCreate(element)
10
+ * beforeElementUpdate(id, changes) afterElementUpdate(id, updated)
11
+ * beforeElementRemove(id) afterElementRemove(id, item)
12
+ * beforeElementArchive(id) afterElementArchive(id, item)
13
+ * beforeElementStateChange(id, state) afterElementStateChange(id, state)
14
+ * beforeLinkCreate(partial) afterLinkCreate(link)
15
+ * beforeLinkRemove(id) afterLinkRemove(id)
16
+ * beforeZoneCreate(partial) afterZoneCreate(zone)
17
+ * beforeZoneUpdate(id, changes) afterZoneUpdate(id, updated)
18
+ * beforeZoneRemove(id) afterZoneRemove(id)
19
+ * beforeViewCreate(partial) afterViewCreate(view)
20
+ * beforeViewRemove(id) afterViewRemove(id)
21
+ * beforeShapeCreate(partial) afterShapeCreate(shape)
22
+ * beforeShapeUpdate(id, changes) afterShapeUpdate(id, updated)
23
+ * beforeShapeRemove(id) afterShapeRemove(id)
24
+ *
25
+ * beforeX hooks can throw to cancel the mutation.
26
+ */
27
+ const hooks = new EventEmitter()
28
+ hooks.setMaxListeners(50)
29
+
30
+ module.exports = hooks