auvrynt 1.0.2 → 1.0.5
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 -21
- package/README.md +366 -233
- package/addons/auvrynt_bridge/auvrynt_bridge.gd +500 -0
- package/addons/auvrynt_bridge/plugin.cfg +7 -0
- package/bin/auvrynt-launcher.cjs +77 -0
- package/dist/artifact-registry.js +1 -0
- package/dist/aseprite-tools.js +1 -0
- package/dist/auth/connection-registry.js +145 -0
- package/dist/auth/connection-status.js +176 -0
- package/dist/auth/oauth-provider.js +617 -0
- package/dist/auth/room-registry.js +131 -0
- package/dist/auth/session-registry.js +531 -0
- package/dist/background-lifecycle.js +1 -0
- package/dist/blender-client.js +1 -109
- package/dist/blender-tools.js +1 -930
- package/dist/browser-stability.js +1 -0
- package/dist/cli/commands/help-command.js +10 -0
- package/dist/cli/commands/init-command.js +190 -0
- package/dist/cli/commands/integration-commands.js +88 -0
- package/dist/cli/commands/serve-command.js +83 -0
- package/dist/cli/commands/setup-command.js +81 -0
- package/dist/cli/commands/status-commands.js +166 -0
- package/dist/cli/commands/tunnel-command.js +127 -0
- package/dist/cli/commands/user-config-commands.js +105 -0
- package/dist/cli/dashboard-actions.js +516 -0
- package/dist/cli/dashboard-native-actions.js +282 -0
- package/dist/cli/foreground-server.js +270 -0
- package/dist/cli/instance-control.js +21 -0
- package/dist/cli/instance-lock.js +123 -0
- package/dist/cli/integration-bootstrap.js +206 -0
- package/dist/cli/lifecycle-manager.js +493 -0
- package/dist/cli/runtime-support.js +74 -0
- package/dist/cli/serena-detected-default.js +27 -0
- package/dist/cli/tunnel-health-monitor.js +182 -0
- package/dist/cli.js +82 -739
- package/dist/config.js +1 -243
- package/dist/connection-registry.js +1 -73
- package/dist/connection-status.js +1 -139
- package/dist/control-retry.js +1 -0
- package/dist/crash-recovery.js +1 -0
- package/dist/db/client.js +16 -3
- package/dist/db/schema.js +30 -0
- package/dist/dotnet-tools.js +1 -223
- package/dist/git-worktrees.js +1 -134
- package/dist/git.js +1 -41
- package/dist/godot-animation-tilemap.js +1 -82
- package/dist/godot-csharp-build.js +1 -93
- package/dist/godot-csharp-project.js +1 -157
- package/dist/godot-csharp-runner.js +1 -146
- package/dist/godot-csharp-semantic.js +1 -161
- package/dist/godot-csharp-validate.js +1 -71
- package/dist/godot-dotnet-env.js +1 -169
- package/dist/godot-editor-bridge.js +1 -140
- package/dist/godot-gdscript.js +1 -824
- package/dist/godot-project-settings.js +1 -223
- package/dist/godot-runtime-testing.js +1 -249
- package/dist/godot-tools.js +1 -183
- package/dist/http-rate-limit.js +1 -0
- package/dist/http-server-hardening.js +1 -0
- package/dist/image-tools.js +1 -157
- package/dist/infrastructure/command-reference.js +32 -0
- package/dist/infrastructure/config.js +424 -0
- package/dist/infrastructure/context7-auth.js +55 -0
- package/dist/infrastructure/http-rate-limit.js +42 -0
- package/dist/infrastructure/http-server-hardening.js +23 -0
- package/dist/infrastructure/integration-queue.js +46 -0
- package/dist/infrastructure/logger.js +129 -0
- package/dist/infrastructure/mcp-event-store.js +103 -0
- package/dist/infrastructure/ngrok-auth-pool.js +208 -0
- package/dist/infrastructure/request-context.js +14 -0
- package/dist/infrastructure/shutdown.js +37 -0
- package/dist/infrastructure/sse-heartbeat.js +47 -0
- package/dist/infrastructure/tool-capabilities.js +67 -0
- package/dist/infrastructure/tool-result-budget.js +175 -0
- package/dist/infrastructure/user-config.js +167 -0
- package/dist/integration-discovery.js +1 -98
- package/dist/integration-queue.js +1 -0
- package/dist/integrations/agent-reach/agent-reach-tools.js +196 -0
- package/dist/integrations/agent-reach/native-channels.js +468 -0
- package/dist/integrations/aseprite/aseprite-analysis-tools.js +368 -0
- package/dist/integrations/aseprite/aseprite-editing-tools.js +647 -0
- package/dist/integrations/aseprite/aseprite-live-tools.js +297 -0
- package/dist/integrations/aseprite/aseprite-safety-tools.js +594 -0
- package/dist/integrations/aseprite/aseprite-specialized-tools.js +289 -0
- package/dist/integrations/aseprite/aseprite-tools.js +837 -0
- package/dist/integrations/blender/blender-catalog-mesh.js +593 -0
- package/dist/integrations/blender/blender-catalog-object.js +906 -0
- package/dist/integrations/blender/blender-catalog-scene.js +266 -0
- package/dist/integrations/blender/blender-catalog-select.js +581 -0
- package/dist/integrations/blender/blender-catalog-stubs.js +7512 -0
- package/dist/integrations/blender/blender-catalog.js +165 -0
- package/dist/integrations/blender/blender-client.js +105 -0
- package/dist/integrations/blender/blender-tools.js +2243 -0
- package/dist/integrations/context7/context7-tools.js +106 -0
- package/dist/integrations/dotnet/dotnet-tools.js +195 -0
- package/dist/integrations/godot/godot-animation-tilemap.js +74 -0
- package/dist/integrations/godot/godot-csharp-build.js +91 -0
- package/dist/integrations/godot/godot-csharp-project.js +155 -0
- package/dist/integrations/godot/godot-csharp-runner.js +118 -0
- package/dist/integrations/godot/godot-csharp-semantic.js +146 -0
- package/dist/integrations/godot/godot-csharp-validate.js +71 -0
- package/dist/integrations/godot/godot-dotnet-env.js +134 -0
- package/dist/integrations/godot/godot-editor-bridge.js +328 -0
- package/dist/integrations/godot/godot-gdscript.js +536 -0
- package/dist/integrations/godot/godot-project-settings.js +178 -0
- package/dist/integrations/godot/godot-runtime-testing.js +263 -0
- package/dist/integrations/godot/godot-tools.js +193 -0
- package/dist/integrations/images/image-tools.js +414 -0
- package/dist/integrations/images/png-codec.js +251 -0
- package/dist/integrations/images/view-image.js +99 -0
- package/dist/integrations/images/window-capture.js +148 -0
- package/dist/integrations/integration-discovery.js +185 -0
- package/dist/integrations/obsidian/obsidian-tools.js +205 -0
- package/dist/integrations/playwright/browser-session.js +516 -0
- package/dist/integrations/playwright/browser-stability.js +36 -0
- package/dist/integrations/playwright/playwright-runtime.js +105 -0
- package/dist/integrations/playwright/web-tools.js +504 -0
- package/dist/integrations/roblox/roblox-helpers.js +381 -0
- package/dist/integrations/roblox/roblox-studio-client.js +112 -0
- package/dist/integrations/roblox/roblox-tools.js +106 -0
- package/dist/integrations/serena/serena-manager.js +464 -0
- package/dist/integrations/serena/serena-tools.js +411 -0
- package/dist/logger.js +1 -76
- package/dist/mcp-event-store.js +1 -0
- package/dist/oauth-provider.js +1 -377
- package/dist/pi-tools.js +1 -81
- package/dist/playwright-runtime.js +1 -0
- package/dist/process/background-lifecycle.js +189 -0
- package/dist/process/control-retry.js +42 -0
- package/dist/process/crash-recovery.js +23 -0
- package/dist/process/processes.js +456 -0
- package/dist/processes.js +1 -218
- package/dist/request-context.js +1 -0
- package/dist/review-checkpoints.js +1 -142
- package/dist/room-registry.js +1 -0
- package/dist/roots.js +1 -53
- package/dist/search-discovery.js +1 -271
- package/dist/serena-manager.js +1 -443
- package/dist/serena-tools.js +1 -411
- package/dist/server/dashboard-page-styles.js +331 -0
- package/dist/server/dashboard-page.js +1509 -0
- package/dist/server/dashboard-routes.js +46 -0
- package/dist/server/dashboard.js +240 -0
- package/dist/server/http-helpers.js +30 -0
- package/dist/server/integration-profile-update.js +37 -0
- package/dist/server/mcp-policy.js +169 -0
- package/dist/server/mcp-server-factory.js +127 -0
- package/dist/server/mcp-tool-registrar.js +182 -0
- package/dist/server/openai-session-hint.js +14 -0
- package/dist/server/tool-groups.js +29 -0
- package/dist/server/tool-logging.js +33 -0
- package/dist/server/tool-registration-shared.js +59 -0
- package/dist/server/tools/aseprite-advanced-tools-registration.js +547 -0
- package/dist/server/tools/aseprite-tools-registration.js +213 -0
- package/dist/server/tools/blender-tools-registration.js +690 -0
- package/dist/server/tools/core-file-tools-registration.js +459 -0
- package/dist/server/tools/dotnet-godot-window-tools-registration.js +120 -0
- package/dist/server/tools/godot-csharp-tools-registration.js +252 -0
- package/dist/server/tools/godot-gdscript-tools-registration.js +189 -0
- package/dist/server/tools/process-project-tools-registration.js +155 -0
- package/dist/server/tools/roblox-tools-registration.js +514 -0
- package/dist/server/tools/web-image-tools-registration.js +326 -0
- package/dist/server/tools/workspace-lifecycle-tools-registration.js +130 -0
- package/dist/server/ui-assets.js +97 -0
- package/dist/server/workspace-analytics.js +92 -0
- package/dist/server.js +453 -2713
- package/dist/session-registry.js +1 -0
- package/dist/shutdown.js +1 -0
- package/dist/skills.js +1 -45
- package/dist/sse-heartbeat.js +1 -0
- package/dist/tool-capabilities.js +1 -0
- package/dist/tool-result-budget.js +1 -0
- package/dist/tools/pi-tools.js +81 -0
- package/dist/tunnels/cloudflare-tunnel.js +217 -0
- package/dist/tunnels/cloudflared-service.js +174 -0
- package/dist/tunnels/ngrok-tunnel.js +220 -0
- package/dist/tunnels/tunnel-manager.js +186 -0
- package/dist/tunnels/tunnel-types.js +1 -0
- package/dist/tunnels/tunnel-utils.js +62 -0
- package/dist/ui/.vite/manifest.json +9 -2487
- package/dist/ui/assets/heavy-payload-D42A9ceL.js +1 -0
- package/dist/ui/assets/lightweight-diff-Cv4g9Hdr.js +13 -0
- package/dist/ui/assets/review-payload-DKIg1cKF.js +1 -0
- package/dist/ui/assets/workspace-app-CeK3NhmB.css +1 -0
- package/dist/ui/assets/{workspace-app-C5QsE314.js → workspace-app-CkUXnpl4.js} +6 -6
- package/dist/ui/brand-theme.js +23 -0
- package/dist/ui/workspace-app.html +15 -15
- package/dist/user-config.js +1 -57
- package/dist/view-image.js +1 -104
- package/dist/web-tools.js +1 -200
- package/dist/window-capture.js +1 -74
- package/dist/workspace/artifact-registry.js +69 -0
- package/dist/workspace/git-worktrees.js +141 -0
- package/dist/workspace/git.js +42 -0
- package/dist/workspace/review-checkpoints.js +142 -0
- package/dist/workspace/roots.js +56 -0
- package/dist/workspace/search-discovery.js +264 -0
- package/dist/workspace/skills.js +45 -0
- package/dist/workspace/workspace-store.js +219 -0
- package/dist/workspace/workspaces.js +314 -0
- package/dist/workspace-store.js +1 -125
- package/dist/workspaces.js +1 -226
- package/docs/CREATOR_STORE_FREE_ASSETS.md +162 -0
- package/docs/DEVELOPMENT_TOOLS.md +136 -93
- package/docs/assets/auvrynt-icon.png +0 -0
- package/docs/assets/auvrynt-icon.svg +20 -0
- package/docs/chatgpt-coding-workflow.md +143 -143
- package/docs/configuration.md +156 -124
- package/docs/diagnostics.md +79 -0
- package/docs/gotchas.md +244 -202
- package/docs/multi-agent-and-long-projects.md +91 -0
- package/docs/security.md +138 -100
- package/docs/setup.md +171 -131
- package/docs/source-layout.md +60 -0
- package/extensions/auvrynt_bridge/auvrynt_bridge.lua +594 -0
- package/extensions/auvrynt_bridge/live_analysis.lua +181 -0
- package/extensions/auvrynt_bridge/live_animation.lua +134 -0
- package/extensions/auvrynt_bridge/live_commands.lua +24 -0
- package/extensions/auvrynt_bridge/live_common.lua +130 -0
- package/extensions/auvrynt_bridge/live_document.lua +78 -0
- package/extensions/auvrynt_bridge/live_drawing.lua +125 -0
- package/extensions/auvrynt_bridge/live_effects.lua +91 -0
- package/extensions/auvrynt_bridge/live_palette_template.lua +167 -0
- package/extensions/auvrynt_bridge/live_selection.lua +110 -0
- package/extensions/auvrynt_bridge/live_structure.lua +129 -0
- package/extensions/auvrynt_bridge/package.json +17 -0
- package/guides/ASEPRITE_AGENT_GUIDE.md +133 -0
- package/guides/BLENDER_AGENT_GUIDE.md +472 -0
- package/guides/GODOT_AGENT_GUIDE.md +298 -0
- package/guides/PROJECT_ROUTER.md +165 -0
- package/guides/ROBLOX_AGENT_GUIDE.md +75 -0
- package/guides/SOFTWARE_AGENT_GUIDE.md +104 -0
- package/guides/WEB_AGENT_GUIDE.md +287 -0
- package/package.json +78 -70
- package/scripts/dev-server.mjs +121 -120
- package/scripts/live-tunnel-smoke.mjs +538 -0
- package/scripts/repo-hygiene.mjs +74 -0
- package/scripts/restart-after-crash.mjs +49 -0
- package/scripts/run-tests.mjs +166 -0
- package/dist/ui/assets/abap-CLvhMVsD.js +0 -1
- package/dist/ui/assets/actionscript-3--17pq3dv.js +0 -1
- package/dist/ui/assets/ada-C5qYipkI.js +0 -1
- package/dist/ui/assets/andromeeda-vGVdxbeo.js +0 -1
- package/dist/ui/assets/angular-html-BJqQFYI6.js +0 -1
- package/dist/ui/assets/angular-ts-CMJECO0Y.js +0 -1
- package/dist/ui/assets/apache-U0d_L8uA.js +0 -1
- package/dist/ui/assets/apex-CGTLDQj6.js +0 -1
- package/dist/ui/assets/apl-DWeXpBBr.js +0 -1
- package/dist/ui/assets/applescript-CCn79oCD.js +0 -1
- package/dist/ui/assets/ara-4CJ0cIlV.js +0 -1
- package/dist/ui/assets/asciidoc-DE70LPWp.js +0 -1
- package/dist/ui/assets/asm-Cmm7eHzH.js +0 -1
- package/dist/ui/assets/astro-CLbttLOq.js +0 -1
- package/dist/ui/assets/aurora-x-CDeNXAV0.js +0 -1
- package/dist/ui/assets/awk-BWXHIvNe.js +0 -1
- package/dist/ui/assets/ayu-dark-DluEY0Gj.js +0 -1
- package/dist/ui/assets/ayu-light-C3h-C4tm.js +0 -1
- package/dist/ui/assets/ayu-mirage-Bqwy1Gya.js +0 -1
- package/dist/ui/assets/ballerina-B7ZEbQpA.js +0 -1
- package/dist/ui/assets/bat-Bo4NYOV-.js +0 -1
- package/dist/ui/assets/beancount-D-usSTwE.js +0 -1
- package/dist/ui/assets/berry-DKpUyyne.js +0 -1
- package/dist/ui/assets/bibtex-Ci_nEsc7.js +0 -1
- package/dist/ui/assets/bicep-CUHmPFLl.js +0 -1
- package/dist/ui/assets/bird2-C2hNVINV.js +0 -1
- package/dist/ui/assets/blade-BOzY0P2V.js +0 -1
- package/dist/ui/assets/bsl-BkkzgIyY.js +0 -1
- package/dist/ui/assets/c-BG-8uJvh.js +0 -1
- package/dist/ui/assets/c3-CnJL0r0V.js +0 -1
- package/dist/ui/assets/cadence-CQ2zXKGN.js +0 -1
- package/dist/ui/assets/cairo-DLTphjLi.js +0 -1
- package/dist/ui/assets/catppuccin-frappe-3VR1Za6u.js +0 -1
- package/dist/ui/assets/catppuccin-latte-DwIHMF0Q.js +0 -1
- package/dist/ui/assets/catppuccin-macchiato-DYnBP6_5.js +0 -1
- package/dist/ui/assets/catppuccin-mocha-DYhrFGRu.js +0 -1
- package/dist/ui/assets/clarity-SemFz856.js +0 -1
- package/dist/ui/assets/clojure-DqKBuwfJ.js +0 -1
- package/dist/ui/assets/cmake-Bj61d0ZC.js +0 -1
- package/dist/ui/assets/cobol-I_17IuGe.js +0 -1
- package/dist/ui/assets/codeowners-C8r90Shi.js +0 -1
- package/dist/ui/assets/codeql-oeQT6MSM.js +0 -1
- package/dist/ui/assets/coffee-C0B8hmok.js +0 -1
- package/dist/ui/assets/common-lisp-Cv5bFMCO.js +0 -1
- package/dist/ui/assets/coq-BrsZFFmf.js +0 -1
- package/dist/ui/assets/cpp-DDJXt6Vs.js +0 -1
- package/dist/ui/assets/crystal-Bexqace6.js +0 -1
- package/dist/ui/assets/csharp-Ct8U2NOr.js +0 -1
- package/dist/ui/assets/css-DSQhw_9R.js +0 -1
- package/dist/ui/assets/csv-Dx-8-gkx.js +0 -1
- package/dist/ui/assets/cue-CE9AQfxI.js +0 -1
- package/dist/ui/assets/cypher-ClKdZ_lG.js +0 -1
- package/dist/ui/assets/d-qD-0Kul2.js +0 -1
- package/dist/ui/assets/dark-plus-Cs2F2srj.js +0 -1
- package/dist/ui/assets/dart-DkHntEIa.js +0 -1
- package/dist/ui/assets/dax-BkyTk9wS.js +0 -1
- package/dist/ui/assets/desktop-Dlh5hvp9.js +0 -1
- package/dist/ui/assets/diff-woXpYk--.js +0 -1
- package/dist/ui/assets/docker-IyjqRm3v.js +0 -1
- package/dist/ui/assets/dotenv-_5a1GRtc.js +0 -1
- package/dist/ui/assets/dracula-BHWKrbxM.js +0 -1
- package/dist/ui/assets/dracula-soft-5eyTD99u.js +0 -1
- package/dist/ui/assets/dream-maker-DW3nJb8Q.js +0 -1
- package/dist/ui/assets/edge-Z8YYkHOr.js +0 -1
- package/dist/ui/assets/elixir-CG9uKtAF.js +0 -1
- package/dist/ui/assets/elm-GfWG2IfT.js +0 -1
- package/dist/ui/assets/emacs-lisp-C9PiwqqW.js +0 -1
- package/dist/ui/assets/erb-xe89e73J.js +0 -1
- package/dist/ui/assets/erlang-Cphh6RMH.js +0 -1
- package/dist/ui/assets/everforest-dark-sB-x3p7T.js +0 -1
- package/dist/ui/assets/everforest-light-Df2xbC6M.js +0 -1
- package/dist/ui/assets/fennel-DQxkIbk2.js +0 -1
- package/dist/ui/assets/fish-BJitypiv.js +0 -1
- package/dist/ui/assets/fluent-C03EYrpw.js +0 -1
- package/dist/ui/assets/fortran-fixed-form-DEKoE2YW.js +0 -1
- package/dist/ui/assets/fortran-free-form-CYNrtFtB.js +0 -1
- package/dist/ui/assets/fsharp-D13ZGOAj.js +0 -1
- package/dist/ui/assets/gdresource-C0sCabJj.js +0 -1
- package/dist/ui/assets/gdscript-Cp2uCuqX.js +0 -1
- package/dist/ui/assets/gdshader-CBce3t8t.js +0 -1
- package/dist/ui/assets/genie-CV2tkWYe.js +0 -1
- package/dist/ui/assets/gherkin-DExj1W_8.js +0 -1
- package/dist/ui/assets/git-commit-BSykSTBG.js +0 -1
- package/dist/ui/assets/git-rebase-CoTL_uSE.js +0 -1
- package/dist/ui/assets/github-dark-C-LZuMrd.js +0 -1
- package/dist/ui/assets/github-dark-default-DXG-b-1a.js +0 -1
- package/dist/ui/assets/github-dark-dimmed-Bx1FflLF.js +0 -1
- package/dist/ui/assets/github-dark-high-contrast-B_tTalzw.js +0 -1
- package/dist/ui/assets/github-light-EUqPIrTm.js +0 -1
- package/dist/ui/assets/github-light-default-BXViO-2h.js +0 -1
- package/dist/ui/assets/github-light-high-contrast-B68TUdTA.js +0 -1
- package/dist/ui/assets/gleam-CSRkHgEL.js +0 -1
- package/dist/ui/assets/glimmer-js-DAn4UCSu.js +0 -1
- package/dist/ui/assets/glimmer-ts-Tjyi6Gh5.js +0 -1
- package/dist/ui/assets/glsl-CtTDZoqR.js +0 -1
- package/dist/ui/assets/gn-ilITqXS6.js +0 -1
- package/dist/ui/assets/gnuplot-7GGW24-e.js +0 -1
- package/dist/ui/assets/go-BJwz_mda.js +0 -1
- package/dist/ui/assets/graphql-D5gcC_Jk.js +0 -1
- package/dist/ui/assets/groovy-CacY0gHj.js +0 -1
- package/dist/ui/assets/gruvbox-dark-hard-C820rvS2.js +0 -1
- package/dist/ui/assets/gruvbox-dark-medium-BPjhmG05.js +0 -1
- package/dist/ui/assets/gruvbox-dark-soft-MrdJrrXF.js +0 -1
- package/dist/ui/assets/gruvbox-light-hard-BC_s9l72.js +0 -1
- package/dist/ui/assets/gruvbox-light-medium-BAWPOn9u.js +0 -1
- package/dist/ui/assets/gruvbox-light-soft-BSMLrYjP.js +0 -1
- package/dist/ui/assets/hack-BJXY27dt.js +0 -1
- package/dist/ui/assets/haml-BLfFoZf7.js +0 -1
- package/dist/ui/assets/handlebars-Dw6CWkvN.js +0 -1
- package/dist/ui/assets/haskell-D8IpX4py.js +0 -1
- package/dist/ui/assets/haxe-OTjmBuCE.js +0 -1
- package/dist/ui/assets/hcl-Dh228itO.js +0 -1
- package/dist/ui/assets/heavy-payload-Dcg0-F-S.js +0 -4
- package/dist/ui/assets/hjson-CxZEssPk.js +0 -1
- package/dist/ui/assets/hlsl-Cvrh5tZx.js +0 -1
- package/dist/ui/assets/horizon-CE9ld1lL.js +0 -1
- package/dist/ui/assets/horizon-bright-Br1oVSNq.js +0 -1
- package/dist/ui/assets/houston-CsvMBhTu.js +0 -1
- package/dist/ui/assets/html-CAcAWvoN.js +0 -1
- package/dist/ui/assets/html-derivative-8aSW2E_7.js +0 -1
- package/dist/ui/assets/http-B2YR_3V1.js +0 -1
- package/dist/ui/assets/hurl-BnDJ9Zhf.js +0 -1
- package/dist/ui/assets/hxml-B0Qn7Nwc.js +0 -1
- package/dist/ui/assets/hy-CZbG8q4J.js +0 -1
- package/dist/ui/assets/imba-DsUTQ-LC.js +0 -1
- package/dist/ui/assets/ini-B5eOa1yu.js +0 -1
- package/dist/ui/assets/java-Doxi4W8u.js +0 -1
- package/dist/ui/assets/javascript-BbRdEqti.js +0 -1
- package/dist/ui/assets/jinja-CS3Tpv_Q.js +0 -1
- package/dist/ui/assets/jison-BkPGYVHR.js +0 -1
- package/dist/ui/assets/json-BMt1m3m8.js +0 -1
- package/dist/ui/assets/json5-BR5RXkoi.js +0 -1
- package/dist/ui/assets/jsonc-CYpm1nAK.js +0 -1
- package/dist/ui/assets/jsonl-CmCQp5Yx.js +0 -1
- package/dist/ui/assets/jsonnet-CJTPZ8u_.js +0 -1
- package/dist/ui/assets/jssm-DXw9l8Rf.js +0 -1
- package/dist/ui/assets/jsx-CQKrJXXY.js +0 -1
- package/dist/ui/assets/julia-BuN7i2du.js +0 -1
- package/dist/ui/assets/just-BswEPFPu.js +0 -1
- package/dist/ui/assets/kanagawa-dragon-CXtmUGW6.js +0 -1
- package/dist/ui/assets/kanagawa-lotus-BN08jTvb.js +0 -1
- package/dist/ui/assets/kanagawa-wave-CTweb8Dz.js +0 -1
- package/dist/ui/assets/kdl-CsD5j6eV.js +0 -1
- package/dist/ui/assets/kotlin-DhhofPvG.js +0 -1
- package/dist/ui/assets/kusto-BUv0MjJC.js +0 -1
- package/dist/ui/assets/laserwave-C_8bwKvT.js +0 -1
- package/dist/ui/assets/latex-DU2VyFfA.js +0 -1
- package/dist/ui/assets/lean-CewbzKMR.js +0 -1
- package/dist/ui/assets/less-DVTAwKKz.js +0 -1
- package/dist/ui/assets/light-plus-DVQuIRkW.js +0 -1
- package/dist/ui/assets/liquid-Cmz1L3dq.js +0 -1
- package/dist/ui/assets/llvm-Cm23YOpf.js +0 -1
- package/dist/ui/assets/log-BNLmms1o.js +0 -1
- package/dist/ui/assets/logo-Cluzi2Zq.js +0 -1
- package/dist/ui/assets/lua-CfVXhkaJ.js +0 -1
- package/dist/ui/assets/luau-CNKltnaQ.js +0 -1
- package/dist/ui/assets/make-Dixweg8N.js +0 -1
- package/dist/ui/assets/markdown-BYOwaDjH.js +0 -1
- package/dist/ui/assets/marko-C5bfqGiA.js +0 -1
- package/dist/ui/assets/material-theme-Bm3Qr25_.js +0 -1
- package/dist/ui/assets/material-theme-darker-2IIEA8gg.js +0 -1
- package/dist/ui/assets/material-theme-lighter-uhdI0v04.js +0 -1
- package/dist/ui/assets/material-theme-ocean-CHQ94UKr.js +0 -1
- package/dist/ui/assets/material-theme-palenight-B5W6OYN7.js +0 -1
- package/dist/ui/assets/matlab-D7qyCx1q.js +0 -1
- package/dist/ui/assets/mdc-CVBXYfyq.js +0 -1
- package/dist/ui/assets/mdx-DQZ5AkYe.js +0 -1
- package/dist/ui/assets/mermaid-Bk4SNUv9.js +0 -1
- package/dist/ui/assets/min-dark-BSWPekZh.js +0 -1
- package/dist/ui/assets/min-light-DDpmG2fV.js +0 -1
- package/dist/ui/assets/mipsasm-BMqwQI7S.js +0 -1
- package/dist/ui/assets/mojo-BgCJLMeH.js +0 -1
- package/dist/ui/assets/monokai-CdkpiU2Y.js +0 -1
- package/dist/ui/assets/moonbit-CaWjb8XO.js +0 -1
- package/dist/ui/assets/move-B1IS1UjX.js +0 -1
- package/dist/ui/assets/narrat-_X_XdTYD.js +0 -1
- package/dist/ui/assets/nextflow-Bbiyy34d.js +0 -1
- package/dist/ui/assets/nextflow-groovy-Dc_ddanL.js +0 -1
- package/dist/ui/assets/nginx-CzJafxLa.js +0 -1
- package/dist/ui/assets/night-owl-DhmEMT88.js +0 -1
- package/dist/ui/assets/night-owl-light-eJ-hLW7d.js +0 -1
- package/dist/ui/assets/nim-DABKtHtM.js +0 -1
- package/dist/ui/assets/nix-IvuFDN5E.js +0 -1
- package/dist/ui/assets/nord-Cb4Vim4T.js +0 -1
- package/dist/ui/assets/nushell-DcLAeLz5.js +0 -1
- package/dist/ui/assets/objective-c-D1A_Heim.js +0 -1
- package/dist/ui/assets/objective-cpp-BsSzOQcm.js +0 -1
- package/dist/ui/assets/ocaml-O90oeIOV.js +0 -1
- package/dist/ui/assets/odin-B1RWQWA5.js +0 -1
- package/dist/ui/assets/one-dark-pro-CLwyXe_n.js +0 -1
- package/dist/ui/assets/one-light-D7Lr4KcI.js +0 -1
- package/dist/ui/assets/openscad-BUDT5pXO.js +0 -1
- package/dist/ui/assets/pascal-4ZHwLPI5.js +0 -1
- package/dist/ui/assets/perl-CBh7L3lZ.js +0 -1
- package/dist/ui/assets/php-DFbI9q5p.js +0 -1
- package/dist/ui/assets/pierre-dark-sU4Zdns8.js +0 -1
- package/dist/ui/assets/pierre-dark-soft-HXgun5vs.js +0 -1
- package/dist/ui/assets/pierre-light-DWBk51d8.js +0 -1
- package/dist/ui/assets/pierre-light-soft-CodEzPxf.js +0 -1
- package/dist/ui/assets/pkl-ot-7Btpt.js +0 -1
- package/dist/ui/assets/plastic-DQwYfKfQ.js +0 -1
- package/dist/ui/assets/plsql-DGHpHOYJ.js +0 -1
- package/dist/ui/assets/po-BiJDBrnU.js +0 -1
- package/dist/ui/assets/poimandres-DRFjx7u4.js +0 -1
- package/dist/ui/assets/polar-C7UOKdEL.js +0 -1
- package/dist/ui/assets/postcss-BXeXVLqQ.js +0 -1
- package/dist/ui/assets/powerquery-DNMTfnFr.js +0 -1
- package/dist/ui/assets/powershell-DshXNtvi.js +0 -1
- package/dist/ui/assets/prisma-BsRQq5mF.js +0 -1
- package/dist/ui/assets/prolog-iXnhIJG7.js +0 -1
- package/dist/ui/assets/proto-DB4EqR-F.js +0 -1
- package/dist/ui/assets/pug-C_PxC7gO.js +0 -1
- package/dist/ui/assets/puppet-CDv2pdJW.js +0 -1
- package/dist/ui/assets/purescript-9MfHhQsQ.js +0 -1
- package/dist/ui/assets/python-gzcpVVnB.js +0 -1
- package/dist/ui/assets/qml-DtngoFFK.js +0 -1
- package/dist/ui/assets/qmldir-DCQb3MpD.js +0 -1
- package/dist/ui/assets/qss-Fe1Jh2GI.js +0 -1
- package/dist/ui/assets/r-DohkcevW.js +0 -1
- package/dist/ui/assets/racket-DcIDlBhZ.js +0 -1
- package/dist/ui/assets/raku-B3gFvitq.js +0 -1
- package/dist/ui/assets/razor-C4t8J0_E.js +0 -1
- package/dist/ui/assets/red-CJ3rzSJv.js +0 -1
- package/dist/ui/assets/reg-CRGYupPL.js +0 -1
- package/dist/ui/assets/regexp-OGbTbjgY.js +0 -1
- package/dist/ui/assets/rel-BtDbiS_P.js +0 -1
- package/dist/ui/assets/review-payload-C5Qz60Kq.js +0 -1
- package/dist/ui/assets/riscv-Ckw8ddFX.js +0 -1
- package/dist/ui/assets/ron-VUp2lXgN.js +0 -1
- package/dist/ui/assets/rose-pine-BthvhNj6.js +0 -1
- package/dist/ui/assets/rose-pine-dawn-Dg85fqjY.js +0 -1
- package/dist/ui/assets/rose-pine-moon-hon4tzzS.js +0 -1
- package/dist/ui/assets/rosmsg-CAekHB0j.js +0 -1
- package/dist/ui/assets/rst-CfBbbcvC.js +0 -1
- package/dist/ui/assets/ruby-Bw0mpxHY.js +0 -1
- package/dist/ui/assets/rust-Cfkwpbl8.js +0 -1
- package/dist/ui/assets/sas-Cs3s9JOf.js +0 -1
- package/dist/ui/assets/sass-DXrisJhu.js +0 -1
- package/dist/ui/assets/scala-DKOlJaKm.js +0 -1
- package/dist/ui/assets/scheme-DQCgrYNe.js +0 -1
- package/dist/ui/assets/scss-sRxNJS54.js +0 -1
- package/dist/ui/assets/sdbl-bTVj8UrX.js +0 -1
- package/dist/ui/assets/shaderlab-TOUzSsQk.js +0 -1
- package/dist/ui/assets/shellscript-B0X6wh0R.js +0 -1
- package/dist/ui/assets/shellsession-D2FdOioR.js +0 -1
- package/dist/ui/assets/slack-dark-DnToyrRv.js +0 -1
- package/dist/ui/assets/slack-ochin-B2OO5cIa.js +0 -1
- package/dist/ui/assets/smalltalk-B16xEiuN.js +0 -1
- package/dist/ui/assets/snazzy-light-4G7pJPwS.js +0 -1
- package/dist/ui/assets/solarized-dark-DV17i1UV.js +0 -1
- package/dist/ui/assets/solarized-light-DSh2HLQt.js +0 -1
- package/dist/ui/assets/solidity-CKzVLygQ.js +0 -1
- package/dist/ui/assets/soy-s6g9OjJ1.js +0 -1
- package/dist/ui/assets/sparql-D_iOobhT.js +0 -1
- package/dist/ui/assets/splunk-BC2Px7Mm.js +0 -1
- package/dist/ui/assets/sql-DVTnh5V-.js +0 -1
- package/dist/ui/assets/ssh-config-BgfXC-Er.js +0 -1
- package/dist/ui/assets/stata-DFIDiXF9.js +0 -1
- package/dist/ui/assets/stylus-B6D30XZt.js +0 -1
- package/dist/ui/assets/surrealql-DVfrsLyg.js +0 -1
- package/dist/ui/assets/svelte-D5GsxESq.js +0 -1
- package/dist/ui/assets/swift-DonLKvLd.js +0 -1
- package/dist/ui/assets/synthwave-84-nFMaYfgc.js +0 -1
- package/dist/ui/assets/system-verilog-DJ5XKQeo.js +0 -1
- package/dist/ui/assets/systemd-BxMlprV5.js +0 -1
- package/dist/ui/assets/talonscript-CohzipZa.js +0 -1
- package/dist/ui/assets/tasl-DMoTqEGO.js +0 -1
- package/dist/ui/assets/tcl-CZd0xW_V.js +0 -1
- package/dist/ui/assets/templ-DI-Zyqzd.js +0 -1
- package/dist/ui/assets/terraform-DswuEJGm.js +0 -1
- package/dist/ui/assets/tex-WHHmlbJI.js +0 -1
- package/dist/ui/assets/tokyo-night-oM2G3aXe.js +0 -1
- package/dist/ui/assets/toml-CcmNWLt0.js +0 -1
- package/dist/ui/assets/ts-tags-Dwpo2RFJ.js +0 -1
- package/dist/ui/assets/tsv-sltzmVWM.js +0 -1
- package/dist/ui/assets/tsx-ph_idaAW.js +0 -1
- package/dist/ui/assets/turtle-ByJddavk.js +0 -1
- package/dist/ui/assets/twig-YO17jFjR.js +0 -1
- package/dist/ui/assets/typescript-CbAxjhkl.js +0 -1
- package/dist/ui/assets/typespec-B88KGewJ.js +0 -1
- package/dist/ui/assets/typst-DI99ib-x.js +0 -1
- package/dist/ui/assets/useFileDiffInstance-B2DLX3Vg.js +0 -244
- package/dist/ui/assets/v-DETTlOr0.js +0 -1
- package/dist/ui/assets/vala-zf12oZj6.js +0 -1
- package/dist/ui/assets/vb-Djn5o6TS.js +0 -1
- package/dist/ui/assets/verilog-CiiDBU1e.js +0 -1
- package/dist/ui/assets/vesper-D5bVUKB1.js +0 -1
- package/dist/ui/assets/vhdl-BroJfC0k.js +0 -1
- package/dist/ui/assets/viml-DvXPmvsu.js +0 -1
- package/dist/ui/assets/vitesse-black-fwtXNY1n.js +0 -1
- package/dist/ui/assets/vitesse-dark-BZCL-v6S.js +0 -1
- package/dist/ui/assets/vitesse-light-VbXTXTou.js +0 -1
- package/dist/ui/assets/vue-CraHL-Ps.js +0 -1
- package/dist/ui/assets/vue-html-e9tyZNtS.js +0 -1
- package/dist/ui/assets/vue-vine-CofmxaUb.js +0 -1
- package/dist/ui/assets/vyper-CgoNMtux.js +0 -1
- package/dist/ui/assets/wasm-BnjxR4X6.js +0 -1
- package/dist/ui/assets/wasm-ByWQv1Qj.js +0 -1
- package/dist/ui/assets/wenyan-C8pVoKbM.js +0 -1
- package/dist/ui/assets/wgsl-BsKzXJz4.js +0 -1
- package/dist/ui/assets/wikitext-ClFFjSW2.js +0 -1
- package/dist/ui/assets/wit-DdvCle-K.js +0 -1
- package/dist/ui/assets/wolfram-DLL8P-h_.js +0 -1
- package/dist/ui/assets/workspace-app-8--oTbCd.css +0 -1
- package/dist/ui/assets/xml-BWSdPZHm.js +0 -1
- package/dist/ui/assets/xsl-BtCt7Hx8.js +0 -1
- package/dist/ui/assets/yaml-BZiTw7cQ.js +0 -1
- package/dist/ui/assets/zenscript-BnlCZFoB.js +0 -1
- package/dist/ui/assets/zig-CMLA9XwU.js +0 -1
- package/docs/assets/auvrynt-logo-light.png +0 -0
- package/docs/assets/auvrynt-screenshot.png +0 -0
package/docs/security.md
CHANGED
|
@@ -1,100 +1,138 @@
|
|
|
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
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
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 token (or Owner token as `Authorization: Bearer` for header-only clients such as Clusy)
|
|
10
|
+
- OAuth scopes are enforced per tool call
|
|
11
|
+
- workspace rooms are owned by the OAuth client that opened them
|
|
12
|
+
- Host headers are allowlisted from the configured public URL
|
|
13
|
+
- forwarded client IPs are trusted only from an immediate loopback proxy
|
|
14
|
+
- every coding action happens through explicit MCP tool calls
|
|
15
|
+
|
|
16
|
+
## Filesystem Allowlist
|
|
17
|
+
|
|
18
|
+
Auvrynt only opens workspaces under configured roots.
|
|
19
|
+
|
|
20
|
+
Good examples:
|
|
21
|
+
|
|
22
|
+
```text
|
|
23
|
+
~/work
|
|
24
|
+
~/personal/open-source
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Avoid broad roots:
|
|
28
|
+
|
|
29
|
+
```text
|
|
30
|
+
~
|
|
31
|
+
/
|
|
32
|
+
C:\
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
The narrower the root, the easier it is to reason about what the MCP client can
|
|
36
|
+
reach.
|
|
37
|
+
|
|
38
|
+
## Workspace Room Ownership
|
|
39
|
+
|
|
40
|
+
Every workspace opened through MCP is assigned to the authenticated OAuth client
|
|
41
|
+
that created it. Workspace-bound tools validate this ownership before resolving
|
|
42
|
+
the filesystem root or invoking an integration. Another OAuth client cannot use
|
|
43
|
+
a leaked `workspaceId` to read, edit, run processes, or call integration tools in
|
|
44
|
+
that room.
|
|
45
|
+
|
|
46
|
+
Room ownership does not provide file locking. Two owner-protected workspaces can
|
|
47
|
+
still point to the same checkout, so use separate managed worktrees when multiple
|
|
48
|
+
clients must edit one Git repository concurrently.
|
|
49
|
+
|
|
50
|
+
## Owner Token
|
|
51
|
+
|
|
52
|
+
`auvrynt init` generates an Owner token and stores it in:
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
~/.auvrynt/auth.json
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
When an MCP client connects, Auvrynt shows an approval page. Enter the Owner
|
|
59
|
+
token only when you intentionally want that client to access this server. Normal
|
|
60
|
+
startup does not print the secret; run `auvrynt token` locally when you explicitly
|
|
61
|
+
need to retrieve it.
|
|
62
|
+
|
|
63
|
+
For env-driven deployments, set a long random value:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
AUVRYNT_OAUTH_OWNER_TOKEN="$(openssl rand -base64 32)"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Public URL And Host Allowlist
|
|
70
|
+
|
|
71
|
+
Auvrynt needs `AUVRYNT_PUBLIC_BASE_URL` so MCP clients can discover OAuth
|
|
72
|
+
metadata and connect to the correct resource.
|
|
73
|
+
|
|
74
|
+
The value should be the origin only:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
https://your-tunnel-host.example.com
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Do not include `/mcp` in `AUVRYNT_PUBLIC_BASE_URL`.
|
|
81
|
+
|
|
82
|
+
By default, Auvrynt derives allowed Host headers from the local host and public
|
|
83
|
+
URL. Use `AUVRYNT_ALLOWED_HOSTS=*` only for intentional local debugging. Reverse
|
|
84
|
+
proxy forwarding information is accepted only when the immediate proxy is on
|
|
85
|
+
loopback; there is no option to trust arbitrary forwarding headers.
|
|
86
|
+
|
|
87
|
+
## Tunnels
|
|
88
|
+
|
|
89
|
+
Auvrynt does not manage tunnels. Your tunnel or reverse proxy should point to:
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
http://127.0.0.1:49321
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Prefer adding Cloudflare Access, Tailscale identity controls, or equivalent
|
|
96
|
+
protection in front of public tunnels. Auvrynt OAuth still protects the MCP
|
|
97
|
+
endpoint, but the tunnel URL should not be treated as a secret.
|
|
98
|
+
|
|
99
|
+
## Shell Access
|
|
100
|
+
|
|
101
|
+
The shell tool is powerful by design. It is meant for tests, builds, git, and
|
|
102
|
+
package scripts.
|
|
103
|
+
|
|
104
|
+
Filesystem path containment applies to Auvrynt file tools. Shell commands run
|
|
105
|
+
as local commands and can do what your user account can do. This is why the MCP
|
|
106
|
+
client must be trusted and the Owner token must stay private.
|
|
107
|
+
|
|
108
|
+
The `auvrynt:process` scope should therefore be treated as local command-execution
|
|
109
|
+
permission, not as a filesystem sandbox.
|
|
110
|
+
|
|
111
|
+
## Blender Python
|
|
112
|
+
|
|
113
|
+
Normal Blender tools require `auvrynt:blender` and are bound to a `.blend` file
|
|
114
|
+
inside the opened workspace. The arbitrary `blender_execute_python` escape hatch
|
|
115
|
+
also requires `auvrynt:blender-python`, which is excluded from the default OAuth
|
|
116
|
+
scope set because Python executed inside Blender has the privileges of the local
|
|
117
|
+
user account.
|
|
118
|
+
|
|
119
|
+
## Browser Network Access
|
|
120
|
+
|
|
121
|
+
Playwright browser tools validate each HTTP(S) request, redirect, DNS result, and
|
|
122
|
+
WebSocket destination against local/private/reserved network ranges. Service
|
|
123
|
+
workers are disabled in managed browser contexts so they cannot bypass request
|
|
124
|
+
routing. Intentional localhost development pages are allowed, while unrelated
|
|
125
|
+
LAN, metadata, and private-network destinations remain blocked.
|
|
126
|
+
|
|
127
|
+
## Worktrees
|
|
128
|
+
|
|
129
|
+
Managed worktrees reduce accidental edits to your active checkout, but they are
|
|
130
|
+
not a security boundary. They are a workflow boundary for isolated coding
|
|
131
|
+
sessions.
|
|
132
|
+
|
|
133
|
+
## Logs
|
|
134
|
+
|
|
135
|
+
By default, Auvrynt logs requests and tool calls. Shell command previews are
|
|
136
|
+
disabled unless `AUVRYNT_LOG_SHELL_COMMANDS=1`.
|
|
137
|
+
|
|
138
|
+
Do not enable shell command logging if commands may contain secrets.
|
package/docs/setup.md
CHANGED
|
@@ -1,132 +1,172 @@
|
|
|
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
|
-
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Install And
|
|
18
|
-
|
|
19
|
-
Run:
|
|
20
|
-
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
1
|
+
# Setup Guide
|
|
2
|
+
|
|
3
|
+
This guide is for users who want ChatGPT, Claude, Grok, Lovable, Bolt, 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 for Windows (includes the Bash runtime used by agent shell tools)
|
|
11
|
+
- Windows PowerShell or cmd.exe
|
|
12
|
+
- Internet access for the managed Cloudflare quick tunnel
|
|
13
|
+
|
|
14
|
+
`auvrynt start` installs Cloudflare Tunnel when needed and creates a temporary
|
|
15
|
+
public URL automatically.
|
|
16
|
+
|
|
17
|
+
## Install And Start
|
|
18
|
+
|
|
19
|
+
Run:
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
npm install -g auvrynt
|
|
23
|
+
cd C:\path\to\your\project
|
|
24
|
+
auvrynt start
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
The first start creates local configuration and asks which optional
|
|
28
|
+
integrations to enable. The launch directory becomes the only project root
|
|
29
|
+
available to that managed instance.
|
|
30
|
+
|
|
31
|
+
Run `auvrynt init` only if you want to configure foreground `auvrynt serve`
|
|
32
|
+
manually. That setup flow asks one question at a time:
|
|
33
|
+
|
|
34
|
+
### Project Roots
|
|
35
|
+
|
|
36
|
+
Choose the folders ChatGPT is allowed to open through Auvrynt. Keep this
|
|
37
|
+
narrow.
|
|
38
|
+
|
|
39
|
+
Example: `C:\Users\alice\dev,C:\Users\alice\work`.
|
|
40
|
+
|
|
41
|
+
### Local Port
|
|
42
|
+
|
|
43
|
+
The default is `49321`.
|
|
44
|
+
|
|
45
|
+
The local MCP URL is:
|
|
46
|
+
|
|
47
|
+
```text
|
|
48
|
+
http://127.0.0.1:49321/mcp
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Public Base URL
|
|
52
|
+
|
|
53
|
+
This setting applies to foreground `auvrynt serve`; managed `auvrynt start`
|
|
54
|
+
creates its own Cloudflare URL. Point your independently managed tunnel at:
|
|
55
|
+
|
|
56
|
+
```text
|
|
57
|
+
http://127.0.0.1:49321
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Enter the public origin without `/mcp`:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
https://your-tunnel-host.example.com
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Configure the MCP client with the full MCP endpoint:
|
|
67
|
+
|
|
68
|
+
```text
|
|
69
|
+
https://your-tunnel-host.example.com/mcp
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Start The Server
|
|
73
|
+
|
|
74
|
+
Run:
|
|
75
|
+
|
|
76
|
+
```powershell
|
|
77
|
+
auvrynt start
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
The command starts in the background and returns only after both the local
|
|
81
|
+
server and Cloudflare tunnel are ready. It always limits web-agent file access
|
|
82
|
+
to the directory where you ran it.
|
|
83
|
+
|
|
84
|
+
Use `auvrynt add web` (or another profile) to update the running instance
|
|
85
|
+
without restarting the server or tunnel. Use `auvrynt restart` to reload only
|
|
86
|
+
the Auvrynt server while preserving the tunnel URL, `auvrynt restart hard` to
|
|
87
|
+
recreate both processes, or `auvrynt stop` to stop both managed processes.
|
|
88
|
+
|
|
89
|
+
To move the running web-agent boundary to another project without changing the
|
|
90
|
+
tunnel URL, open that directory and run:
|
|
91
|
+
|
|
92
|
+
```powershell
|
|
93
|
+
auvrynt change
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
For an independently managed stable URL, configure it and use foreground
|
|
97
|
+
`auvrynt serve`:
|
|
98
|
+
|
|
99
|
+
```powershell
|
|
100
|
+
auvrynt config set publicBaseUrl https://auvrynt.example.com
|
|
101
|
+
auvrynt serve
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Approve The Client
|
|
105
|
+
|
|
106
|
+
When ChatGPT, Claude, Grok, Lovable, Bolt, or another MCP client connects, Auvrynt shows an Owner
|
|
107
|
+
token approval page. Enter the Owner token shown during setup, or retrieve it later with `auvrynt token`.
|
|
108
|
+
|
|
109
|
+
The default config files are:
|
|
110
|
+
|
|
111
|
+
```text
|
|
112
|
+
~/.auvrynt/config.json
|
|
113
|
+
~/.auvrynt/auth.json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Keep `auth.json` private.
|
|
117
|
+
|
|
118
|
+
## Connect Grok
|
|
119
|
+
|
|
120
|
+
Start Auvrynt with the integrations you need, then copy the public MCP URL from
|
|
121
|
+
`auvrynt status`:
|
|
122
|
+
|
|
123
|
+
```powershell
|
|
124
|
+
auvrynt start web
|
|
125
|
+
auvrynt status
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
In Grok, open `grok.com/connectors`, choose **New Connector** → **Custom**, and
|
|
129
|
+
paste the URL ending in `/mcp`. Grok must use the public HTTPS URL; it cannot
|
|
130
|
+
reach `127.0.0.1`. Complete the Auvrynt Owner-token approval when prompted.
|
|
131
|
+
|
|
132
|
+
For a URL that survives tunnel restarts, configure a reserved ngrok URL with
|
|
133
|
+
`auvrynt tunnel` before creating the Grok connector. Cloudflare quick-tunnel
|
|
134
|
+
URLs are temporary and must be replaced in Grok when they change.
|
|
135
|
+
|
|
136
|
+
## Connect Clusy (header auth)
|
|
137
|
+
|
|
138
|
+
Clusy cloud MCP only supports **Streamable HTTP** and **custom headers**. It does
|
|
139
|
+
not open Auvrynt’s `/authorize` page.
|
|
140
|
+
|
|
141
|
+
1. Start Auvrynt and copy the public URL ending in `/mcp` from `auvrynt status`.
|
|
142
|
+
2. Run `auvrynt token` and copy the Owner token (keep it private).
|
|
143
|
+
3. In Clusy → **Settings → MCP servers** → Add server:
|
|
144
|
+
- Transport: **Streamable HTTP** (not STDIO)
|
|
145
|
+
- URL: `https://your-public-host/mcp`
|
|
146
|
+
- Custom header name: `Authorization`
|
|
147
|
+
- Custom header value: `Bearer <owner-token>`
|
|
148
|
+
4. Save, then approve individual tools in Clusy when prompted.
|
|
149
|
+
|
|
150
|
+
Rebuild/restart Auvrynt after upgrading so Owner-Bearer verification is active.
|
|
151
|
+
|
|
152
|
+
## Check Your Setup
|
|
153
|
+
|
|
154
|
+
Run:
|
|
155
|
+
|
|
156
|
+
```bash
|
|
117
157
|
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.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The doctor command reports the resolved config, Node version, Node ABI, platform,
|
|
161
|
+
Git, Bash, public URL, allowed hosts, and SQLite native dependency status.
|
|
162
|
+
|
|
163
|
+
## Running From A Local Checkout
|
|
164
|
+
|
|
165
|
+
If you are developing Auvrynt itself instead of using the published package:
|
|
166
|
+
|
|
167
|
+
```bash
|
|
168
|
+
npm install --include=dev
|
|
169
|
+
npm run dev
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The same setup rules apply.
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Source Layout
|
|
2
|
+
|
|
3
|
+
Auvrynt keeps package entry points at the root of `src` and groups implementation code by responsibility.
|
|
4
|
+
|
|
5
|
+
## Entry points
|
|
6
|
+
|
|
7
|
+
- `src/cli.ts` — command routing only. It compiles to the published `dist/cli.js` executable.
|
|
8
|
+
- `src/server.ts` — HTTP, OAuth, MCP transport, session, readiness, and shutdown composition. It compiles to the published `dist/server.js` entry point.
|
|
9
|
+
|
|
10
|
+
These files intentionally remain at the root because `package.json` publishes those output paths.
|
|
11
|
+
|
|
12
|
+
## Domain folders
|
|
13
|
+
|
|
14
|
+
```text
|
|
15
|
+
src/
|
|
16
|
+
├── auth/ OAuth, sessions, rooms, connected-client state
|
|
17
|
+
├── cli/ commands, foreground serving, lifecycle management
|
|
18
|
+
├── db/ SQLite client and schema
|
|
19
|
+
├── infrastructure/ configuration, logging, HTTP/SSE, queues, payload budgets
|
|
20
|
+
├── integrations/
|
|
21
|
+
│ ├── blender/
|
|
22
|
+
│ ├── dotnet/
|
|
23
|
+
│ ├── godot/
|
|
24
|
+
│ ├── images/
|
|
25
|
+
│ ├── playwright/
|
|
26
|
+
│ └── serena/
|
|
27
|
+
├── process/ managed processes, retries, crash recovery, background lifecycle
|
|
28
|
+
├── server/ MCP policy, tool registration, UI resources, tool families
|
|
29
|
+
├── tools/ shared MCP tool adapters
|
|
30
|
+
├── tunnels/ Cloudflare and ngrok implementations
|
|
31
|
+
└── workspace/ workspace registry, persistence, worktrees, search, skills
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Root compatibility files
|
|
35
|
+
|
|
36
|
+
Most non-test `src/*.ts` files are intentionally tiny re-export facades. They preserve existing import paths while implementation code lives in the domain folders. New runtime implementation must not be added to these facades.
|
|
37
|
+
|
|
38
|
+
All non-entry root runtime files are now compatibility facades. The final three implementation bodies (`blender-tools.ts`, `serena-manager.ts`, `serena-tools.ts`) have been moved into their respective integration domain folders:
|
|
39
|
+
|
|
40
|
+
- `src/integrations/blender/blender-tools.ts`
|
|
41
|
+
- `src/integrations/serena/serena-manager.ts`
|
|
42
|
+
- `src/integrations/serena/serena-tools.ts`
|
|
43
|
+
|
|
44
|
+
The root files re-export from the domain paths. New server code imports the organized domain paths directly.
|
|
45
|
+
|
|
46
|
+
## Tests
|
|
47
|
+
|
|
48
|
+
Tests currently remain beside their historical root import paths because `scripts/run-tests.mjs` treats each `src/*.test.ts` file as an executable test entry point. Tests may be colocated with implementations in a later dedicated test-runner migration, but production code should not depend on test location.
|
|
49
|
+
|
|
50
|
+
## Placement rules
|
|
51
|
+
|
|
52
|
+
- Add authentication or session state under `auth/`.
|
|
53
|
+
- Add transport, configuration, logging, or bounded-resource helpers under `infrastructure/`.
|
|
54
|
+
- Add workspace filesystem and persistence behavior under `workspace/`.
|
|
55
|
+
- Add process ownership or lifecycle behavior under `process/`.
|
|
56
|
+
- Add integration-specific behavior under its `integrations/<name>/` folder.
|
|
57
|
+
- Keep `cli.ts` and `server.ts` composition-only.
|
|
58
|
+
- Do not add new root implementation files.
|
|
59
|
+
|
|
60
|
+
`src/architecture-boundaries.test.ts` enforces these rules.
|