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
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Configuration Reference
|
|
2
|
+
|
|
3
|
+
Auvrynt can be configured through `auvrynt init`, persisted config files, or
|
|
4
|
+
environment variables.
|
|
5
|
+
|
|
6
|
+
The default files are:
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
~/.auvrynt/config.json
|
|
10
|
+
~/.auvrynt/auth.json
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Use another config directory with:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
AUVRYNT_CONFIG_DIR=/path/to/config npx auvrynt serve
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Commands
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx auvrynt init
|
|
23
|
+
npx auvrynt serve
|
|
24
|
+
npx auvrynt doctor
|
|
25
|
+
npx auvrynt config get
|
|
26
|
+
npx auvrynt config set publicBaseUrl https://auvrynt.example.com
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Core Environment Variables
|
|
30
|
+
|
|
31
|
+
| Variable | Purpose |
|
|
32
|
+
| --- | --- |
|
|
33
|
+
| `HOST` | Local bind host. Defaults to `127.0.0.1`. |
|
|
34
|
+
| `PORT` | Local port. Defaults to `49321`. |
|
|
35
|
+
| `AUVRYNT_ALLOWED_ROOTS` | Comma-separated local roots that workspaces may open. |
|
|
36
|
+
| `AUVRYNT_PUBLIC_BASE_URL` | Public origin for the server, without `/mcp`. |
|
|
37
|
+
| `AUVRYNT_ALLOWED_HOSTS` | Optional Host header allowlist override. |
|
|
38
|
+
| `AUVRYNT_OAUTH_OWNER_TOKEN` | Owner password for OAuth approval. Must be at least 16 characters. |
|
|
39
|
+
| `AUVRYNT_WORKTREE_ROOT` | Directory for managed Git worktrees. Defaults to `~/.auvrynt/worktrees`. |
|
|
40
|
+
| `AUVRYNT_STATE_DIR` | Directory for SQLite state. Defaults to `~/.local/share/auvrynt`. |
|
|
41
|
+
|
|
42
|
+
## OAuth
|
|
43
|
+
|
|
44
|
+
Auvrynt uses a single-user OAuth approval flow.
|
|
45
|
+
|
|
46
|
+
| Variable | Default |
|
|
47
|
+
| --- | --- |
|
|
48
|
+
| `AUVRYNT_OAUTH_ACCESS_TOKEN_TTL_SECONDS` | `3600` |
|
|
49
|
+
| `AUVRYNT_OAUTH_REFRESH_TOKEN_TTL_SECONDS` | `2592000` |
|
|
50
|
+
| `AUVRYNT_OAUTH_SCOPES` | `auvrynt` |
|
|
51
|
+
| `AUVRYNT_OAUTH_ALLOWED_REDIRECT_HOSTS` | `chatgpt.com,localhost,127.0.0.1` |
|
|
52
|
+
|
|
53
|
+
MCP clients discover metadata from:
|
|
54
|
+
|
|
55
|
+
```text
|
|
56
|
+
/.well-known/oauth-protected-resource/mcp
|
|
57
|
+
/.well-known/oauth-authorization-server
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Tool Modes
|
|
61
|
+
|
|
62
|
+
`AUVRYNT_TOOL_NAMING` controls tool names.
|
|
63
|
+
|
|
64
|
+
| Value | Behavior |
|
|
65
|
+
| --- | --- |
|
|
66
|
+
| `short` | Default. Uses `read`, `edit`, `bash`, and related names. |
|
|
67
|
+
| `legacy` | Uses `read_file`, `edit_file`, `run_shell`, and related names. |
|
|
68
|
+
|
|
69
|
+
`AUVRYNT_TOOL_MODE` controls the tool surface.
|
|
70
|
+
|
|
71
|
+
| Value | Behavior |
|
|
72
|
+
| --- | --- |
|
|
73
|
+
| `minimal` | Default. Disables dedicated search and list tools. Clients use the shell tool with `rg`, `grep`, `find`, `ls`, or `tree` for inspection. |
|
|
74
|
+
| `full` | Enables dedicated `grep`, `glob`, and `ls` tools. |
|
|
75
|
+
|
|
76
|
+
## Widgets
|
|
77
|
+
|
|
78
|
+
`AUVRYNT_WIDGETS` controls ChatGPT Apps iframe usage.
|
|
79
|
+
|
|
80
|
+
| Value | Behavior |
|
|
81
|
+
| --- | --- |
|
|
82
|
+
| `full` | Default. Widget UI is attached to exposed workspace, file, edit, and shell tools. |
|
|
83
|
+
| `changes` | Enables the aggregate `show_changes` tool and attaches widget UI to `open_workspace` and `show_changes`. |
|
|
84
|
+
| `off` | Disables widget UI. |
|
|
85
|
+
|
|
86
|
+
## Skills
|
|
87
|
+
|
|
88
|
+
| Variable | Purpose |
|
|
89
|
+
| --- | --- |
|
|
90
|
+
| `AUVRYNT_SKILLS` | Set to `0` to hide skills. Enabled by default. |
|
|
91
|
+
| `AUVRYNT_AGENT_DIR` | Defaults to `~/.codex`. |
|
|
92
|
+
| `AUVRYNT_SKILL_PATHS` | Optional comma-separated skill directories. |
|
|
93
|
+
|
|
94
|
+
Example:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
AUVRYNT_SKILL_PATHS="$HOME/.codex/skills,$HOME/.claude/skills" \
|
|
98
|
+
npx auvrynt serve
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Logging
|
|
102
|
+
|
|
103
|
+
| Variable | Default |
|
|
104
|
+
| --- | --- |
|
|
105
|
+
| `AUVRYNT_LOG_LEVEL` | `info` |
|
|
106
|
+
| `AUVRYNT_LOG_FORMAT` | `json` |
|
|
107
|
+
| `AUVRYNT_LOG_REQUESTS` | `1` |
|
|
108
|
+
| `AUVRYNT_LOG_ASSETS` | `0` |
|
|
109
|
+
| `AUVRYNT_LOG_TOOL_CALLS` | `1` |
|
|
110
|
+
| `AUVRYNT_LOG_SHELL_COMMANDS` | `0` |
|
|
111
|
+
| `AUVRYNT_TRUST_PROXY` | `0` |
|
|
112
|
+
|
|
113
|
+
Set `AUVRYNT_LOG_FORMAT=pretty` for local debugging.
|
|
114
|
+
|
|
115
|
+
Set `AUVRYNT_LOG_SHELL_COMMANDS=1` only when you intentionally want command
|
|
116
|
+
previews in logs.
|
|
117
|
+
|
|
118
|
+
## Env-Only Example
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
AUVRYNT_OAUTH_OWNER_TOKEN="$(openssl rand -base64 32)" \
|
|
122
|
+
AUVRYNT_ALLOWED_ROOTS="$HOME/personal,$HOME/work" \
|
|
123
|
+
AUVRYNT_PUBLIC_BASE_URL="https://auvrynt.example.com" \
|
|
124
|
+
AUVRYNT_WORKTREE_ROOT="$HOME/.auvrynt/worktrees" \
|
|
125
|
+
AUVRYNT_TOOL_MODE="minimal" \
|
|
126
|
+
AUVRYNT_TOOL_NAMING="short" \
|
|
127
|
+
AUVRYNT_WIDGETS="full" \
|
|
128
|
+
npx auvrynt serve
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
The environment assignments must be part of the same command invocation, or
|
|
132
|
+
exported first.
|
package/docs/gotchas.md
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
# Troubleshooting Gotchas
|
|
2
|
+
|
|
3
|
+
This page collects the setup issues users are most likely to hit.
|
|
4
|
+
|
|
5
|
+
## `auvrynt` Command Not Found
|
|
6
|
+
|
|
7
|
+
Use `npx`:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npx auvrynt init
|
|
11
|
+
npx auvrynt serve
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
If you installed globally, confirm npm's global bin directory is on `PATH`.
|
|
15
|
+
|
|
16
|
+
## Unsupported Node Version
|
|
17
|
+
|
|
18
|
+
Auvrynt requires Node `>=20.12 <27`.
|
|
19
|
+
|
|
20
|
+
Check:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
node --version
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
Install Node 22 LTS with your preferred version manager such as `nvm`, `fnm`, or
|
|
27
|
+
`mise`.
|
|
28
|
+
|
|
29
|
+
## `better-sqlite3` Could Not Load
|
|
30
|
+
|
|
31
|
+
This usually means native dependencies were installed under a different Node
|
|
32
|
+
runtime.
|
|
33
|
+
|
|
34
|
+
Try:
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm rebuild better-sqlite3
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Then run:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npx auvrynt doctor
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
Release starts run a native dependency check before launching.
|
|
47
|
+
|
|
48
|
+
## Public URL Includes `/mcp`
|
|
49
|
+
|
|
50
|
+
Use the origin for setup:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
https://your-tunnel-host.example.com
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Use the MCP endpoint in the client:
|
|
57
|
+
|
|
58
|
+
```text
|
|
59
|
+
https://your-tunnel-host.example.com/mcp
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
If you saved the wrong value:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
npx auvrynt config set publicBaseUrl https://your-tunnel-host.example.com
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Tunnel URL Changed
|
|
69
|
+
|
|
70
|
+
Temporary tunnels often change URLs between runs.
|
|
71
|
+
|
|
72
|
+
For a one-off run:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
AUVRYNT_PUBLIC_BASE_URL="https://new-tunnel.example.com" npx auvrynt serve
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
For a stable URL:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npx auvrynt config set publicBaseUrl https://auvrynt.example.com
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Host Header Or 403 Problems
|
|
85
|
+
|
|
86
|
+
Auvrynt derives allowed hosts from the configured public URL.
|
|
87
|
+
|
|
88
|
+
Run:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npx auvrynt doctor
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Confirm the public URL hostname appears in allowed hosts. If you changed tunnel
|
|
95
|
+
URLs, update `publicBaseUrl`.
|
|
96
|
+
|
|
97
|
+
Use this only for intentional local debugging:
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
AUVRYNT_ALLOWED_HOSTS="*" npx auvrynt serve
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## OAuth Redirect Host Rejected
|
|
104
|
+
|
|
105
|
+
By default, Auvrynt allows redirects for:
|
|
106
|
+
|
|
107
|
+
```text
|
|
108
|
+
chatgpt.com
|
|
109
|
+
localhost
|
|
110
|
+
127.0.0.1
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
If another MCP client uses a different redirect host, configure:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
AUVRYNT_OAUTH_ALLOWED_REDIRECT_HOSTS="chatgpt.com,example.com" npx auvrynt serve
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Owner Password Not Accepted
|
|
120
|
+
|
|
121
|
+
Make sure you are entering the Owner password from:
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
~/.auvrynt/auth.json
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
To regenerate setup:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
npx auvrynt init --force
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## Unknown `workspaceId`
|
|
134
|
+
|
|
135
|
+
`workspaceId` values are session identifiers. If the server restarts and the
|
|
136
|
+
client receives an unknown workspace error, call `open_workspace` again for that
|
|
137
|
+
project.
|
|
138
|
+
|
|
139
|
+
Workspace session metadata is persisted, but clients should still treat
|
|
140
|
+
`open_workspace` as the way to begin a fresh working session.
|
|
141
|
+
|
|
142
|
+
## Workspace Path Rejected
|
|
143
|
+
|
|
144
|
+
The path must be inside one of the allowed roots configured during setup.
|
|
145
|
+
|
|
146
|
+
Run:
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
npx auvrynt config get
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Then either open a project under an allowed root or rerun setup:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
npx auvrynt init --force
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## Worktree Mode Fails
|
|
159
|
+
|
|
160
|
+
Worktree mode requires:
|
|
161
|
+
|
|
162
|
+
- Git installed
|
|
163
|
+
- the path is inside a Git repository
|
|
164
|
+
- the repository has at least one commit
|
|
165
|
+
- the requested `baseRef` resolves to a commit
|
|
166
|
+
|
|
167
|
+
For a new repository, create the first commit or use checkout mode.
|
|
168
|
+
|
|
169
|
+
Uncommitted source checkout changes are not copied into the managed worktree.
|
|
170
|
+
Commit, stash, or ask the model to work in checkout mode if those changes are
|
|
171
|
+
needed.
|
|
172
|
+
|
|
173
|
+
## Windows Shell Commands Fail
|
|
174
|
+
|
|
175
|
+
Auvrynt shell execution requires Bash. Native PowerShell and `cmd.exe` command
|
|
176
|
+
execution are not supported yet.
|
|
177
|
+
|
|
178
|
+
Install Git for Windows and use Git Bash, or use WSL, MSYS2, or Cygwin Bash.
|
|
179
|
+
|
|
180
|
+
Run:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
npx auvrynt doctor
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Confirm Bash is detected.
|
|
187
|
+
|
|
188
|
+
## Skills Do Not Appear
|
|
189
|
+
|
|
190
|
+
Skills are enabled by default. Check:
|
|
191
|
+
|
|
192
|
+
```bash
|
|
193
|
+
AUVRYNT_SKILLS=1 npx auvrynt serve
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Auvrynt looks in:
|
|
197
|
+
|
|
198
|
+
- `AUVRYNT_AGENT_DIR`, defaulting to `~/.codex`
|
|
199
|
+
- project `.pi/skills`
|
|
200
|
+
- `AUVRYNT_SKILL_PATHS`
|
|
201
|
+
|
|
202
|
+
If a skill appears in `open_workspace`, the model must read that skill's
|
|
203
|
+
`SKILL.md` before reading other files inside the skill directory.
|
|
204
|
+
|
|
205
|
+
## Review Card Does Not Appear
|
|
206
|
+
|
|
207
|
+
Per-tool widget cards are enabled by default with:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
AUVRYNT_WIDGETS=full
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
The aggregate `show_changes` tool is only exposed with
|
|
214
|
+
`AUVRYNT_WIDGETS=changes`. Plain MCP clients may ignore ChatGPT Apps widget
|
|
215
|
+
metadata and only show text results.
|
package/docs/security.md
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# Security Model
|
|
2
|
+
|
|
3
|
+
Auvrynt exposes local coding capabilities over MCP. Treat it as remote access
|
|
4
|
+
to your development machine.
|
|
5
|
+
|
|
6
|
+
The security model is simple:
|
|
7
|
+
|
|
8
|
+
- you choose a narrow filesystem allowlist
|
|
9
|
+
- the MCP endpoint requires OAuth approval with your Owner password
|
|
10
|
+
- Host headers are allowlisted from the configured public URL
|
|
11
|
+
- every coding action happens through explicit MCP tool calls
|
|
12
|
+
|
|
13
|
+
## Filesystem Allowlist
|
|
14
|
+
|
|
15
|
+
Auvrynt only opens workspaces under configured roots.
|
|
16
|
+
|
|
17
|
+
Good examples:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
~/work
|
|
21
|
+
~/personal/open-source
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Avoid broad roots:
|
|
25
|
+
|
|
26
|
+
```text
|
|
27
|
+
~
|
|
28
|
+
/
|
|
29
|
+
C:\
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
The narrower the root, the easier it is to reason about what the MCP client can
|
|
33
|
+
reach.
|
|
34
|
+
|
|
35
|
+
## Owner Password
|
|
36
|
+
|
|
37
|
+
`auvrynt init` generates an Owner password and stores it in:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
~/.auvrynt/auth.json
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
When an MCP client connects, Auvrynt shows an approval page. Enter the Owner
|
|
44
|
+
password only when you intentionally want that client to access this server.
|
|
45
|
+
|
|
46
|
+
For env-driven deployments, set a long random value:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
AUVRYNT_OAUTH_OWNER_TOKEN="$(openssl rand -base64 32)"
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Public URL And Host Allowlist
|
|
53
|
+
|
|
54
|
+
Auvrynt needs `AUVRYNT_PUBLIC_BASE_URL` so MCP clients can discover OAuth
|
|
55
|
+
metadata and connect to the correct resource.
|
|
56
|
+
|
|
57
|
+
The value should be the origin only:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
https://your-tunnel-host.example.com
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Do not include `/mcp` in `AUVRYNT_PUBLIC_BASE_URL`.
|
|
64
|
+
|
|
65
|
+
By default, Auvrynt derives allowed Host headers from the local host and public
|
|
66
|
+
URL. Use `AUVRYNT_ALLOWED_HOSTS=*` only for intentional local debugging.
|
|
67
|
+
|
|
68
|
+
## Tunnels
|
|
69
|
+
|
|
70
|
+
Auvrynt does not manage tunnels. Your tunnel or reverse proxy should point to:
|
|
71
|
+
|
|
72
|
+
```text
|
|
73
|
+
http://127.0.0.1:49321
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Prefer adding Cloudflare Access, Tailscale identity controls, or equivalent
|
|
77
|
+
protection in front of public tunnels. Auvrynt OAuth still protects the MCP
|
|
78
|
+
endpoint, but the tunnel URL should not be treated as a secret.
|
|
79
|
+
|
|
80
|
+
## Shell Access
|
|
81
|
+
|
|
82
|
+
The shell tool is powerful by design. It is meant for tests, builds, git, and
|
|
83
|
+
package scripts.
|
|
84
|
+
|
|
85
|
+
Filesystem path containment applies to Auvrynt file tools. Shell commands run
|
|
86
|
+
as local commands and can do what your user account can do. This is why the MCP
|
|
87
|
+
client must be trusted and the Owner password must stay private.
|
|
88
|
+
|
|
89
|
+
## Worktrees
|
|
90
|
+
|
|
91
|
+
Managed worktrees reduce accidental edits to your active checkout, but they are
|
|
92
|
+
not a security boundary. They are a workflow boundary for isolated coding
|
|
93
|
+
sessions.
|
|
94
|
+
|
|
95
|
+
## Logs
|
|
96
|
+
|
|
97
|
+
By default, Auvrynt logs requests and tool calls. Shell command previews are
|
|
98
|
+
disabled unless `AUVRYNT_LOG_SHELL_COMMANDS=1`.
|
|
99
|
+
|
|
100
|
+
Do not enable shell command logging if commands may contain secrets.
|
package/docs/setup.md
ADDED
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
# Setup Guide
|
|
2
|
+
|
|
3
|
+
This guide is for users who want ChatGPT or another MCP host to work in local
|
|
4
|
+
projects through Auvrynt.
|
|
5
|
+
|
|
6
|
+
## Requirements
|
|
7
|
+
|
|
8
|
+
- Node `>=20.12 <27`; Node 22 LTS is recommended
|
|
9
|
+
- npm
|
|
10
|
+
- Git
|
|
11
|
+
- Bash, including Git Bash or WSL on Windows
|
|
12
|
+
- a public HTTPS URL that forwards to the local Auvrynt server
|
|
13
|
+
|
|
14
|
+
Auvrynt does not create the public tunnel for you. Use Cloudflare Tunnel,
|
|
15
|
+
ngrok, Pinggy, Tailscale Funnel, or your own HTTPS reverse proxy.
|
|
16
|
+
|
|
17
|
+
## Install And Configure
|
|
18
|
+
|
|
19
|
+
Run:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npx auvrynt init
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
The setup flow asks one question at a time.
|
|
26
|
+
|
|
27
|
+
### Project Roots
|
|
28
|
+
|
|
29
|
+
Choose the folders ChatGPT is allowed to open through Auvrynt. Keep this
|
|
30
|
+
narrow.
|
|
31
|
+
|
|
32
|
+
Examples:
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
~/personal,~/work
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
```text
|
|
39
|
+
/Users/alice/dev,/Users/alice/work
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
C:\Users\alice\dev,C:\Users\alice\work
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Local Port
|
|
47
|
+
|
|
48
|
+
The default is `49321`.
|
|
49
|
+
|
|
50
|
+
The local MCP URL is:
|
|
51
|
+
|
|
52
|
+
```text
|
|
53
|
+
http://127.0.0.1:49321/mcp
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Public Base URL
|
|
57
|
+
|
|
58
|
+
Start your tunnel or reverse proxy before entering this value. Point the tunnel
|
|
59
|
+
at:
|
|
60
|
+
|
|
61
|
+
```text
|
|
62
|
+
http://127.0.0.1:49321
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Enter the public origin without `/mcp`:
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
https://your-tunnel-host.example.com
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Configure the MCP client with the full MCP endpoint:
|
|
72
|
+
|
|
73
|
+
```text
|
|
74
|
+
https://your-tunnel-host.example.com/mcp
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
## Start The Server
|
|
78
|
+
|
|
79
|
+
Run:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
npx auvrynt serve
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
If your tunnel URL changes for one run, override it without rewriting config:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
AUVRYNT_PUBLIC_BASE_URL="https://new-tunnel.example.com" npx auvrynt serve
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
For a stable public URL, persist it:
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
npx auvrynt config set publicBaseUrl https://auvrynt.example.com
|
|
95
|
+
npx auvrynt serve
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Approve The Client
|
|
99
|
+
|
|
100
|
+
When ChatGPT, Claude, or another MCP client connects, Auvrynt shows an Owner
|
|
101
|
+
password approval page. Enter the Owner password printed during setup.
|
|
102
|
+
|
|
103
|
+
The default config files are:
|
|
104
|
+
|
|
105
|
+
```text
|
|
106
|
+
~/.auvrynt/config.json
|
|
107
|
+
~/.auvrynt/auth.json
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Keep `auth.json` private.
|
|
111
|
+
|
|
112
|
+
## Check Your Setup
|
|
113
|
+
|
|
114
|
+
Run:
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
npx auvrynt doctor
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
The doctor command reports the resolved config, Node version, Node ABI, platform,
|
|
121
|
+
Git, Bash, public URL, allowed hosts, and SQLite native dependency status.
|
|
122
|
+
|
|
123
|
+
## Running From A Local Checkout
|
|
124
|
+
|
|
125
|
+
If you are developing Auvrynt itself instead of using the published package:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
npm install --include=dev
|
|
129
|
+
npm run dev
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
The same setup rules apply.
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "auvrynt",
|
|
3
|
+
"version": "1.0.1",
|
|
4
|
+
"description": "Expose a secure local coding workspace through an MCP server.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/server.js",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=20.12 <27"
|
|
9
|
+
},
|
|
10
|
+
"bin": {
|
|
11
|
+
"auvrynt": "dist/cli.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"dist",
|
|
15
|
+
"docs",
|
|
16
|
+
"scripts",
|
|
17
|
+
"README.md"
|
|
18
|
+
],
|
|
19
|
+
"publishConfig": {
|
|
20
|
+
"access": "public"
|
|
21
|
+
},
|
|
22
|
+
"scripts": {
|
|
23
|
+
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
24
|
+
"build": "npm run clean && npm run build:app && tsc -p tsconfig.build.json",
|
|
25
|
+
"build:app": "vite build",
|
|
26
|
+
"dev": "node scripts/dev-server.mjs",
|
|
27
|
+
"start": "node dist/cli.js serve",
|
|
28
|
+
"test": "tsx src/config.test.ts && tsx src/roots.test.ts && tsx src/skills.test.ts && tsx src/view-image.test.ts && tsx src/processes.test.ts && tsx src/search-discovery.test.ts && tsx src/web-tools.test.ts && tsx src/image-tools.test.ts && tsx src/dotnet-tools.test.ts && tsx src/godot-tools.test.ts && tsx src/godot-dotnet-env.test.ts && tsx src/godot-csharp-project.test.ts && tsx src/godot-csharp-runner.test.ts && tsx src/godot-csharp-semantic.test.ts && tsx src/blender-tools.test.ts && tsx src/godot-gdscript.test.ts && tsx src/review-checkpoints.test.ts && tsx src/workspaces.test.ts",
|
|
29
|
+
"typecheck": "tsc -p tsconfig.json --noEmit"
|
|
30
|
+
},
|
|
31
|
+
"keywords": [],
|
|
32
|
+
"author": "",
|
|
33
|
+
"license": "MIT",
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@clack/prompts": "^1.5.1",
|
|
36
|
+
"@earendil-works/pi-coding-agent": "^0.79.4",
|
|
37
|
+
"@modelcontextprotocol/ext-apps": "^1.7.2",
|
|
38
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
39
|
+
"@pierre/diffs": "^1.2.5",
|
|
40
|
+
"better-sqlite3": "^12.11.1",
|
|
41
|
+
"drizzle-orm": "^0.45.2",
|
|
42
|
+
"express": "^5.2.1",
|
|
43
|
+
"react": "^19.2.6",
|
|
44
|
+
"react-dom": "^19.2.6",
|
|
45
|
+
"semver": "^7.8.4",
|
|
46
|
+
"zod": "^4.4.3"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/better-sqlite3": "^7.6.13",
|
|
50
|
+
"@types/express": "^5.0.6",
|
|
51
|
+
"@types/node": "^25.9.1",
|
|
52
|
+
"@types/react": "^19.2.15",
|
|
53
|
+
"@types/react-dom": "^19.2.3",
|
|
54
|
+
"@types/semver": "^7.7.1",
|
|
55
|
+
"@vitejs/plugin-react": "^6.0.2",
|
|
56
|
+
"tsx": "^4.22.3",
|
|
57
|
+
"typescript": "^6.0.3",
|
|
58
|
+
"vite": "^8.0.14"
|
|
59
|
+
},
|
|
60
|
+
"overrides": {
|
|
61
|
+
"protobufjs": "7.6.4",
|
|
62
|
+
"ws": "8.21.0"
|
|
63
|
+
},
|
|
64
|
+
"allowScripts": {
|
|
65
|
+
"better-sqlite3@12.11.1": true,
|
|
66
|
+
"esbuild@0.28.1": true,
|
|
67
|
+
"protobufjs@7.6.4": true,
|
|
68
|
+
"@google/genai@1.52.0": true
|
|
69
|
+
}
|
|
70
|
+
}
|