auvrynt 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +239 -0
- package/dist/blender-client.js +109 -0
- package/dist/blender-tools.js +930 -0
- package/dist/cli.js +370 -0
- package/dist/config.js +211 -0
- package/dist/connection-status.js +91 -0
- package/dist/db/client.js +22 -0
- package/dist/db/schema.js +29 -0
- package/dist/dotnet-tools.js +223 -0
- package/dist/git-worktrees.js +134 -0
- package/dist/git.js +41 -0
- package/dist/godot-animation-tilemap.js +82 -0
- package/dist/godot-csharp-build.js +93 -0
- package/dist/godot-csharp-project.js +157 -0
- package/dist/godot-csharp-runner.js +146 -0
- package/dist/godot-csharp-semantic.js +161 -0
- package/dist/godot-csharp-validate.js +71 -0
- package/dist/godot-dotnet-env.js +169 -0
- package/dist/godot-editor-bridge.js +140 -0
- package/dist/godot-gdscript.js +824 -0
- package/dist/godot-project-settings.js +223 -0
- package/dist/godot-runtime-testing.js +249 -0
- package/dist/godot-tools.js +183 -0
- package/dist/image-tools.js +157 -0
- package/dist/logger.js +76 -0
- package/dist/oauth-provider.js +266 -0
- package/dist/pi-tools.js +81 -0
- package/dist/processes.js +218 -0
- package/dist/review-checkpoints.js +142 -0
- package/dist/roots.js +53 -0
- package/dist/search-discovery.js +271 -0
- package/dist/serena-manager.js +443 -0
- package/dist/serena-tools.js +411 -0
- package/dist/server.js +2835 -0
- package/dist/skills.js +45 -0
- package/dist/ui/.vite/manifest.json +2520 -0
- package/dist/ui/assets/abap-CLvhMVsD.js +1 -0
- package/dist/ui/assets/actionscript-3--17pq3dv.js +1 -0
- package/dist/ui/assets/ada-C5qYipkI.js +1 -0
- package/dist/ui/assets/andromeeda-vGVdxbeo.js +1 -0
- package/dist/ui/assets/angular-html-BJqQFYI6.js +1 -0
- package/dist/ui/assets/angular-ts-CMJECO0Y.js +1 -0
- package/dist/ui/assets/apache-U0d_L8uA.js +1 -0
- package/dist/ui/assets/apex-CGTLDQj6.js +1 -0
- package/dist/ui/assets/apl-DWeXpBBr.js +1 -0
- package/dist/ui/assets/applescript-CCn79oCD.js +1 -0
- package/dist/ui/assets/ara-4CJ0cIlV.js +1 -0
- package/dist/ui/assets/asciidoc-DE70LPWp.js +1 -0
- package/dist/ui/assets/asm-Cmm7eHzH.js +1 -0
- package/dist/ui/assets/astro-CLbttLOq.js +1 -0
- package/dist/ui/assets/aurora-x-CDeNXAV0.js +1 -0
- package/dist/ui/assets/awk-BWXHIvNe.js +1 -0
- package/dist/ui/assets/ayu-dark-DluEY0Gj.js +1 -0
- package/dist/ui/assets/ayu-light-C3h-C4tm.js +1 -0
- package/dist/ui/assets/ayu-mirage-Bqwy1Gya.js +1 -0
- package/dist/ui/assets/ballerina-B7ZEbQpA.js +1 -0
- package/dist/ui/assets/bat-Bo4NYOV-.js +1 -0
- package/dist/ui/assets/beancount-D-usSTwE.js +1 -0
- package/dist/ui/assets/berry-DKpUyyne.js +1 -0
- package/dist/ui/assets/bibtex-Ci_nEsc7.js +1 -0
- package/dist/ui/assets/bicep-CUHmPFLl.js +1 -0
- package/dist/ui/assets/bird2-C2hNVINV.js +1 -0
- package/dist/ui/assets/blade-BOzY0P2V.js +1 -0
- package/dist/ui/assets/bsl-BkkzgIyY.js +1 -0
- package/dist/ui/assets/c-BG-8uJvh.js +1 -0
- package/dist/ui/assets/c3-CnJL0r0V.js +1 -0
- package/dist/ui/assets/cadence-CQ2zXKGN.js +1 -0
- package/dist/ui/assets/cairo-DLTphjLi.js +1 -0
- package/dist/ui/assets/catppuccin-frappe-3VR1Za6u.js +1 -0
- package/dist/ui/assets/catppuccin-latte-DwIHMF0Q.js +1 -0
- package/dist/ui/assets/catppuccin-macchiato-DYnBP6_5.js +1 -0
- package/dist/ui/assets/catppuccin-mocha-DYhrFGRu.js +1 -0
- package/dist/ui/assets/clarity-SemFz856.js +1 -0
- package/dist/ui/assets/clojure-DqKBuwfJ.js +1 -0
- package/dist/ui/assets/cmake-Bj61d0ZC.js +1 -0
- package/dist/ui/assets/cobol-I_17IuGe.js +1 -0
- package/dist/ui/assets/codeowners-C8r90Shi.js +1 -0
- package/dist/ui/assets/codeql-oeQT6MSM.js +1 -0
- package/dist/ui/assets/coffee-C0B8hmok.js +1 -0
- package/dist/ui/assets/common-lisp-Cv5bFMCO.js +1 -0
- package/dist/ui/assets/coq-BrsZFFmf.js +1 -0
- package/dist/ui/assets/cpp-DDJXt6Vs.js +1 -0
- package/dist/ui/assets/crystal-Bexqace6.js +1 -0
- package/dist/ui/assets/csharp-Ct8U2NOr.js +1 -0
- package/dist/ui/assets/css-DSQhw_9R.js +1 -0
- package/dist/ui/assets/csv-Dx-8-gkx.js +1 -0
- package/dist/ui/assets/cue-CE9AQfxI.js +1 -0
- package/dist/ui/assets/cypher-ClKdZ_lG.js +1 -0
- package/dist/ui/assets/d-qD-0Kul2.js +1 -0
- package/dist/ui/assets/dark-plus-Cs2F2srj.js +1 -0
- package/dist/ui/assets/dart-DkHntEIa.js +1 -0
- package/dist/ui/assets/dax-BkyTk9wS.js +1 -0
- package/dist/ui/assets/desktop-Dlh5hvp9.js +1 -0
- package/dist/ui/assets/diff-woXpYk--.js +1 -0
- package/dist/ui/assets/docker-IyjqRm3v.js +1 -0
- package/dist/ui/assets/dotenv-_5a1GRtc.js +1 -0
- package/dist/ui/assets/dracula-BHWKrbxM.js +1 -0
- package/dist/ui/assets/dracula-soft-5eyTD99u.js +1 -0
- package/dist/ui/assets/dream-maker-DW3nJb8Q.js +1 -0
- package/dist/ui/assets/edge-Z8YYkHOr.js +1 -0
- package/dist/ui/assets/elixir-CG9uKtAF.js +1 -0
- package/dist/ui/assets/elm-GfWG2IfT.js +1 -0
- package/dist/ui/assets/emacs-lisp-C9PiwqqW.js +1 -0
- package/dist/ui/assets/erb-xe89e73J.js +1 -0
- package/dist/ui/assets/erlang-Cphh6RMH.js +1 -0
- package/dist/ui/assets/everforest-dark-sB-x3p7T.js +1 -0
- package/dist/ui/assets/everforest-light-Df2xbC6M.js +1 -0
- package/dist/ui/assets/fennel-DQxkIbk2.js +1 -0
- package/dist/ui/assets/fish-BJitypiv.js +1 -0
- package/dist/ui/assets/fluent-C03EYrpw.js +1 -0
- package/dist/ui/assets/fortran-fixed-form-DEKoE2YW.js +1 -0
- package/dist/ui/assets/fortran-free-form-CYNrtFtB.js +1 -0
- package/dist/ui/assets/fsharp-D13ZGOAj.js +1 -0
- package/dist/ui/assets/gdresource-C0sCabJj.js +1 -0
- package/dist/ui/assets/gdscript-Cp2uCuqX.js +1 -0
- package/dist/ui/assets/gdshader-CBce3t8t.js +1 -0
- package/dist/ui/assets/genie-CV2tkWYe.js +1 -0
- package/dist/ui/assets/gherkin-DExj1W_8.js +1 -0
- package/dist/ui/assets/git-commit-BSykSTBG.js +1 -0
- package/dist/ui/assets/git-rebase-CoTL_uSE.js +1 -0
- package/dist/ui/assets/github-dark-C-LZuMrd.js +1 -0
- package/dist/ui/assets/github-dark-default-DXG-b-1a.js +1 -0
- package/dist/ui/assets/github-dark-dimmed-Bx1FflLF.js +1 -0
- package/dist/ui/assets/github-dark-high-contrast-B_tTalzw.js +1 -0
- package/dist/ui/assets/github-light-EUqPIrTm.js +1 -0
- package/dist/ui/assets/github-light-default-BXViO-2h.js +1 -0
- package/dist/ui/assets/github-light-high-contrast-B68TUdTA.js +1 -0
- package/dist/ui/assets/gleam-CSRkHgEL.js +1 -0
- package/dist/ui/assets/glimmer-js-DAn4UCSu.js +1 -0
- package/dist/ui/assets/glimmer-ts-Tjyi6Gh5.js +1 -0
- package/dist/ui/assets/glsl-CtTDZoqR.js +1 -0
- package/dist/ui/assets/gn-ilITqXS6.js +1 -0
- package/dist/ui/assets/gnuplot-7GGW24-e.js +1 -0
- package/dist/ui/assets/go-BJwz_mda.js +1 -0
- package/dist/ui/assets/graphql-D5gcC_Jk.js +1 -0
- package/dist/ui/assets/groovy-CacY0gHj.js +1 -0
- package/dist/ui/assets/gruvbox-dark-hard-C820rvS2.js +1 -0
- package/dist/ui/assets/gruvbox-dark-medium-BPjhmG05.js +1 -0
- package/dist/ui/assets/gruvbox-dark-soft-MrdJrrXF.js +1 -0
- package/dist/ui/assets/gruvbox-light-hard-BC_s9l72.js +1 -0
- package/dist/ui/assets/gruvbox-light-medium-BAWPOn9u.js +1 -0
- package/dist/ui/assets/gruvbox-light-soft-BSMLrYjP.js +1 -0
- package/dist/ui/assets/hack-BJXY27dt.js +1 -0
- package/dist/ui/assets/haml-BLfFoZf7.js +1 -0
- package/dist/ui/assets/handlebars-Dw6CWkvN.js +1 -0
- package/dist/ui/assets/haskell-D8IpX4py.js +1 -0
- package/dist/ui/assets/haxe-OTjmBuCE.js +1 -0
- package/dist/ui/assets/hcl-Dh228itO.js +1 -0
- package/dist/ui/assets/heavy-payload-Dcg0-F-S.js +4 -0
- package/dist/ui/assets/hjson-CxZEssPk.js +1 -0
- package/dist/ui/assets/hlsl-Cvrh5tZx.js +1 -0
- package/dist/ui/assets/horizon-CE9ld1lL.js +1 -0
- package/dist/ui/assets/horizon-bright-Br1oVSNq.js +1 -0
- package/dist/ui/assets/houston-CsvMBhTu.js +1 -0
- package/dist/ui/assets/html-CAcAWvoN.js +1 -0
- package/dist/ui/assets/html-derivative-8aSW2E_7.js +1 -0
- package/dist/ui/assets/http-B2YR_3V1.js +1 -0
- package/dist/ui/assets/hurl-BnDJ9Zhf.js +1 -0
- package/dist/ui/assets/hxml-B0Qn7Nwc.js +1 -0
- package/dist/ui/assets/hy-CZbG8q4J.js +1 -0
- package/dist/ui/assets/imba-DsUTQ-LC.js +1 -0
- package/dist/ui/assets/ini-B5eOa1yu.js +1 -0
- package/dist/ui/assets/java-Doxi4W8u.js +1 -0
- package/dist/ui/assets/javascript-BbRdEqti.js +1 -0
- package/dist/ui/assets/jinja-CS3Tpv_Q.js +1 -0
- package/dist/ui/assets/jison-BkPGYVHR.js +1 -0
- package/dist/ui/assets/json-BMt1m3m8.js +1 -0
- package/dist/ui/assets/json5-BR5RXkoi.js +1 -0
- package/dist/ui/assets/jsonc-CYpm1nAK.js +1 -0
- package/dist/ui/assets/jsonl-CmCQp5Yx.js +1 -0
- package/dist/ui/assets/jsonnet-CJTPZ8u_.js +1 -0
- package/dist/ui/assets/jssm-DXw9l8Rf.js +1 -0
- package/dist/ui/assets/jsx-CQKrJXXY.js +1 -0
- package/dist/ui/assets/julia-BuN7i2du.js +1 -0
- package/dist/ui/assets/just-BswEPFPu.js +1 -0
- package/dist/ui/assets/kanagawa-dragon-CXtmUGW6.js +1 -0
- package/dist/ui/assets/kanagawa-lotus-BN08jTvb.js +1 -0
- package/dist/ui/assets/kanagawa-wave-CTweb8Dz.js +1 -0
- package/dist/ui/assets/kdl-CsD5j6eV.js +1 -0
- package/dist/ui/assets/kotlin-DhhofPvG.js +1 -0
- package/dist/ui/assets/kusto-BUv0MjJC.js +1 -0
- package/dist/ui/assets/laserwave-C_8bwKvT.js +1 -0
- package/dist/ui/assets/latex-DU2VyFfA.js +1 -0
- package/dist/ui/assets/lean-CewbzKMR.js +1 -0
- package/dist/ui/assets/less-DVTAwKKz.js +1 -0
- package/dist/ui/assets/light-plus-DVQuIRkW.js +1 -0
- package/dist/ui/assets/liquid-Cmz1L3dq.js +1 -0
- package/dist/ui/assets/llvm-Cm23YOpf.js +1 -0
- package/dist/ui/assets/log-BNLmms1o.js +1 -0
- package/dist/ui/assets/logo-Cluzi2Zq.js +1 -0
- package/dist/ui/assets/lua-CfVXhkaJ.js +1 -0
- package/dist/ui/assets/luau-CNKltnaQ.js +1 -0
- package/dist/ui/assets/make-Dixweg8N.js +1 -0
- package/dist/ui/assets/markdown-BYOwaDjH.js +1 -0
- package/dist/ui/assets/marko-C5bfqGiA.js +1 -0
- package/dist/ui/assets/material-theme-Bm3Qr25_.js +1 -0
- package/dist/ui/assets/material-theme-darker-2IIEA8gg.js +1 -0
- package/dist/ui/assets/material-theme-lighter-uhdI0v04.js +1 -0
- package/dist/ui/assets/material-theme-ocean-CHQ94UKr.js +1 -0
- package/dist/ui/assets/material-theme-palenight-B5W6OYN7.js +1 -0
- package/dist/ui/assets/matlab-D7qyCx1q.js +1 -0
- package/dist/ui/assets/mdc-CVBXYfyq.js +1 -0
- package/dist/ui/assets/mdx-DQZ5AkYe.js +1 -0
- package/dist/ui/assets/mermaid-Bk4SNUv9.js +1 -0
- package/dist/ui/assets/min-dark-BSWPekZh.js +1 -0
- package/dist/ui/assets/min-light-DDpmG2fV.js +1 -0
- package/dist/ui/assets/mipsasm-BMqwQI7S.js +1 -0
- package/dist/ui/assets/mojo-BgCJLMeH.js +1 -0
- package/dist/ui/assets/monokai-CdkpiU2Y.js +1 -0
- package/dist/ui/assets/moonbit-CaWjb8XO.js +1 -0
- package/dist/ui/assets/move-B1IS1UjX.js +1 -0
- package/dist/ui/assets/narrat-_X_XdTYD.js +1 -0
- package/dist/ui/assets/nextflow-Bbiyy34d.js +1 -0
- package/dist/ui/assets/nextflow-groovy-Dc_ddanL.js +1 -0
- package/dist/ui/assets/nginx-CzJafxLa.js +1 -0
- package/dist/ui/assets/night-owl-DhmEMT88.js +1 -0
- package/dist/ui/assets/night-owl-light-eJ-hLW7d.js +1 -0
- package/dist/ui/assets/nim-DABKtHtM.js +1 -0
- package/dist/ui/assets/nix-IvuFDN5E.js +1 -0
- package/dist/ui/assets/nord-Cb4Vim4T.js +1 -0
- package/dist/ui/assets/nushell-DcLAeLz5.js +1 -0
- package/dist/ui/assets/objective-c-D1A_Heim.js +1 -0
- package/dist/ui/assets/objective-cpp-BsSzOQcm.js +1 -0
- package/dist/ui/assets/ocaml-O90oeIOV.js +1 -0
- package/dist/ui/assets/odin-B1RWQWA5.js +1 -0
- package/dist/ui/assets/one-dark-pro-CLwyXe_n.js +1 -0
- package/dist/ui/assets/one-light-D7Lr4KcI.js +1 -0
- package/dist/ui/assets/openscad-BUDT5pXO.js +1 -0
- package/dist/ui/assets/pascal-4ZHwLPI5.js +1 -0
- package/dist/ui/assets/perl-CBh7L3lZ.js +1 -0
- package/dist/ui/assets/php-DFbI9q5p.js +1 -0
- package/dist/ui/assets/pierre-dark-sU4Zdns8.js +1 -0
- package/dist/ui/assets/pierre-dark-soft-HXgun5vs.js +1 -0
- package/dist/ui/assets/pierre-light-DWBk51d8.js +1 -0
- package/dist/ui/assets/pierre-light-soft-CodEzPxf.js +1 -0
- package/dist/ui/assets/pkl-ot-7Btpt.js +1 -0
- package/dist/ui/assets/plastic-DQwYfKfQ.js +1 -0
- package/dist/ui/assets/plsql-DGHpHOYJ.js +1 -0
- package/dist/ui/assets/po-BiJDBrnU.js +1 -0
- package/dist/ui/assets/poimandres-DRFjx7u4.js +1 -0
- package/dist/ui/assets/polar-C7UOKdEL.js +1 -0
- package/dist/ui/assets/postcss-BXeXVLqQ.js +1 -0
- package/dist/ui/assets/powerquery-DNMTfnFr.js +1 -0
- package/dist/ui/assets/powershell-DshXNtvi.js +1 -0
- package/dist/ui/assets/prisma-BsRQq5mF.js +1 -0
- package/dist/ui/assets/prolog-iXnhIJG7.js +1 -0
- package/dist/ui/assets/proto-DB4EqR-F.js +1 -0
- package/dist/ui/assets/pug-C_PxC7gO.js +1 -0
- package/dist/ui/assets/puppet-CDv2pdJW.js +1 -0
- package/dist/ui/assets/purescript-9MfHhQsQ.js +1 -0
- package/dist/ui/assets/python-gzcpVVnB.js +1 -0
- package/dist/ui/assets/qml-DtngoFFK.js +1 -0
- package/dist/ui/assets/qmldir-DCQb3MpD.js +1 -0
- package/dist/ui/assets/qss-Fe1Jh2GI.js +1 -0
- package/dist/ui/assets/r-DohkcevW.js +1 -0
- package/dist/ui/assets/racket-DcIDlBhZ.js +1 -0
- package/dist/ui/assets/raku-B3gFvitq.js +1 -0
- package/dist/ui/assets/razor-C4t8J0_E.js +1 -0
- package/dist/ui/assets/red-CJ3rzSJv.js +1 -0
- package/dist/ui/assets/reg-CRGYupPL.js +1 -0
- package/dist/ui/assets/regexp-OGbTbjgY.js +1 -0
- package/dist/ui/assets/rel-BtDbiS_P.js +1 -0
- package/dist/ui/assets/review-payload-C5Qz60Kq.js +1 -0
- package/dist/ui/assets/riscv-Ckw8ddFX.js +1 -0
- package/dist/ui/assets/ron-VUp2lXgN.js +1 -0
- package/dist/ui/assets/rose-pine-BthvhNj6.js +1 -0
- package/dist/ui/assets/rose-pine-dawn-Dg85fqjY.js +1 -0
- package/dist/ui/assets/rose-pine-moon-hon4tzzS.js +1 -0
- package/dist/ui/assets/rosmsg-CAekHB0j.js +1 -0
- package/dist/ui/assets/rst-CfBbbcvC.js +1 -0
- package/dist/ui/assets/ruby-Bw0mpxHY.js +1 -0
- package/dist/ui/assets/rust-Cfkwpbl8.js +1 -0
- package/dist/ui/assets/sas-Cs3s9JOf.js +1 -0
- package/dist/ui/assets/sass-DXrisJhu.js +1 -0
- package/dist/ui/assets/scala-DKOlJaKm.js +1 -0
- package/dist/ui/assets/scheme-DQCgrYNe.js +1 -0
- package/dist/ui/assets/scss-sRxNJS54.js +1 -0
- package/dist/ui/assets/sdbl-bTVj8UrX.js +1 -0
- package/dist/ui/assets/shaderlab-TOUzSsQk.js +1 -0
- package/dist/ui/assets/shellscript-B0X6wh0R.js +1 -0
- package/dist/ui/assets/shellsession-D2FdOioR.js +1 -0
- package/dist/ui/assets/slack-dark-DnToyrRv.js +1 -0
- package/dist/ui/assets/slack-ochin-B2OO5cIa.js +1 -0
- package/dist/ui/assets/smalltalk-B16xEiuN.js +1 -0
- package/dist/ui/assets/snazzy-light-4G7pJPwS.js +1 -0
- package/dist/ui/assets/solarized-dark-DV17i1UV.js +1 -0
- package/dist/ui/assets/solarized-light-DSh2HLQt.js +1 -0
- package/dist/ui/assets/solidity-CKzVLygQ.js +1 -0
- package/dist/ui/assets/soy-s6g9OjJ1.js +1 -0
- package/dist/ui/assets/sparql-D_iOobhT.js +1 -0
- package/dist/ui/assets/splunk-BC2Px7Mm.js +1 -0
- package/dist/ui/assets/sql-DVTnh5V-.js +1 -0
- package/dist/ui/assets/ssh-config-BgfXC-Er.js +1 -0
- package/dist/ui/assets/stata-DFIDiXF9.js +1 -0
- package/dist/ui/assets/stylus-B6D30XZt.js +1 -0
- package/dist/ui/assets/surrealql-DVfrsLyg.js +1 -0
- package/dist/ui/assets/svelte-D5GsxESq.js +1 -0
- package/dist/ui/assets/swift-DonLKvLd.js +1 -0
- package/dist/ui/assets/synthwave-84-nFMaYfgc.js +1 -0
- package/dist/ui/assets/system-verilog-DJ5XKQeo.js +1 -0
- package/dist/ui/assets/systemd-BxMlprV5.js +1 -0
- package/dist/ui/assets/talonscript-CohzipZa.js +1 -0
- package/dist/ui/assets/tasl-DMoTqEGO.js +1 -0
- package/dist/ui/assets/tcl-CZd0xW_V.js +1 -0
- package/dist/ui/assets/templ-DI-Zyqzd.js +1 -0
- package/dist/ui/assets/terraform-DswuEJGm.js +1 -0
- package/dist/ui/assets/tex-WHHmlbJI.js +1 -0
- package/dist/ui/assets/tokyo-night-oM2G3aXe.js +1 -0
- package/dist/ui/assets/toml-CcmNWLt0.js +1 -0
- package/dist/ui/assets/ts-tags-Dwpo2RFJ.js +1 -0
- package/dist/ui/assets/tsv-sltzmVWM.js +1 -0
- package/dist/ui/assets/tsx-ph_idaAW.js +1 -0
- package/dist/ui/assets/turtle-ByJddavk.js +1 -0
- package/dist/ui/assets/twig-YO17jFjR.js +1 -0
- package/dist/ui/assets/typescript-CbAxjhkl.js +1 -0
- package/dist/ui/assets/typespec-B88KGewJ.js +1 -0
- package/dist/ui/assets/typst-DI99ib-x.js +1 -0
- package/dist/ui/assets/useFileDiffInstance-B2DLX3Vg.js +244 -0
- package/dist/ui/assets/v-DETTlOr0.js +1 -0
- package/dist/ui/assets/vala-zf12oZj6.js +1 -0
- package/dist/ui/assets/vb-Djn5o6TS.js +1 -0
- package/dist/ui/assets/verilog-CiiDBU1e.js +1 -0
- package/dist/ui/assets/vesper-D5bVUKB1.js +1 -0
- package/dist/ui/assets/vhdl-BroJfC0k.js +1 -0
- package/dist/ui/assets/viml-DvXPmvsu.js +1 -0
- package/dist/ui/assets/vitesse-black-fwtXNY1n.js +1 -0
- package/dist/ui/assets/vitesse-dark-BZCL-v6S.js +1 -0
- package/dist/ui/assets/vitesse-light-VbXTXTou.js +1 -0
- package/dist/ui/assets/vue-CraHL-Ps.js +1 -0
- package/dist/ui/assets/vue-html-e9tyZNtS.js +1 -0
- package/dist/ui/assets/vue-vine-CofmxaUb.js +1 -0
- package/dist/ui/assets/vyper-CgoNMtux.js +1 -0
- package/dist/ui/assets/wasm-BnjxR4X6.js +1 -0
- package/dist/ui/assets/wasm-ByWQv1Qj.js +1 -0
- package/dist/ui/assets/wenyan-C8pVoKbM.js +1 -0
- package/dist/ui/assets/wgsl-BsKzXJz4.js +1 -0
- package/dist/ui/assets/wikitext-ClFFjSW2.js +1 -0
- package/dist/ui/assets/wit-DdvCle-K.js +1 -0
- package/dist/ui/assets/wolfram-DLL8P-h_.js +1 -0
- package/dist/ui/assets/workspace-app-8--oTbCd.css +1 -0
- package/dist/ui/assets/workspace-app-C5QsE314.js +118 -0
- package/dist/ui/assets/xml-BWSdPZHm.js +1 -0
- package/dist/ui/assets/xsl-BtCt7Hx8.js +1 -0
- package/dist/ui/assets/yaml-BZiTw7cQ.js +1 -0
- package/dist/ui/assets/zenscript-BnlCZFoB.js +1 -0
- package/dist/ui/assets/zig-CMLA9XwU.js +1 -0
- package/dist/ui/workspace-app.html +15 -0
- package/dist/user-config.js +57 -0
- package/dist/view-image.js +104 -0
- package/dist/web-tools.js +200 -0
- package/dist/window-capture.js +74 -0
- package/dist/workspace-store.js +125 -0
- package/dist/workspaces.js +226 -0
- package/docs/DEVELOPMENT_TOOLS.md +95 -0
- package/docs/assets/auvrynt-logo-light.png +0 -0
- package/docs/assets/auvrynt-screenshot.png +0 -0
- package/docs/chatgpt-coding-workflow.md +143 -0
- package/docs/configuration.md +132 -0
- package/docs/gotchas.md +215 -0
- package/docs/security.md +100 -0
- package/docs/setup.md +132 -0
- package/package.json +70 -0
- package/scripts/dev-server.mjs +120 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 EN-rain
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
<h1 align="center">Auvrynt — Web-to-local Arsenal</h1>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
A self-hosted MCP server that gives AI coding assistants secure, real-time access to your local machine.
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/auvrynt">
|
|
11
|
+
<img alt="npm" src="https://img.shields.io/npm/v/auvrynt?style=flat-square&color=cb3837" />
|
|
12
|
+
</a>
|
|
13
|
+
<a href="https://github.com/EN-rain/Auvrynt-Web-to-local-Arsenal/actions/workflows/ci.yml">
|
|
14
|
+
<img alt="CI" src="https://img.shields.io/github/actions/workflow/status/EN-rain/Auvrynt-Web-to-local-Arsenal/ci.yml?style=flat-square&branch=main" />
|
|
15
|
+
</a>
|
|
16
|
+
<a href="https://github.com/EN-rain/Auvrynt-Web-to-local-Arsenal/blob/main/LICENSE">
|
|
17
|
+
<img alt="License" src="https://img.shields.io/npm/l/auvrynt?style=flat-square" />
|
|
18
|
+
</a>
|
|
19
|
+
<a href="https://nodejs.org">
|
|
20
|
+
<img alt="Node" src="https://img.shields.io/badge/node-%3E%3D20.12-brightgreen?style=flat-square" />
|
|
21
|
+
</a>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## What is Auvrynt?
|
|
27
|
+
|
|
28
|
+
Auvrynt is a **Model Context Protocol (MCP) server** you run on your own machine. It creates a secure, tunneled connection between AI clients like ChatGPT or Claude and your local development environment — your actual files, terminals, build tools, and project folders.
|
|
29
|
+
|
|
30
|
+
No cloud upload. No third-party storage. Your code stays on your machine.
|
|
31
|
+
|
|
32
|
+
Connect once, then ask your AI to:
|
|
33
|
+
|
|
34
|
+
- Open any approved project folder on your machine
|
|
35
|
+
- Read, write, search, and edit real source files
|
|
36
|
+
- Run shell commands, tests, builds, and package scripts
|
|
37
|
+
- Work across web, .NET, Godot, and Blender projects
|
|
38
|
+
- Capture screenshots of running apps
|
|
39
|
+
- Use isolated Git worktrees for parallel coding sessions
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Quick Start
|
|
44
|
+
|
|
45
|
+
> **Requires:** Node.js `>=20.12 <27` — Node 22 LTS recommended
|
|
46
|
+
|
|
47
|
+
**Install globally:**
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm install -g auvrynt
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**Set up and start:**
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
auvrynt init
|
|
57
|
+
auvrynt start
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Or run directly without installing:**
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
npx auvrynt init
|
|
64
|
+
npx auvrynt start
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
During `auvrynt init`, you will be asked for:
|
|
68
|
+
|
|
69
|
+
| Prompt | Description |
|
|
70
|
+
|---|---|
|
|
71
|
+
| Project roots | Local folder paths your AI is allowed to access |
|
|
72
|
+
| Local port | Default is `49321` |
|
|
73
|
+
| Public base URL | Your tunnel URL (Cloudflare, ngrok, Pinggy, Tailscale, etc.) |
|
|
74
|
+
|
|
75
|
+
> **Important:** Provide the base URL — do **not** include `/mcp`. Example: `https://your-tunnel.trycloudflare.com`
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Start the Server
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# Clean animated mode (shows public URL + password, with live log indicator)
|
|
83
|
+
auvrynt start
|
|
84
|
+
|
|
85
|
+
# Verbose mode (shows full request logs in terminal)
|
|
86
|
+
auvrynt serve
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
After startup, the terminal shows:
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
Auvrynt is running!
|
|
93
|
+
|
|
94
|
+
Public URL: https://your-tunnel.trycloudflare.com/mcp
|
|
95
|
+
Owner Password: <your-generated-password>
|
|
96
|
+
|
|
97
|
+
# CTRL + C to stop
|
|
98
|
+
|
|
99
|
+
⠋ Logs active... (0 requests handled | Last: Started successfully)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## Connect an MCP Client
|
|
105
|
+
|
|
106
|
+
Paste your `/mcp` URL into your AI client (ChatGPT, Claude, etc.):
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
https://your-tunnel.trycloudflare.com/mcp
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
When the client connects, you will be prompted to approve the session using the **Owner password** shown at startup. The password is also stored in:
|
|
113
|
+
|
|
114
|
+
```
|
|
115
|
+
~/.auvrynt/auth.json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Keep it private.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Commands
|
|
123
|
+
|
|
124
|
+
| Command | Description |
|
|
125
|
+
|---|---|
|
|
126
|
+
| `auvrynt init` | Run first-time setup or update your config |
|
|
127
|
+
| `auvrynt start` | Start the server with clean animated output |
|
|
128
|
+
| `auvrynt serve` | Start the server with verbose log output |
|
|
129
|
+
| `auvrynt doctor` | Show your config, Node version, and dependency health |
|
|
130
|
+
| `auvrynt config get` | Print your saved configuration |
|
|
131
|
+
| `auvrynt config set publicBaseUrl <url>` | Update your public tunnel URL |
|
|
132
|
+
|
|
133
|
+
**Override the tunnel URL for a one-off run:**
|
|
134
|
+
|
|
135
|
+
```bash
|
|
136
|
+
AUVRYNT_PUBLIC_BASE_URL=https://new-tunnel.example.com auvrynt start
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## What Your AI Can Do
|
|
142
|
+
|
|
143
|
+
Once connected and a workspace is opened, your AI assistant has access to **139 tools** across:
|
|
144
|
+
|
|
145
|
+
| Category | Capabilities |
|
|
146
|
+
|---|---|
|
|
147
|
+
| **Files** | Read, write, edit, search, glob, list directory |
|
|
148
|
+
| **Shell** | Run commands, tests, builds, git, package scripts |
|
|
149
|
+
| **Processes** | Start/stop persistent processes, tail logs |
|
|
150
|
+
| **Web** | Launch dev servers, screenshot pages, inspect DOM |
|
|
151
|
+
| **Images** | Inspect, compare, sprite-sheet splitting |
|
|
152
|
+
| **.NET** | Inspect projects, restore, build, test, format |
|
|
153
|
+
| **Godot** | Run projects, inspect scenes, C# build, GDScript diagnostics |
|
|
154
|
+
| **Blender** | Scene audit, checkpoints, renders, export GLB |
|
|
155
|
+
| **Git** | Worktree management, status, diff, branch ops |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Project Routing
|
|
160
|
+
|
|
161
|
+
Auvrynt automatically selects the right workflow guide based on your project type:
|
|
162
|
+
|
|
163
|
+
| Project signals | Guide loaded |
|
|
164
|
+
|---|---|
|
|
165
|
+
| `package.json` + `vite.config.ts` / web framework | Web Agent Guide |
|
|
166
|
+
| `App.sln` / `.csproj` without `project.godot` | Software Agent Guide |
|
|
167
|
+
| `project.godot` (any language) | Godot Agent Guide |
|
|
168
|
+
| `.blend` files | Blender Agent Guide |
|
|
169
|
+
|
|
170
|
+
See [`PROJECT_ROUTER.md`](guides/PROJECT_ROUTER.md) for full routing rules.
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## Platform Support
|
|
175
|
+
|
|
176
|
+
| Platform | Status |
|
|
177
|
+
|---|---|
|
|
178
|
+
| Linux | ✅ Supported |
|
|
179
|
+
| macOS | ✅ Supported |
|
|
180
|
+
| Windows (Git Bash / WSL / MSYS2) | ✅ Supported |
|
|
181
|
+
| Windows PowerShell / cmd.exe only | ❌ Not supported — use Git Bash or WSL |
|
|
182
|
+
|
|
183
|
+
**Check your environment:**
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
auvrynt doctor
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## Configuration
|
|
192
|
+
|
|
193
|
+
Config files are stored in `~/.auvrynt/`:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
~/.auvrynt/config.json ← ports, roots, public URL
|
|
197
|
+
~/.auvrynt/auth.json ← owner password (keep private)
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
Key environment variables:
|
|
201
|
+
|
|
202
|
+
| Variable | Description |
|
|
203
|
+
|---|---|
|
|
204
|
+
| `AUVRYNT_ALLOWED_ROOTS` | Comma-separated project root paths |
|
|
205
|
+
| `AUVRYNT_PUBLIC_BASE_URL` | Your public tunnel origin (no `/mcp`) |
|
|
206
|
+
| `AUVRYNT_OAUTH_OWNER_TOKEN` | Override the owner password directly |
|
|
207
|
+
| `AUVRYNT_LOG_FORMAT` | `json` (default) or `pretty` |
|
|
208
|
+
|
|
209
|
+
See [Configuration Reference](docs/configuration.md) for all options.
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
## Documentation
|
|
214
|
+
|
|
215
|
+
| Document | Description |
|
|
216
|
+
|---|---|
|
|
217
|
+
| [Setup Guide](docs/setup.md) | Step-by-step tunnel and client setup |
|
|
218
|
+
| [Configuration Reference](docs/configuration.md) | All env vars and config options |
|
|
219
|
+
| [ChatGPT Coding Workflow](docs/chatgpt-coding-workflow.md) | How to use Auvrynt day-to-day |
|
|
220
|
+
| [Security Model](docs/security.md) | Path isolation, auth, and threat model |
|
|
221
|
+
| [Troubleshooting Gotchas](docs/gotchas.md) | Common issues and fixes |
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## Local Development
|
|
226
|
+
|
|
227
|
+
```bash
|
|
228
|
+
npm install --include=dev
|
|
229
|
+
npm run typecheck
|
|
230
|
+
npm test
|
|
231
|
+
npm run build
|
|
232
|
+
npm run dev
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## License
|
|
238
|
+
|
|
239
|
+
MIT — © 2026 [EN-rain](https://github.com/EN-rain)
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { createConnection } from "node:net";
|
|
2
|
+
export class BlenderClient {
|
|
3
|
+
static MAX_RESPONSE_BYTES = 8 * 1024 * 1024;
|
|
4
|
+
host;
|
|
5
|
+
port;
|
|
6
|
+
timeoutMs;
|
|
7
|
+
longTaskTimeoutMs;
|
|
8
|
+
activeMutationPromise = Promise.resolve();
|
|
9
|
+
constructor(config = {}) {
|
|
10
|
+
this.host = config.host || "127.0.0.1";
|
|
11
|
+
this.port = config.port || 49323;
|
|
12
|
+
this.timeoutMs = config.timeoutMs || 180000;
|
|
13
|
+
this.longTaskTimeoutMs = config.longTaskTimeoutMs || 7200000;
|
|
14
|
+
// Security check: enforce loopback host
|
|
15
|
+
if (this.host !== "127.0.0.1" && this.host !== "localhost") {
|
|
16
|
+
throw new Error(`Forbidden host: ${this.host}. Only loopback connection is allowed for Blender MCP.`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Sends Python code to the Blender bridge over TCP socket.
|
|
21
|
+
* Ensures single execution at a time to prevent concurrency issues.
|
|
22
|
+
*/
|
|
23
|
+
async sendExecute(code, strictJson = true, isLongTask = false) {
|
|
24
|
+
const action = () => this.sendExecuteInternal(code, strictJson, isLongTask);
|
|
25
|
+
this.activeMutationPromise = this.activeMutationPromise.then(action, action);
|
|
26
|
+
return this.activeMutationPromise;
|
|
27
|
+
}
|
|
28
|
+
async sendExecuteInternal(code, strictJson, isLongTask) {
|
|
29
|
+
const timeout = isLongTask ? this.longTaskTimeoutMs : this.timeoutMs;
|
|
30
|
+
const request = {
|
|
31
|
+
type: "execute",
|
|
32
|
+
code,
|
|
33
|
+
strict_json: strictJson,
|
|
34
|
+
};
|
|
35
|
+
const payload = Buffer.concat([Buffer.from(JSON.stringify(request), "utf8"), Buffer.from([0])]);
|
|
36
|
+
// Limit payload size to 1 MB
|
|
37
|
+
if (payload.length > 1024 * 1024) {
|
|
38
|
+
throw new Error("Payload size limit exceeded (max 1 MB)");
|
|
39
|
+
}
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
let client = null;
|
|
42
|
+
let buffer = Buffer.alloc(0);
|
|
43
|
+
let timeoutId = null;
|
|
44
|
+
const cleanup = () => {
|
|
45
|
+
if (timeoutId) {
|
|
46
|
+
clearTimeout(timeoutId);
|
|
47
|
+
timeoutId = null;
|
|
48
|
+
}
|
|
49
|
+
if (client) {
|
|
50
|
+
client.destroy();
|
|
51
|
+
client = null;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
try {
|
|
55
|
+
client = createConnection({ host: this.host, port: this.port }, () => {
|
|
56
|
+
client?.write(payload);
|
|
57
|
+
});
|
|
58
|
+
timeoutId = setTimeout(() => {
|
|
59
|
+
cleanup();
|
|
60
|
+
reject(new Error(`Blender connection timed out after ${timeout}ms`));
|
|
61
|
+
}, timeout);
|
|
62
|
+
client.on("data", (chunk) => {
|
|
63
|
+
buffer = Buffer.concat([buffer, Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)]);
|
|
64
|
+
if (buffer.length > BlenderClient.MAX_RESPONSE_BYTES) {
|
|
65
|
+
cleanup();
|
|
66
|
+
reject(new Error("Blender response exceeded the 8 MB limit"));
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
// Check for null terminator
|
|
70
|
+
const nullIndex = buffer.indexOf(0);
|
|
71
|
+
if (nullIndex !== -1) {
|
|
72
|
+
const raw = buffer.subarray(0, nullIndex).toString("utf8").trim();
|
|
73
|
+
cleanup();
|
|
74
|
+
try {
|
|
75
|
+
const parsed = JSON.parse(raw);
|
|
76
|
+
if (parsed.status === "ok") {
|
|
77
|
+
resolve(parsed.result || {});
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
reject(new Error(parsed.message || "Unknown Blender execution error"));
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
catch (e) {
|
|
84
|
+
reject(new Error(`Failed to parse Blender JSON response: ${e.message}`));
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
client.on("error", (err) => {
|
|
89
|
+
cleanup();
|
|
90
|
+
reject(new Error(`Blender connection error: ${err.message}`));
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
cleanup();
|
|
95
|
+
reject(err);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
// Global active client registry matching workspace Id
|
|
101
|
+
const activeBlenderClients = new Map();
|
|
102
|
+
export function getBlenderClient(workspaceId, config) {
|
|
103
|
+
let client = activeBlenderClients.get(workspaceId);
|
|
104
|
+
if (!client) {
|
|
105
|
+
client = new BlenderClient(config);
|
|
106
|
+
activeBlenderClients.set(workspaceId, client);
|
|
107
|
+
}
|
|
108
|
+
return client;
|
|
109
|
+
}
|