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
|
@@ -0,0 +1,472 @@
|
|
|
1
|
+
# BLENDER_AGENT_GUIDE.md
|
|
2
|
+
|
|
3
|
+
## Scope
|
|
4
|
+
|
|
5
|
+
This guide applies to 3D modeling, asset creation, material configuration, rigging, animation, rendering, optimization, and exporting tasks using Blender.
|
|
6
|
+
|
|
7
|
+
Load this guide when `.blend` files or `bpy` python scripts are present, or when the task involves editing, optimizing, rendering, or validating 3D game/web assets.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## β‘ Quick Start for Web Agents
|
|
12
|
+
|
|
13
|
+
> **If Blender tools are not responding, the local server may not be running.**
|
|
14
|
+
> The user must run: `auvrynt start blender`
|
|
15
|
+
|
|
16
|
+
Once the server is running, your entry point is `https://mcp.auvrynt.dpdns.org/mcp` and all `blender_*` tools are available.
|
|
17
|
+
|
|
18
|
+
### First thing: always ping first
|
|
19
|
+
|
|
20
|
+
```json
|
|
21
|
+
// Tool: blender_ping
|
|
22
|
+
{ "workspaceId": "default" }
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If `blender_ping` fails β Blender is not open or the MCP socket is offline. Stop and tell the user.
|
|
26
|
+
If it succeeds β proceed.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## π Executing Custom Python: `blender_execute_python`
|
|
31
|
+
|
|
32
|
+
Many catalog tools are **stubs** β they return `{"status": "registered"}` and do nothing. For any operation not covered by a dedicated tool, use:
|
|
33
|
+
|
|
34
|
+
```json
|
|
35
|
+
{
|
|
36
|
+
"workspaceId": "default",
|
|
37
|
+
"code": "import bpy\nresult = {'active': bpy.context.active_object.name}"
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
**Rules:**
|
|
42
|
+
- Always end your script with `result = { ... }` β that is what gets returned.
|
|
43
|
+
- Use standard Blender Python API (`bpy.context`, `bpy.data`, `bpy.ops`).
|
|
44
|
+
- Do NOT call `os.system()`, `subprocess`, or open network sockets.
|
|
45
|
+
- Keep scripts short and targeted β one operation per call.
|
|
46
|
+
|
|
47
|
+
### Recognizing stubs
|
|
48
|
+
|
|
49
|
+
A stub has:
|
|
50
|
+
- No parameters beyond `workspaceId`
|
|
51
|
+
- Description ending in `...until this tool is promoted to a dedicated implementation.`
|
|
52
|
+
- Returns: `{ "status": "registered", "note": "Use blender_execute_python..." }`
|
|
53
|
+
|
|
54
|
+
**If you get `status: "registered"` β nothing happened. Write bpy code and use `blender_execute_python`.**
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## π¨ Decision Tree
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
Need to do something in Blender?
|
|
62
|
+
ββ Is there a dedicated tool in the lists below?
|
|
63
|
+
β ββ Use it directly β
|
|
64
|
+
ββ Called a tool and got { "status": "registered" }?
|
|
65
|
+
β ββ Write bpy code β blender_execute_python β
|
|
66
|
+
ββ Need custom logic, inspection, or anything not listed?
|
|
67
|
+
ββ blender_execute_python β
|
|
68
|
+
|
|
69
|
+
Not sure if Blender is connected?
|
|
70
|
+
ββ blender_ping first. Fails β tell user: auvrynt start blender β
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## π οΈ Complete Tool Reference
|
|
76
|
+
|
|
77
|
+
### Tool Tiers at a Glance
|
|
78
|
+
|
|
79
|
+
| Tier | Count | Status |
|
|
80
|
+
|---|---|---|
|
|
81
|
+
| Handwritten implementations | ~108 | **Always work** β use these first |
|
|
82
|
+
| Catalog implementations | ~120 | **Usually work** β call first, fall back if stub response |
|
|
83
|
+
| Bridge stubs | ~577 | **Return nothing** β use `blender_execute_python` instead |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### π‘ Connection & Status
|
|
88
|
+
|
|
89
|
+
| Tool | What it does |
|
|
90
|
+
|---|---|
|
|
91
|
+
| `blender_ping` | Check if Blender MCP socket is alive |
|
|
92
|
+
| `blender_get_console_errors` | Get recent Blender console errors |
|
|
93
|
+
| `blender_get_active_mode_and_status` | Get current mode (OBJECT/EDIT/SCULPT etc.) |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
### π Scene Inspection
|
|
98
|
+
|
|
99
|
+
| Tool | What it does |
|
|
100
|
+
|---|---|
|
|
101
|
+
| `blender_get_scene_info` | Full scene summary: objects, materials, cameras, lights, frame |
|
|
102
|
+
| `blender_get_scene_audit` | Mesh stats, non-manifold, duplicates, textures |
|
|
103
|
+
| `blender_get_selection` | Currently selected/active objects |
|
|
104
|
+
| `blender_inspect_object` | Detailed object info: verts, polys, materials, modifiers |
|
|
105
|
+
| `blender_inspect_material` | Material node tree details |
|
|
106
|
+
| `blender_inspect_geometry_nodes` | Geometry node group details |
|
|
107
|
+
| `blender_get_current_file` | Active `.blend` file path |
|
|
108
|
+
| `blender_get_scene_hierarchy` | Scene collection/object hierarchy tree |
|
|
109
|
+
| `blender_get_scene_statistics` | Poly/vert/object counts |
|
|
110
|
+
| `blender_get_unsaved_changes_status` | Whether there are unsaved changes |
|
|
111
|
+
| `blender_get_recent_operator_log` | Last executed operators |
|
|
112
|
+
|
|
113
|
+
---
|
|
114
|
+
|
|
115
|
+
### β Create Objects
|
|
116
|
+
|
|
117
|
+
| Tool | Key Params | What it does |
|
|
118
|
+
|---|---|---|
|
|
119
|
+
| `blender_create_cube` | `name, size, location` | Add a cube mesh |
|
|
120
|
+
| `blender_create_plane` | `name, size, location` | Add a plane mesh |
|
|
121
|
+
| `blender_create_circle` | `vertices, radius, fillType, location` | Add a circle |
|
|
122
|
+
| `blender_create_cylinder` | `vertices, radius, depth, location` | Add a cylinder |
|
|
123
|
+
| `blender_create_cone` | `vertices, radius1, radius2, depth, location` | Add a cone |
|
|
124
|
+
| `blender_create_sphere` | `segments, ringCount, radius, location` | Add a UV sphere |
|
|
125
|
+
| `blender_create_icosphere` | `subdivisions, radius, location` | Add an icosphere |
|
|
126
|
+
| `blender_create_torus` | `majorRadius, minorRadius, location` | Add a torus |
|
|
127
|
+
| `blender_create_grid` | `xSegments, ySegments, size, location` | Add a grid mesh |
|
|
128
|
+
| `blender_create_monkey` | `size, location` | Add Suzanne (Blender mascot) |
|
|
129
|
+
| `blender_create_camera` | `name, location, rotation, lens` | Add a camera |
|
|
130
|
+
| `blender_create_light` | `name, lightType, energy, color, location` | Add a light (POINT/SUN/SPOT/AREA) |
|
|
131
|
+
| `blender_create_empty` | `name, emptyType, location` | Add an empty object |
|
|
132
|
+
| `blender_create_text` | `name, content, size, location` | Add a 3D text object |
|
|
133
|
+
| `blender_create_curve` | `name, location` | Add a Bezier curve |
|
|
134
|
+
| `blender_create_armature` | `name, location` | Add an armature with one bone |
|
|
135
|
+
| `blender_create_metaball` | `name, radius, location` | Add a metaball |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
### π― Selection (Object Mode)
|
|
140
|
+
|
|
141
|
+
| Tool | Key Params | What it does |
|
|
142
|
+
|---|---|---|
|
|
143
|
+
| `blender_select_object` | `objectName` | Select one object |
|
|
144
|
+
| `blender_select_objects` | `objectNames, addToSelection` | Select multiple objects |
|
|
145
|
+
| `blender_select_all` | β | Select everything |
|
|
146
|
+
| `blender_deselect_all` | β | Clear selection |
|
|
147
|
+
| `blender_invert_selection` | β | Invert selection |
|
|
148
|
+
| `blender_select_by_type` | `objectType` | Select by type (MESH/CURVE/CAMERA...) |
|
|
149
|
+
| `blender_select_linked` | `objectName` | Select objects sharing same data |
|
|
150
|
+
| `blender_select_by_collection` | `collectionName` | Select all in a collection |
|
|
151
|
+
| `blender_select_by_material` | `materialName` | Select all using a material |
|
|
152
|
+
| `blender_select_by_polycount` | `minTriangles, maxTriangles` | Select by poly range |
|
|
153
|
+
| `blender_select_by_wildcard` | `pattern` | Select by name pattern |
|
|
154
|
+
| `blender_select_by_property` | `property, value` | Select by object property |
|
|
155
|
+
| `blender_select_hierarchy` | `objectName` | Select object + all descendants |
|
|
156
|
+
| `blender_select_visible` | β | Select only visible objects |
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
### π― Selection (Edit Mode β Sub-element)
|
|
161
|
+
|
|
162
|
+
| Tool | What it does |
|
|
163
|
+
|---|---|
|
|
164
|
+
| `blender_select_vertices` | Select vertices by condition |
|
|
165
|
+
| `blender_select_edges` | Select all edges |
|
|
166
|
+
| `blender_select_faces` | Select all faces |
|
|
167
|
+
| `blender_select_edge_loops` | Select edge loops from selection |
|
|
168
|
+
| `blender_select_edge_rings` | Select edge rings from selection |
|
|
169
|
+
| `blender_select_boundary` | Select boundary edges |
|
|
170
|
+
| `blender_select_sharp_edges` | Select edges above angle threshold |
|
|
171
|
+
| `blender_select_non_manifold` | Select non-manifold geometry |
|
|
172
|
+
| `blender_select_loose_geometry` | Select unconnected verts/edges |
|
|
173
|
+
| `blender_select_similar` | Select similar geometry |
|
|
174
|
+
| `blender_select_by_normal` | Select faces by normal direction |
|
|
175
|
+
| `blender_select_by_material_slot` | Select faces by material slot index |
|
|
176
|
+
| `blender_select_by_face_area` | Select faces by area range |
|
|
177
|
+
| `blender_select_linked_geometry` | Select connected geometry |
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
### π Object Transforms & Operations
|
|
182
|
+
|
|
183
|
+
| Tool | Key Params | What it does |
|
|
184
|
+
|---|---|---|
|
|
185
|
+
| `blender_transform_object` | `objectName, location, rotation, scale` | Move/rotate/scale |
|
|
186
|
+
| `blender_move_object` | `objectName, offset` | Relative move |
|
|
187
|
+
| `blender_rotate_object` | `objectName, rotation` | Relative rotate (degrees) |
|
|
188
|
+
| `blender_scale_object` | `objectName, factor` | Scale by factor |
|
|
189
|
+
| `blender_apply_transforms` | `objectNames, location, rotation, scale` | Apply transforms to mesh |
|
|
190
|
+
| `blender_clear_transforms` | `objectNames, location, rotation, scale` | Reset transforms |
|
|
191
|
+
| `blender_mirror_objects` | `objectNames, axis` | Mirror along axis |
|
|
192
|
+
| `blender_set_origin` | `objectNames, origin, location` | Move object origin |
|
|
193
|
+
| `blender_set_origin_to_geometry` | `objectName` | Origin β geometry center |
|
|
194
|
+
| `blender_set_origin_to_cursor` | `objectName` | Origin β 3D cursor |
|
|
195
|
+
| `blender_set_cursor_location` | `location` | Move 3D cursor |
|
|
196
|
+
| `blender_align_objects` | `axis` | Align objects by axis |
|
|
197
|
+
| `blender_distribute_objects` | `axis, spacing` | Evenly space objects |
|
|
198
|
+
| `blender_randomize_transforms` | `objectNames` | Randomize transforms |
|
|
199
|
+
| `blender_snap_objects_to_grid` | `objectNames, gridSize` | Snap to grid |
|
|
200
|
+
| `blender_snap_objects_to_surface` | `objectNames` | Snap down to surface below |
|
|
201
|
+
| `blender_freeze_transforms` | `objectNames` | Apply all transforms |
|
|
202
|
+
| `blender_normalize_asset_scale` | `objectName, targetSize` | Normalize to unit scale |
|
|
203
|
+
| `blender_validate_scale` | `objectName` | Check for uniform scale |
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
### ποΈ Object Management
|
|
208
|
+
|
|
209
|
+
| Tool | Key Params | What it does |
|
|
210
|
+
|---|---|---|
|
|
211
|
+
| `blender_rename_object` | `objectName, newName` | Rename one object |
|
|
212
|
+
| `blender_rename_objects` | `objectNames` | Rename multiple (with pattern) |
|
|
213
|
+
| `blender_duplicate_object` | `objectNames, duplicateType, offset` | Duplicate |
|
|
214
|
+
| `blender_duplicate_linked` | `objectName` | Linked duplicate (shared mesh) |
|
|
215
|
+
| `blender_delete_objects` | `objectNames` | Delete objects |
|
|
216
|
+
| `blender_parent_object` | `childNames, parentName, keepTransform` | Parent objects |
|
|
217
|
+
| `blender_unparent_object` | `objectNames, keepTransform` | Unparent |
|
|
218
|
+
| `blender_hide_objects` | `objectNames, hide` | Hide/unhide |
|
|
219
|
+
| `blender_show_all_objects` | β | Show everything |
|
|
220
|
+
| `blender_set_object_visibility` | `objectNames` | Set viewport/render visibility |
|
|
221
|
+
| `blender_join_objects` | `objectNames` | Join into one mesh |
|
|
222
|
+
| `blender_separate_object` | `objectName` | Separate loose parts |
|
|
223
|
+
| `blender_make_single_user` | `objectNames` | Unlink shared data |
|
|
224
|
+
| `blender_make_instances` | `objectNames` | Convert to instances |
|
|
225
|
+
| `blender_create_collection` | `name` | Create a collection |
|
|
226
|
+
| `blender_move_to_collection` | `objectNames, collectionName` | Move into collection |
|
|
227
|
+
| `blender_link_to_collection` | `objectNames, collectionName` | Link to collection |
|
|
228
|
+
| `blender_purge_unused_data` | β | Remove orphaned data blocks |
|
|
229
|
+
| `blender_set_custom_property` | `objectName, key, value` | Set custom prop |
|
|
230
|
+
| `blender_remove_custom_property` | `objectName, key` | Remove custom prop |
|
|
231
|
+
| `blender_measure_distance` | `object1, object2` | Distance between objects |
|
|
232
|
+
| `blender_measure_area` | `objectName` | Surface area of mesh |
|
|
233
|
+
| `blender_measure_volume` | `objectName` | Volume of closed mesh |
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
### βοΈ Edit Mode β Mesh Editing
|
|
238
|
+
|
|
239
|
+
Enter edit mode first: `blender_enter_edit_mode` β do edits β `blender_exit_edit_mode`
|
|
240
|
+
|
|
241
|
+
| Tool | Key Params | What it does |
|
|
242
|
+
|---|---|---|
|
|
243
|
+
| `blender_enter_edit_mode` | `objectName` | Enter edit mode |
|
|
244
|
+
| `blender_exit_edit_mode` | β | Return to object mode |
|
|
245
|
+
| `blender_set_mesh_selection_mode` | `mode` (VERT/EDGE/FACE) | Set sub-element mode |
|
|
246
|
+
| `blender_extrude_selection` | `objectName, amount` | Extrude selected |
|
|
247
|
+
| `blender_extrude_vertices` | `objectName, vector` | Extrude verts along vector |
|
|
248
|
+
| `blender_extrude_edges` | `objectName, vector` | Extrude edges |
|
|
249
|
+
| `blender_extrude_faces` | `objectName, vector` | Extrude faces |
|
|
250
|
+
| `blender_extrude_along_normals` | `objectName, amount` | Extrude along normals |
|
|
251
|
+
| `blender_bevel_selection` | `objectName, amount, segments` | Bevel selected |
|
|
252
|
+
| `blender_bevel_vertices` | `objectName, width, segments` | Bevel vertices |
|
|
253
|
+
| `blender_loop_cut` | `objectName, cuts` | Add loop cut |
|
|
254
|
+
| `blender_subdivide` | `objectName, cuts, smooth` | Subdivide faces |
|
|
255
|
+
| `blender_inset_faces` | `objectName, thickness, depth` | Inset faces |
|
|
256
|
+
| `blender_knife_cut` | `objectName, start, end` | Knife cut |
|
|
257
|
+
| `blender_bisect_mesh` | `objectName, plane` | Bisect mesh by plane |
|
|
258
|
+
| `blender_bridge_edge_loops` | `objectName` | Bridge between edge loops |
|
|
259
|
+
| `blender_fill_faces` | `objectName` | Fill selected boundary |
|
|
260
|
+
| `blender_fill_holes` | `objectName` | Fill boundary loops |
|
|
261
|
+
| `blender_grid_fill` | `objectName` | Grid fill between two loops |
|
|
262
|
+
| `blender_poke_faces` | `objectName` | Poke faces (center vert) |
|
|
263
|
+
| `blender_quadrangulate_faces` | `objectName` | Tris β quads |
|
|
264
|
+
| `blender_spin_geometry` | `objectName, angle, steps` | Spin around axis |
|
|
265
|
+
| `blender_screw_geometry` | `objectName, angle, steps` | Screw extrude |
|
|
266
|
+
| `blender_rip_vertices` | `objectName` | Rip vertices |
|
|
267
|
+
| `blender_split_edges` | `objectName` | Split selected edges |
|
|
268
|
+
| `blender_edge_slide` | `objectName, factor` | Slide edges |
|
|
269
|
+
| `blender_vertex_slide` | `objectName, factor` | Slide vertex |
|
|
270
|
+
| `blender_offset_edge_loop` | `objectName, offset` | Offset edge loop |
|
|
271
|
+
| `blender_shrink_fatten` | `objectName, amount` | Move along normals |
|
|
272
|
+
| `blender_merge_by_distance` | `objectName, distance` | Remove doubles |
|
|
273
|
+
| `blender_merge_vertices` | `objectName` | Merge at center/cursor |
|
|
274
|
+
| `blender_collapse_edges` | `objectName` | Collapse edges |
|
|
275
|
+
| `blender_dissolve_vertices` | `objectName` | Dissolve verts |
|
|
276
|
+
| `blender_dissolve_edges` | `objectName` | Dissolve edges |
|
|
277
|
+
| `blender_dissolve_faces` | `objectName` | Dissolve faces |
|
|
278
|
+
| `blender_limited_dissolve` | `objectName, angle` | Dissolve under angle |
|
|
279
|
+
| `blender_recalculate_normals` | `objectName` | Fix outward normals |
|
|
280
|
+
| `blender_flip_normals` | `objectName` | Flip all normals |
|
|
281
|
+
| `blender_triangulate_faces` | `objectName` | All faces β triangles |
|
|
282
|
+
| `blender_delete_loose_geometry` | `objectName` | Delete unconnected verts/edges |
|
|
283
|
+
| `blender_fix_non_manifold` | `objectName` | Select non-manifold geometry |
|
|
284
|
+
| `blender_set_face_smoothing` | `objectName, smooth` | Smooth/flat shading |
|
|
285
|
+
| `blender_mark_sharp` | `objectName` | Mark edges as sharp |
|
|
286
|
+
| `blender_clear_sharp` | `objectName` | Clear sharp edges |
|
|
287
|
+
| `blender_mark_seam` | `objectName` | Mark UV seams |
|
|
288
|
+
| `blender_clear_seam` | `objectName` | Clear UV seams |
|
|
289
|
+
| `blender_crease_edges` | `objectName, crease` | Set subdivision crease |
|
|
290
|
+
| `blender_remove_internal_faces` | `objectName` | Delete enclosed faces |
|
|
291
|
+
| `blender_remove_degenerate_geometry` | `objectName` | Delete degenerate geometry |
|
|
292
|
+
| `blender_snap_selection` | `objectName` | Snap geometry to target |
|
|
293
|
+
| `blender_delete_vertices` | `objectName` | Delete verts |
|
|
294
|
+
| `blender_delete_edges` | `objectName` | Delete edges |
|
|
295
|
+
| `blender_delete_faces` | `objectName` | Delete faces |
|
|
296
|
+
|
|
297
|
+
---
|
|
298
|
+
|
|
299
|
+
### π§ Modifiers
|
|
300
|
+
|
|
301
|
+
| Tool | Key Params | What it does |
|
|
302
|
+
|---|---|---|
|
|
303
|
+
| `blender_add_modifier` | `objectName, modifierType, name` | Add a modifier |
|
|
304
|
+
| `blender_remove_modifier` | `objectName, modifierName` | Remove a modifier |
|
|
305
|
+
| `blender_apply_modifier` | `objectName, modifierName` | Apply (bake) modifier |
|
|
306
|
+
| `blender_edit_modifier` | `objectName, modifierName, properties` | Change modifier settings |
|
|
307
|
+
|
|
308
|
+
> For specialized modifier config (subdivision, mirror, solidify, decimate, etc.) use `blender_execute_python`.
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
### π¨ Materials & Shading
|
|
313
|
+
|
|
314
|
+
| Tool | Key Params | What it does |
|
|
315
|
+
|---|---|---|
|
|
316
|
+
| `blender_create_material` | `name, color, roughness, metallic` | Create Principled BSDF material |
|
|
317
|
+
| `blender_assign_material` | `objectNames, materialName` | Assign material to objects |
|
|
318
|
+
| `blender_list_materials` | β | List all materials |
|
|
319
|
+
| `blender_rename_material` | `materialName, newName` | Rename material |
|
|
320
|
+
| `blender_duplicate_material` | `materialName, newName` | Duplicate material |
|
|
321
|
+
| `blender_remove_unused_materials` | β | Delete orphaned materials |
|
|
322
|
+
|
|
323
|
+
> For node-level operations (create shader nodes, connect nodes, set values) use `blender_execute_python`.
|
|
324
|
+
|
|
325
|
+
---
|
|
326
|
+
|
|
327
|
+
### π¬ Rendering
|
|
328
|
+
|
|
329
|
+
| Tool | Key Params | What it does |
|
|
330
|
+
|---|---|---|
|
|
331
|
+
| `blender_render_camera` | `cameraName, width, height, samples` | Render from camera |
|
|
332
|
+
| `blender_render_viewport` | `width, height` | Screenshot of Blender window |
|
|
333
|
+
| `blender_render_object_isolation` | `objectName, width, height` | Render one object isolated |
|
|
334
|
+
| `blender_set_render_settings` | `engine, width, height, samples, denoise` | Configure render settings |
|
|
335
|
+
|
|
336
|
+
---
|
|
337
|
+
|
|
338
|
+
### ποΈ Animation
|
|
339
|
+
|
|
340
|
+
| Tool | Key Params | What it does |
|
|
341
|
+
|---|---|---|
|
|
342
|
+
| `blender_set_frame` | `frame` | Jump to a frame |
|
|
343
|
+
| `blender_play_animation` | β | Start playback |
|
|
344
|
+
| `blender_stop_animation` | β | Stop playback |
|
|
345
|
+
| `blender_insert_keyframe` | `objectName, properties, frame` | Insert a keyframe |
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
### πΊοΈ Viewport
|
|
350
|
+
|
|
351
|
+
| Tool | Key Params | What it does |
|
|
352
|
+
|---|---|---|
|
|
353
|
+
| `blender_set_viewport_view` | `view` | Set view (TOP/FRONT/SIDE/CAMERA) |
|
|
354
|
+
| `blender_set_viewport_shading` | `shading` | Set shading (WIREFRAME/SOLID/MATERIAL/RENDERED) |
|
|
355
|
+
| `blender_frame_all` | β | Zoom to fit all objects |
|
|
356
|
+
| `blender_frame_selected` | β | Zoom to fit selection |
|
|
357
|
+
| `blender_toggle_xray` | `enabled` | Toggle X-Ray mode |
|
|
358
|
+
| `blender_toggle_overlays` | `enabled` | Toggle overlays |
|
|
359
|
+
| `blender_toggle_local_view` | `enable` | Local view for selection |
|
|
360
|
+
| `blender_orbit_viewport` | `angle` | Orbit the viewport |
|
|
361
|
+
| `blender_pan_viewport` | `offset` | Pan the viewport |
|
|
362
|
+
| `blender_zoom_viewport` | `factor` | Zoom viewport |
|
|
363
|
+
|
|
364
|
+
---
|
|
365
|
+
|
|
366
|
+
### π¦ Export & Files
|
|
367
|
+
|
|
368
|
+
| Tool | Key Params | What it does |
|
|
369
|
+
|---|---|---|
|
|
370
|
+
| `blender_export_glb` | `filepath` | Export GLB (GLTF binary) |
|
|
371
|
+
| `blender_export_fbx` | `filepath, applyScale, useSelected` | Export FBX |
|
|
372
|
+
| `blender_export_obj` | `filepath, useSelected` | Export OBJ |
|
|
373
|
+
| `blender_save_file` | β | Save current `.blend` |
|
|
374
|
+
| `blender_save_file_as` | `filepath` | Save to new path |
|
|
375
|
+
| `blender_open_file` | `filepath` | Open a `.blend` file |
|
|
376
|
+
| `blender_get_current_file` | β | Get current file path |
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
### πΎ Checkpoints
|
|
381
|
+
|
|
382
|
+
| Tool | Key Params | What it does |
|
|
383
|
+
|---|---|---|
|
|
384
|
+
| `blender_save_checkpoint` | `label` | Save snapshot |
|
|
385
|
+
| `blender_list_checkpoints` | β | List all checkpoints |
|
|
386
|
+
| `blender_rollback_checkpoint` | `path` | Restore a checkpoint |
|
|
387
|
+
|
|
388
|
+
---
|
|
389
|
+
|
|
390
|
+
### βοΈ Python Escape Hatch
|
|
391
|
+
|
|
392
|
+
| Tool | Key Params | What it does |
|
|
393
|
+
|---|---|---|
|
|
394
|
+
| `blender_execute_python` | `code` | Run arbitrary `bpy` Python code |
|
|
395
|
+
|
|
396
|
+
Use this for: shader nodes, UV unwrapping, geometry nodes, custom modifiers, armature/rigging, advanced animation, anything not in the lists above.
|
|
397
|
+
|
|
398
|
+
---
|
|
399
|
+
|
|
400
|
+
## π Standard Workflow Loop
|
|
401
|
+
|
|
402
|
+
> **Inspect β Checkpoint β Mutate β Verify**
|
|
403
|
+
|
|
404
|
+
1. `blender_ping` β confirm connection
|
|
405
|
+
2. `blender_get_scene_info` β understand the scene
|
|
406
|
+
3. `blender_save_checkpoint` β before risky changes
|
|
407
|
+
4. Execute operation (tool or `blender_execute_python`)
|
|
408
|
+
5. `blender_inspect_object` or `blender_get_scene_info` β verify result
|
|
409
|
+
6. `blender_render_viewport` β optional visual confirmation
|
|
410
|
+
|
|
411
|
+
---
|
|
412
|
+
|
|
413
|
+
## Core Anti-Hallucination Rules
|
|
414
|
+
|
|
415
|
+
- **Never invent** objects, materials, renders, file paths, or tool results.
|
|
416
|
+
- **`status: "registered"` = nothing happened.** Always follow up with `blender_execute_python`.
|
|
417
|
+
- Inspect before mutating. Never assume active object, mode, or selection.
|
|
418
|
+
- Reinspect after mutations.
|
|
419
|
+
- Use checkpoints before destructive or broad changes.
|
|
420
|
+
- Do not claim geometry is manifold/UV-mapped/game-ready without audit evidence.
|
|
421
|
+
- Do not claim a render succeeded unless an image path was returned.
|
|
422
|
+
- Do not use Blender tools for Godot nodes or web DOM.
|
|
423
|
+
|
|
424
|
+
---
|
|
425
|
+
|
|
426
|
+
## Verification Checklist
|
|
427
|
+
|
|
428
|
+
| Claim | Required Evidence |
|
|
429
|
+
|---|---|
|
|
430
|
+
| "Blender is connected" | `blender_ping` succeeded |
|
|
431
|
+
| "Object created/modified" | Tool returned ok + confirmed in `blender_get_scene_info` |
|
|
432
|
+
| "Render produced" | Image file path returned and confirmed |
|
|
433
|
+
| "Mesh is manifold" | `blender_get_scene_audit` reports 0 non-manifold edges |
|
|
434
|
+
| "Asset is game-ready" | Tris under budget, scale (1,1,1) applied, GLB export succeeded |
|
|
435
|
+
| "Python ran successfully" | `blender_execute_python` returned `status: ok` with result dict |
|
|
436
|
+
|
|
437
|
+
---
|
|
438
|
+
|
|
439
|
+
## Serena (Semantic Code)
|
|
440
|
+
|
|
441
|
+
Use Serena **only** for `bpy` addon source code β symbol lookup, operator classes, panel definitions.
|
|
442
|
+
|
|
443
|
+
Do **not** use Serena for live scene state. Use `blender_get_scene_info` and `blender_inspect_object` instead.
|
|
444
|
+
|
|
445
|
+
---
|
|
446
|
+
|
|
447
|
+
## Security Restrictions
|
|
448
|
+
|
|
449
|
+
- All file paths must be inside the approved Auvrynt workspace.
|
|
450
|
+
- `blender_execute_python` blocks `os.system`, `subprocess`, network access, and secrets.
|
|
451
|
+
- Socket communication is bound to `127.0.0.1:9876` and never exposed publicly.
|
|
452
|
+
|
|
453
|
+
---
|
|
454
|
+
|
|
455
|
+
## Response Format
|
|
456
|
+
|
|
457
|
+
```text
|
|
458
|
+
Changes:
|
|
459
|
+
- ...
|
|
460
|
+
|
|
461
|
+
Files affected:
|
|
462
|
+
- ...
|
|
463
|
+
|
|
464
|
+
Scene verification:
|
|
465
|
+
- ...
|
|
466
|
+
|
|
467
|
+
Visual verification (render path if applicable):
|
|
468
|
+
- ...
|
|
469
|
+
|
|
470
|
+
Notes/blockers:
|
|
471
|
+
- ...
|
|
472
|
+
```
|