@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.
- package/README.md +11 -1
- package/nuxt-app/.output/public/200.html +9 -6
- package/nuxt-app/.output/public/404.html +9 -6
- package/nuxt-app/.output/public/_nuxt/abap.DLDM7-KI.js +1 -0
- package/nuxt-app/.output/public/_nuxt/apex.DNDY2TF8.js +1 -0
- package/nuxt-app/.output/public/_nuxt/azcli.Y6nb8tq_.js +1 -0
- package/nuxt-app/.output/public/_nuxt/bat.BwHxbl9M.js +1 -0
- package/nuxt-app/.output/public/_nuxt/bicep.CFznDFnq.js +2 -0
- package/nuxt-app/.output/public/_nuxt/cameligo.Bf6VGUru.js +1 -0
- package/nuxt-app/.output/public/_nuxt/clojure.Dnu-v4kV.js +1 -0
- package/nuxt-app/.output/public/_nuxt/codicon.ngg6Pgfi.ttf +0 -0
- package/nuxt-app/.output/public/_nuxt/coffee.Bd8akH9Z.js +1 -0
- package/nuxt-app/.output/public/_nuxt/cpp.BbWJElDN.js +1 -0
- package/nuxt-app/.output/public/_nuxt/csharp.Co3qMtFm.js +1 -0
- package/nuxt-app/.output/public/_nuxt/csp.D-4FJmMZ.js +1 -0
- package/nuxt-app/.output/public/_nuxt/css.DdJfP1eB.js +3 -0
- package/nuxt-app/.output/public/_nuxt/css.worker-V_k7FkW4.js +93 -0
- package/nuxt-app/.output/public/_nuxt/cssMode.Cn3v6mN5.js +1 -0
- package/nuxt-app/.output/public/_nuxt/cursor-editorTextHighlight.kG3uUOwL.svg +8 -0
- package/nuxt-app/.output/public/_nuxt/cypher.cTPe9QuQ.js +1 -0
- package/nuxt-app/.output/public/_nuxt/dart.BOtBlQCF.js +1 -0
- package/nuxt-app/.output/public/_nuxt/dockerfile.BG73LgW2.js +1 -0
- package/nuxt-app/.output/public/_nuxt/ecl.BEgZUVRK.js +1 -0
- package/nuxt-app/.output/public/_nuxt/editor.j6bgW0Rn.css +1 -0
- package/nuxt-app/.output/public/_nuxt/editor.main.BXnwZDNv.js +913 -0
- package/nuxt-app/.output/public/_nuxt/elixir.BkW5O-1t.js +1 -0
- package/nuxt-app/.output/public/_nuxt/entry.BTBLr2_9.js +178 -0
- package/nuxt-app/.output/public/_nuxt/entry.Bi330XvK.css +1 -0
- package/nuxt-app/.output/public/_nuxt/{error-404.VEDCv4Jx.js → error-404.BtcTx28A.js} +1 -1
- package/nuxt-app/.output/public/_nuxt/{error-500.DdyAxHjI.js → error-500.DOSB4mL7.js} +1 -1
- package/nuxt-app/.output/public/_nuxt/flow9.BeJ5waoc.js +1 -0
- package/nuxt-app/.output/public/_nuxt/freemarker2.DTkTX0AV.js +3 -0
- package/nuxt-app/.output/public/_nuxt/fsharp.PahG7c26.js +1 -0
- package/nuxt-app/.output/public/_nuxt/go.acbASCJo.js +1 -0
- package/nuxt-app/.output/public/_nuxt/graphql.BxJiqAUM.js +1 -0
- package/nuxt-app/.output/public/_nuxt/handlebars.1jygEZpg.js +1 -0
- package/nuxt-app/.output/public/_nuxt/hcl.DtV1sZF8.js +1 -0
- package/nuxt-app/.output/public/_nuxt/html.BpM62ame.js +1 -0
- package/nuxt-app/.output/public/_nuxt/html.worker-CAp20DN1.js +470 -0
- package/nuxt-app/.output/public/_nuxt/htmlMode.Cy5jAJfq.js +1 -0
- package/nuxt-app/.output/public/_nuxt/index.BLgiPK1n.js +415 -0
- package/nuxt-app/.output/public/_nuxt/index.DgMzrTGH.css +1 -0
- package/nuxt-app/.output/public/_nuxt/ini.Kd9XrMLS.js +1 -0
- package/nuxt-app/.output/public/_nuxt/java.CXBNlu9o.js +1 -0
- package/nuxt-app/.output/public/_nuxt/javascript.BUf38kZw.js +1 -0
- package/nuxt-app/.output/public/_nuxt/json.worker-6D_tMdcV.js +58 -0
- package/nuxt-app/.output/public/_nuxt/jsonMode.C0IX_rGY.js +7 -0
- package/nuxt-app/.output/public/_nuxt/julia.cl7-CwDS.js +1 -0
- package/nuxt-app/.output/public/_nuxt/kotlin.s7OhZKlX.js +1 -0
- package/nuxt-app/.output/public/_nuxt/less.9HpZscsL.js +2 -0
- package/nuxt-app/.output/public/_nuxt/lexon.OrD6JF1K.js +1 -0
- package/nuxt-app/.output/public/_nuxt/liquid.DL96V_07.js +1 -0
- package/nuxt-app/.output/public/_nuxt/lspLanguageFeatures.xehlwcr0.js +4 -0
- package/nuxt-app/.output/public/_nuxt/lua.Cyyb5UIc.js +1 -0
- package/nuxt-app/.output/public/_nuxt/m3.B8OfTtLu.js +1 -0
- package/nuxt-app/.output/public/_nuxt/markdown.BFxVWTOG.js +1 -0
- package/nuxt-app/.output/public/_nuxt/mdx.BNt0FFnz.js +1 -0
- package/nuxt-app/.output/public/_nuxt/mips.CiqrrVzr.js +1 -0
- package/nuxt-app/.output/public/_nuxt/msdax.DmeGPVcC.js +1 -0
- package/nuxt-app/.output/public/_nuxt/mysql.C_tMU-Nz.js +1 -0
- package/nuxt-app/.output/public/_nuxt/objective-c.BDtDVThU.js +1 -0
- package/nuxt-app/.output/public/_nuxt/pascal.vHIfCaH5.js +1 -0
- package/nuxt-app/.output/public/_nuxt/pascaligo.DtZ0uQbO.js +1 -0
- package/nuxt-app/.output/public/_nuxt/perl.Ub6l9XKa.js +1 -0
- package/nuxt-app/.output/public/_nuxt/pgsql.BlNEE0v7.js +1 -0
- package/nuxt-app/.output/public/_nuxt/php.BBUBE1dy.js +1 -0
- package/nuxt-app/.output/public/_nuxt/pla.DSh2-awV.js +1 -0
- package/nuxt-app/.output/public/_nuxt/postiats.CocnycG-.js +1 -0
- package/nuxt-app/.output/public/_nuxt/powerquery.tScXyioY.js +1 -0
- package/nuxt-app/.output/public/_nuxt/powershell.COWaemsV.js +1 -0
- package/nuxt-app/.output/public/_nuxt/protobuf.Brw8urJB.js +2 -0
- package/nuxt-app/.output/public/_nuxt/pug.8SOpv6rk.js +1 -0
- package/nuxt-app/.output/public/_nuxt/python.DjrP6G10.js +1 -0
- package/nuxt-app/.output/public/_nuxt/qsharp.Bw9ernYp.js +1 -0
- package/nuxt-app/.output/public/_nuxt/r.j7ic8hl3.js +1 -0
- package/nuxt-app/.output/public/_nuxt/razor.Du9jUt14.js +1 -0
- package/nuxt-app/.output/public/_nuxt/redis.Bu5POkcn.js +1 -0
- package/nuxt-app/.output/public/_nuxt/redshift.Bs9aos_-.js +1 -0
- package/nuxt-app/.output/public/_nuxt/restructuredtext.CqXO7rUv.js +1 -0
- package/nuxt-app/.output/public/_nuxt/ruby.zBfavPgS.js +1 -0
- package/nuxt-app/.output/public/_nuxt/rust.BzKRNQWT.js +1 -0
- package/nuxt-app/.output/public/_nuxt/sb.BBc9UKZt.js +1 -0
- package/nuxt-app/.output/public/_nuxt/scala.D9hQfWCl.js +1 -0
- package/nuxt-app/.output/public/_nuxt/scheme.BPhDTwHR.js +1 -0
- package/nuxt-app/.output/public/_nuxt/scss.CBJaRo0y.js +3 -0
- package/nuxt-app/.output/public/_nuxt/shell.DiJ1NA_G.js +1 -0
- package/nuxt-app/.output/public/_nuxt/solidity.Db0IVjzk.js +1 -0
- package/nuxt-app/.output/public/_nuxt/sophia.CnS9iZB_.js +1 -0
- package/nuxt-app/.output/public/_nuxt/sparql.CJmd_6j2.js +1 -0
- package/nuxt-app/.output/public/_nuxt/sql.ClhHkBeG.js +1 -0
- package/nuxt-app/.output/public/_nuxt/st.CHwy0fLd.js +1 -0
- package/nuxt-app/.output/public/_nuxt/swift.Bqt4WxQ4.js +3 -0
- package/nuxt-app/.output/public/_nuxt/systemverilog.Bs9z6M-B.js +1 -0
- package/nuxt-app/.output/public/_nuxt/tcl.Dm6ycUr_.js +1 -0
- package/nuxt-app/.output/public/_nuxt/ts.worker-B0yERHG1.js +67731 -0
- package/nuxt-app/.output/public/_nuxt/tsMode.BSdAUy8X.js +11 -0
- package/nuxt-app/.output/public/_nuxt/twig.Csy3S7wG.js +1 -0
- package/nuxt-app/.output/public/_nuxt/typescript.DGCEyVS5.js +1 -0
- package/nuxt-app/.output/public/_nuxt/typespec.Btyra-wh.js +1 -0
- package/nuxt-app/.output/public/_nuxt/vb.Db0cS2oM.js +1 -0
- package/nuxt-app/.output/public/_nuxt/{vue.-sixQ7xP.DWUp_HHF.js → vue.-sixQ7xP.BPDPwbEb.js} +1 -1
- package/nuxt-app/.output/public/_nuxt/wgsl.BTesnYfV.js +298 -0
- package/nuxt-app/.output/public/_nuxt/xml.B1Yz6scE.js +1 -0
- package/nuxt-app/.output/public/_nuxt/yaml.DyJuxYw-.js +1 -0
- package/nuxt-app/.output/public/icons/default_file.svg +1 -0
- package/nuxt-app/.output/public/icons/default_folder.svg +54 -0
- package/nuxt-app/.output/public/icons/default_folder_opened.svg +58 -0
- package/nuxt-app/.output/public/icons/default_root_folder.svg +1 -0
- package/nuxt-app/.output/public/icons/default_root_folder_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_access.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_access2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_actionscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_actionscript2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ada.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_advpl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_affectscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_affinity.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_affinitydesigner.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_affinityphoto.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_affinitypublisher.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_agda.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_agents.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ai.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ai2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_al.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_al_dal.svg +11 -0
- package/nuxt-app/.output/public/icons/file_type_alchemy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_allcontributors.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_alloy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_allure.svg +49 -0
- package/nuxt-app/.output/public/icons/file_type_angular.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ansible.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_antlers_html.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_antlr.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_anyscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_apache.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_apex.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_api_extractor.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_apib.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_apib2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_apl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_applescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_appscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_appsemble.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_appveyor.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_arduino.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_asciidoc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_aseprite.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_asp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_aspx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_assembly.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_assembly_script.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_astro.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_astroconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_atom.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ats.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_attw.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_audio.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_aurelia.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_autohotkey.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_autoit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_avif.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_avro.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_awk.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_aws.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_azure.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_azurepipelines.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_babel.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_babel2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bak.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ballerina.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bat.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bats.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bazaar.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bazel.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bazel_ignore.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bazel_version.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_befunge.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bicep.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_biml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_binary.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_biome.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bitbucketpipeline.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bithound.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_blade.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_blender.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_blitzbasic.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bolt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bosque.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bower.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bower2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_browserslist.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bruno.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_buckbuild.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_buf.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bun.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bundlemon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bundler.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_bunfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_c.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_c2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_c3.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_c_al.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cabal.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_caddy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cake.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cakephp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_capacitor.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_capnp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cargo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_casc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cddl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cert.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ceylon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cf.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cf2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cfc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cfc2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cfm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cfm2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_changie.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cheader.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_chef.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_chef_cookbook.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_circleci.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_circom.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_class.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_claude.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_clojure.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_clojurescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cloudflare.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cloudfoundry.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cmake.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cobol.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_codacy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_codeclimate.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_codecov.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_codekit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_codemagic.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_codeowners.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_codeql.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_coderabbit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_coffeelint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_coffeescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_commitizen.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_commitlint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_compass.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_composer.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_conan.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_conda.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_config.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_confluence.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_copilot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_coverage.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_coveralls.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cpp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cpp2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cpp3.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cppheader.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_craco.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_crowdin.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_crystal.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_csharp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_csharp2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cspell.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_csproj.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_css.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_css2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_css2map.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_csscomb.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_csslint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cssmap.svg +8 -0
- package/nuxt-app/.output/public/icons/file_type_cucumber.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cuda.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cursorrules.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cvs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cypress.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cypress_spec.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_cython.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dal.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_darcs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dartlang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dartlang_generated.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dartlang_ignore.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_datadog.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_db.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_debian.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_delphi.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_deno.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_denoify.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dependabot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dependencies.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_design_tokens.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_devcontainer.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_devvit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dhall.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_diff.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_django.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dlang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_docker.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_docker2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dockertest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dockertest2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_docpad.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_docusaurus.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_docz.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dojo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_doppler.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dotenv.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dotjs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_doxygen.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_drawio.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_drone.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_drools.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dtd.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dune.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dustjs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dvc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_dylan.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_earthly.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_eas-metadata.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_edge.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_edge2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_editorconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_eex.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ejs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_elastic.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_elasticbeanstalk.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_electron.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_eleventy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_eleventy2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_elixir.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_elm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_elm2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_emacs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ember.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ensime.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_eps.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_epub.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_erb.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_erlang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_erlang2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_esbuild.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_eslint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_eslint2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_esphome.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_excalidraw.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_excel.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_excel2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_expo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_falcon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fantasticon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fastly.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fauna.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_favicon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fbx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_firebase.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_firebasehosting.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_firebasestorage.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_firestore.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fitbit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fla.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_flareact.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_flash.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_floobits.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_flow.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_flutter.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_flutter_package.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_flyio.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_font.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_formkit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fortran.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fossa.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fossil.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_freemarker.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_frontcommerce.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fsharp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fsharp2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fsproj.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fthtml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_funding.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_fusebox.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_galen.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_galen2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gamemaker.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gamemaker2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gamemaker81.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gatsby.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gcloud.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gcode.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gdscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gduid.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gemini.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_genstat.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_geojson.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gimp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_git.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_git2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gitlab.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gitpod.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gleam.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gleamconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_glide.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_glimmer.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_glitter.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_glsl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gltf.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_glyphs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gnu.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gnuplot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_aqua.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_black.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_fuchsia.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_gopher.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_lightblue.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_package.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_white.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_work.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_go_yellow.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_goctl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_godot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gpg.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gradle.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gradle2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_grain.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_graphql.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_graphql_config.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_graphviz.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_greenkeeper.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gridsome.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_grit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_groovy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_groovy2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_grunt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_gulp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_haml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_handlebars.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_handlebars2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_harbour.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hardhat.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hashicorp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_haskell.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_haskell2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_haxe.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_haxecheckstyle.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_haxedevelop.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_helix.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_helm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_histoire.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hjson.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hlsl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_homeassistant.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_horusec.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_host.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_html.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_htmlhint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_htmlvalidate.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_http.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hugo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_humanstxt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hunspell.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_husky.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hygen.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_hypr.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_icl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_idris.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_idrisbin.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_idrispkg.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_image.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_imba.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_inc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_infopath.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_informix.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ini.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ink.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_innosetup.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_io.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_iodine.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ionic.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jake.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_janet.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jar.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jasmine.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_java.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jbuilder.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jekyll.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jenkins.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jest_snapshot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jetbrains.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jinja.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jpm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_js_official.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jsbeautify.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jsconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jscpd.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jshint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jsmap.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_json.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_json2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_json5.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_json_official.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_json_schema.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jsonld.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jsonnet.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jsp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jsr.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_juice.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_julia.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_julia2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_jupyter.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_just.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_k.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_karma.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_key.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_kitchenci.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_kite.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_kivy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_knip.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_kos.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_kotlin.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_kusto.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_language_configuration.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lark.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_latino.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_layout.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lean.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_leanconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lefthook.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lemon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lerna.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_less.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lex.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_liara.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_libreoffice_base.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_libreoffice_calc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_libreoffice_draw.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_libreoffice_impress.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_libreoffice_math.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_libreoffice_writer.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_license.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_licensebat.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_actionscript2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_ada.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_agda.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_agents.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_apl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_astro.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_astroconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_babel.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_babel2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_cabal.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_circleci.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_cloudfoundry.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_codacy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_codeclimate.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_codeowners.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_config.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_copilot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_crystal.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_cypress.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_cypress_spec.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_db.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_dhall.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_docpad.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_drone.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_eas-metadata.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_eleventy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_eleventy2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_esphome.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_expo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_firebasehosting.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_fla.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_font.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_gamemaker2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_gradle.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_hashicorp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_hjson.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_ini.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_io.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_jsconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_jsmap.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_json.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_json5.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_json_schema.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_jsonld.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_kite.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_lark.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_lean.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_leanconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_lerna.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_mailing.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_markuplint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_mcp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_mdx-components.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_mdx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_mlang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_mustache.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_mypy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_neo4j.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_netlify.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_next.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_nim.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_nx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_objidconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_openHAB.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_oxc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_packship.svg +4 -0
- package/nuxt-app/.output/public/icons/file_type_light_pcl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_pnpm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_prettier.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_prisma.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_purescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_quasar.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_railway.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_raku.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_razzle.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_reactrouter.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_rehype.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_remark.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_replit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_retext.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_rolldown.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_rome.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_rubocop.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_rust.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_rust_toolchain.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_safetensors.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_shadcn.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_shaderlab.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_skill.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_solidity.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_spin.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_stylelint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_stylus.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_symfony.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_systemd.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_systemverilog.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_testcafe.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_testjs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_tex.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_tm.svg +141 -0
- package/nuxt-app/.output/public/icons/file_type_light_tmux.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_todo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_toit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_toml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_toon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_tree.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_turbo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_unibeautify.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_vash.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_vercel.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_vite.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_vitest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_vsix.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_vsixmanifest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_xfl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_xorg.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_yaml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_light_yaml_official.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lighthouse.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lilypond.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lime.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lintstagedrc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_liquid.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lisp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_livescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lnk.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_locale.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_log.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lolcode.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lsl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lua.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_luau.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_lync.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mailing.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_manifest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_manifest_bak.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_manifest_skip.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_map.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mariadb.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_markdown.svg +65 -0
- package/nuxt-app/.output/public/icons/file_type_markdownlint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_markdownlint_ignore.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_marko.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_markojs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_markuplint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_master-co.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_matlab.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_maven.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_maxscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_maya.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mcp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mdx-components.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mdx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mdxlint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mediawiki.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mercurial.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mermaid.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_meson.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_metal.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_meteor.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_minecraft.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mise.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mivascript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mjml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mlang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mocha.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_modernizr.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mojo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mojolicious.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_moleculer.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mondoo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mongo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_monotone.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_motif.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mson.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mustache.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mvt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mvtcss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mvtjs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mypy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_mysql.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_n64.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nanostaged.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ndst.svg +7 -0
- package/nuxt-app/.output/public/icons/file_type_nearly.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_neo4j.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_adapter_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_adapter_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_controller_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_controller_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_decorator_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_decorator_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_filter_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_filter_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_gateway_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_gateway_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_guard_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_guard_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_interceptor_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_interceptor_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_middleware_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_middleware_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_module_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_module_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_pipe_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_pipe_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_service_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nest_service_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nestjs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_netlify.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_next.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nextflow.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_css.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_html.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_js2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_less.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_sass.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_scss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_component_ts2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_controller_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_controller_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_directive_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_directive_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_directive_js2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_directive_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_directive_ts2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_guard_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_guard_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_guard_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_interceptor_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_interceptor_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_interceptor_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_module_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_module_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_module_js2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_module_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_module_ts2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_pipe_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_pipe_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_pipe_js2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_pipe_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_pipe_ts2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_routing_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_routing_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_routing_js2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_routing_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_routing_ts2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_service_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_service_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_service_js2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_service_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_service_ts2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_smart_component_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_smart_component_js.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_smart_component_js2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_smart_component_ts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_smart_component_ts2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ng_tailwind.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nginx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nim.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nimble.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ninja.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nix.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_njsproj.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_noc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_node.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_node2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nodemon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_npm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_npmpackagejsonlint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nsi.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nsri-integrity.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nsri.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nuget.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_numpy.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nunjucks.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nushell.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nuxt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_nyc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_objectivec.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_objectivecpp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_objidconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ocaml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ocaml_intf.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ogone.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_onenote.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_opam.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_openHAB.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_opencl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_openscad.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_opentofu.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_org.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_outlook.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ovpn.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_oxc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_package.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_packship.svg +4 -0
- package/nuxt-app/.output/public/icons/file_type_paket.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pandacss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_patch.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pcl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pddl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pddl_happenings.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pddl_plan.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pdf.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pdf2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pdm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_peeky.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_perl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_perl2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_perl6.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pgsql.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_photoshop.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_photoshop2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_php.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_php2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_php3.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_phpcsfixer.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_phpstan.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_phpunit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_phraseapp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pine.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pip.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pipeline.svg +3 -0
- package/nuxt-app/.output/public/icons/file_type_plantuml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_platformio.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_playwright.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_plsql.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_plsql_package.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_plsql_package_body.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_plsql_package_header.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_plsql_package_spec.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pm2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pnpm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_poedit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_poetry.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_polyglot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_polymer.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pony.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_postcss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_postcssconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_postman.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_postscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powerpoint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powerpoint2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell_format.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell_psd.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell_psd2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell_psm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell_psm2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_powershell_types.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_preact.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_precommit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_prettier.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_prisma.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_prismaconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_processinglang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_procfile.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_progress.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_prolog.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_prometheus.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_protobuf.svg +9 -0
- package/nuxt-app/.output/public/icons/file_type_protractor.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_publiccode.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_publisher.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pug.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pulumi.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_puppet.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_purescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_purgecss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pyenv.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pypi.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pyret.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pyscript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pytest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_python.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pythowo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pytyped.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_pyup.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_q.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_qbs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_qlikview.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_qml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_qmldir.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_qsharp.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_quasar.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_r.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ra_syntax_tree.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_racket.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rails.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_railway.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rake.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_raku.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_raml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_razor.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_razzle.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_reactjs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_reactrouter.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_reacttemplate.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_reactts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_reason.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_red.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_registry.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rego.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rehype.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_remark.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_renovate.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_replit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_retext.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rexx.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_riot.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ripple.svg +4 -0
- package/nuxt-app/.output/public/icons/file_type_rmd.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rnc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_robotframework.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_robots.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rolldown.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rollup.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rome.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ron.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rproj.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rspec.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rubocop.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ruby.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rust.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_rust_toolchain.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_s-lang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_safetensors.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sails.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_saltstack.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_san.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sapphire_framework_cli.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sas.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sass.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sbt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_scala.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_scilab.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_script.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_scss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_scss2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sdlang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_search_result.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_seedkit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sentry.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sequelize.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_serverless.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_shadcn.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_shaderlab.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_shell.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_shellcheck.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_shuttle.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_silverstripe.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sino.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sitemap.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_siyuan.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sketch.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_skill.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_skipper.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_slang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_slashup.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_slice.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_slim.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_slint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sln.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sln2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_smarty.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_smithery.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_snakemake.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_snapcraft.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_snaplet.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_snort.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_snyk.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_solidarity.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_solidity.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_source.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_spacengine.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sparql.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_spin.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sqf.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sql.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sqlite.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_squirrel.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sst.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stackblitz.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stan.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stata.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stencil.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_storyboard.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_storybook.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stryker.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stylable.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_style.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_styled.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stylelint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stylish_haskell.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_stylus.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_sublime.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_subversion.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_svelte.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_svelteconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_svg.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_svgo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_swagger.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_swc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_swift.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_swig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_symfony.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_syncpack.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_systemd.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_systemverilog.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_t4tt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tailwind.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tamagui.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_taplo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_taskfile.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tauri.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tcl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_teal.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_templ.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tera.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_terraform.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_test.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_testcafe.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_testjs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_testplane.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_testts.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tex.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_text.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_textile.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tfs.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tiltfile.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tmux.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_todo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_toit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_toml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_toon.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tox.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_travis.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tree.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tres.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_truffle.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_trunk.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tsbuildinfo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tscn.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tsconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tsconfig_official.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tsdoc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tsdown.svg +2 -0
- package/nuxt-app/.output/public/icons/file_type_tslint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_ttcn.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_tuc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_turbo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_twig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_typedoc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_typescript.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_typescript_official.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_typescriptdef.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_typescriptdef_official.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_typo3.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_uiua.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_unibeautify.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_unison.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_unlicense.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_unocss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_uv.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vagrant.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vala.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vanilla_extract.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vapi.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vapor.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vash.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vb.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vba.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vbhtml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vbproj.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vcxproj.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_velocity.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vento.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vercel.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_verilog.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vhdl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_video.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_view.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vim.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vite.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vitest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vlang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_volt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vroom.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vscode-insiders.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vscode.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vscode2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vscode3.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vscode_test.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vsix.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vsixmanifest.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vue.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vueconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vvvvvv.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_vyper.svg +3 -0
- package/nuxt-app/.output/public/icons/file_type_wallaby.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wally.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wasm.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_watchmanconfig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wdio.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_weblate.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_webpack.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wenyan.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wercker.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wgsl.svg +86 -0
- package/nuxt-app/.output/public/icons/file_type_wikitext.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_windi.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wit.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wolfram.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_word.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_word2.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wpml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wurst.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wxml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wxss.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_wxt.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xaml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xcode.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xfl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xib.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xliff.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xmake.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xo.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xorg.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xquery.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_xsl.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yacc.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yaml.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yaml_official.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yamllint.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yandex.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yang.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yarn.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_yeoman.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_zig.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_zip.svg +1 -0
- package/nuxt-app/.output/public/icons/file_type_zip2.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_android.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_android_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_angular.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_angular_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_apache.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_apache_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_api.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_api_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_app.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_app_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_arangodb.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_arangodb_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_asset.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_asset_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_astro.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_astro_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_audio.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_audio_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_aurelia.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_aurelia_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_aws.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_aws_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_azure.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_azure_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_azurepipelines.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_azurepipelines_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_binary.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_binary_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_bloc.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_bloc_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_blueprint.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_blueprint_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_bot.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_bot_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_bower.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_bower_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_buildkite.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_buildkite_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cake.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cake_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cargo.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cargo_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_certificate.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_certificate_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_changesets.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_changesets_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_chef.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_chef_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_circleci.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_circleci_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_claude.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_claude_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cli.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cli_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_client.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_client_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cloudflare.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cloudflare_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cmake.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cmake_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_common.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_common_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_component.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_component_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_composer.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_composer_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_config.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_config_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_controller.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_controller_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_coverage.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_coverage_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_css.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_css2.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_css2_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_css_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cubit.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cubit_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cursor.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cursor_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cypress.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_cypress_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dapr.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dapr_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dart.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dart_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_datadog.svg +66 -0
- package/nuxt-app/.output/public/icons/folder_type_datadog_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_db.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_db_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_debian.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_debian_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dependabot.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dependabot_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_devcontainer.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_devcontainer_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dist.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_dist_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_docker.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_docker_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_docs.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_docs_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_e2e.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_e2e_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_elasticbeanstalk.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_elasticbeanstalk_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_electron.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_electron_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_expo.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_expo_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_favicon.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_favicon_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_flow.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_flow_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_flutter.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_flutter_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_fonts.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_fonts_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_frontcommerce.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_frontcommerce_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gcp.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gcp_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gemini.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gemini_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_git.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_git_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_github.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_github_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gitlab.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gitlab_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_godot.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_godot_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gradle.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gradle_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_graphql.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_graphql_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_grunt.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_grunt_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gulp.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_gulp_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_haxelib.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_haxelib_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_helper.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_helper_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_histoire.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_histoire_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_hook.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_hook_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_husky.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_husky_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_idea.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_idea_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_images.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_images_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_include.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_include_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_interfaces.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_interfaces_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_ios.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_ios_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_js.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_js_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_json.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_json_official.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_json_official_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_json_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_junie.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_junie_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_kotlin.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_kotlin_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_kubernetes.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_kubernetes_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_less.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_less_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_library.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_library_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_cursor.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_cursor_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_cypress.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_cypress_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_electron.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_electron_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_expo.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_expo_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_fonts.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_fonts_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_gradle.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_gradle_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_meteor.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_meteor_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_mypy.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_mypy_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_mysql.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_mysql_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_node.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_node_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_redux.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_redux_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_sass.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_sass_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_zed.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_light_zed_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_linux.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_linux_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_locale.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_locale_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_log.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_log_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_macos.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_macos_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mariadb.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mariadb_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_maven.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_maven_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mediawiki.svg +41 -0
- package/nuxt-app/.output/public/icons/folder_type_mediawiki_opened.svg +42 -0
- package/nuxt-app/.output/public/icons/folder_type_memcached.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_memcached_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_meteor.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_meteor_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_middleware.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_middleware_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_minecraft.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_minecraft_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_minikube.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_minikube_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mjml.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mjml_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mock.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mock_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_model.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_model_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_module.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_module_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mojo.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mojo_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mongodb.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mongodb_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mypy.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mypy_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mysql.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_mysql_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_netlify.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_netlify_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_next.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_next_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nginx.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nginx_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nix.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nix_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_node.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_node_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_notebooks.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_notebooks_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_notification.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_notification_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nuget.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nuget_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nuxt.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_nuxt_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_package.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_package_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_paket.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_paket_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_php.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_php_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_platformio.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_platformio_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_plugin.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_plugin_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_prisma.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_prisma_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_private.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_private_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_public.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_public_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_pytest.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_pytest_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_python.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_python_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_ravendb.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_ravendb_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_redis.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_redis_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_redux.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_redux_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_route.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_route_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_sass.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_sass_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_script.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_script_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_seedkit.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_seedkit_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_server.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_server_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_services.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_services_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_shared.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_shared_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_snaplet.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_snaplet_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_spin.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_spin_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_src.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_src_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_sso.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_sso_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_story.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_story_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_style.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_style_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_supabase.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_supabase_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_svelte.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_svelte_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_tauri.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_tauri_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_temp.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_temp_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_template.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_template_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_test.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_test_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_theme.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_theme_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_tools.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_tools_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_travis.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_travis_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_trunk.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_trunk_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_turbo.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_turbo_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_typescript.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_typescript_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_typings.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_typings2.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_typings2_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_typings_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vagrant.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vagrant_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vercel.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vercel_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_video.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_video_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_view.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_view_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vitepress.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vitepress_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vs.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vs2.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vs2_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vs_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode2.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode2_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode3.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode3_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode_test.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode_test2.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode_test2_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode_test3.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode_test3_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_vscode_test_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_wasm.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_wasm_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_webpack.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_webpack_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_windows.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_windows_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_windsurf.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_windsurf_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_wit.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_wit_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_www.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_www_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_yarn.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_yarn_opened.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_zed.svg +1 -0
- package/nuxt-app/.output/public/icons/folder_type_zed_opened.svg +1 -0
- package/nuxt-app/.output/public/index.html +9 -6
- package/package.json +26 -4
- package/server/index.js +45 -10
- package/server/routes/ai-dev/index.js +175 -0
- package/server/routes/ai.js +40 -0
- package/server/routes/files.js +119 -3
- package/server/routes/git.js +276 -0
- package/server/routes/stt.js +66 -0
- package/server/socket.js +411 -21
- package/server/utils/board-hooks.js +30 -0
- package/server/utils/board-state.js +39 -4
- package/server/utils/config.js +2 -0
- package/server/utils/element-hooks.js +17 -0
- package/server/utils/element-instances.js +9 -3
- package/server/utils/element-registry.js +2 -2
- package/server/utils/elements/agent-instance.js +2 -2
- package/server/utils/elements/agent.js +0 -2
- package/server/utils/elements/chat-view.js +2 -2
- package/server/utils/elements/html.js +2 -2
- package/server/utils/elements/terminal.js +38 -0
- package/server/utils/elements/web-preview.js +31 -0
- package/server/utils/file-utils.js +94 -20
- package/server/utils/file-watcher.js +93 -0
- package/server/utils/git.js +516 -0
- package/server/utils/orchestration-graph.js +359 -0
- package/server/utils/server-app.js +23 -0
- package/server/utils/session-watcher.js +2 -63
- package/server/utils/terminal-manager.js +212 -0
- package/server/utils/veil-client.js +229 -9
- package/server/utils/veil-ws.js +66 -0
- package/nuxt-app/.output/public/_nuxt/builds/latest.json +0 -1
- package/nuxt-app/.output/public/_nuxt/builds/meta/36837a3c-177e-42b6-ad7c-e2396d7093e8.json +0 -1
- package/nuxt-app/.output/public/_nuxt/entry.BQ7NhIi1.js +0 -120
- package/nuxt-app/.output/public/_nuxt/entry.CYnp7zY5.css +0 -1
- package/nuxt-app/.output/public/_nuxt/index.BEoXSIOu.css +0 -1
- 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,
|
|
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
|
-
|
|
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)
|
|
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')
|
|
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
|
-
|
|
162
|
-
|
|
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
|
-
|
|
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)
|
|
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 =
|
|
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 {
|
|
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 {
|
|
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
|
-
|
|
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
|
-
|
|
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
|