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.
Files changed (550) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +366 -233
  3. package/addons/auvrynt_bridge/auvrynt_bridge.gd +500 -0
  4. package/addons/auvrynt_bridge/plugin.cfg +7 -0
  5. package/bin/auvrynt-launcher.cjs +77 -0
  6. package/dist/artifact-registry.js +1 -0
  7. package/dist/aseprite-tools.js +1 -0
  8. package/dist/auth/connection-registry.js +145 -0
  9. package/dist/auth/connection-status.js +176 -0
  10. package/dist/auth/oauth-provider.js +617 -0
  11. package/dist/auth/room-registry.js +131 -0
  12. package/dist/auth/session-registry.js +531 -0
  13. package/dist/background-lifecycle.js +1 -0
  14. package/dist/blender-client.js +1 -109
  15. package/dist/blender-tools.js +1 -930
  16. package/dist/browser-stability.js +1 -0
  17. package/dist/cli/commands/help-command.js +10 -0
  18. package/dist/cli/commands/init-command.js +190 -0
  19. package/dist/cli/commands/integration-commands.js +88 -0
  20. package/dist/cli/commands/serve-command.js +83 -0
  21. package/dist/cli/commands/setup-command.js +81 -0
  22. package/dist/cli/commands/status-commands.js +166 -0
  23. package/dist/cli/commands/tunnel-command.js +127 -0
  24. package/dist/cli/commands/user-config-commands.js +105 -0
  25. package/dist/cli/dashboard-actions.js +516 -0
  26. package/dist/cli/dashboard-native-actions.js +282 -0
  27. package/dist/cli/foreground-server.js +270 -0
  28. package/dist/cli/instance-control.js +21 -0
  29. package/dist/cli/instance-lock.js +123 -0
  30. package/dist/cli/integration-bootstrap.js +206 -0
  31. package/dist/cli/lifecycle-manager.js +493 -0
  32. package/dist/cli/runtime-support.js +74 -0
  33. package/dist/cli/serena-detected-default.js +27 -0
  34. package/dist/cli/tunnel-health-monitor.js +182 -0
  35. package/dist/cli.js +82 -739
  36. package/dist/config.js +1 -243
  37. package/dist/connection-registry.js +1 -73
  38. package/dist/connection-status.js +1 -139
  39. package/dist/control-retry.js +1 -0
  40. package/dist/crash-recovery.js +1 -0
  41. package/dist/db/client.js +16 -3
  42. package/dist/db/schema.js +30 -0
  43. package/dist/dotnet-tools.js +1 -223
  44. package/dist/git-worktrees.js +1 -134
  45. package/dist/git.js +1 -41
  46. package/dist/godot-animation-tilemap.js +1 -82
  47. package/dist/godot-csharp-build.js +1 -93
  48. package/dist/godot-csharp-project.js +1 -157
  49. package/dist/godot-csharp-runner.js +1 -146
  50. package/dist/godot-csharp-semantic.js +1 -161
  51. package/dist/godot-csharp-validate.js +1 -71
  52. package/dist/godot-dotnet-env.js +1 -169
  53. package/dist/godot-editor-bridge.js +1 -140
  54. package/dist/godot-gdscript.js +1 -824
  55. package/dist/godot-project-settings.js +1 -223
  56. package/dist/godot-runtime-testing.js +1 -249
  57. package/dist/godot-tools.js +1 -183
  58. package/dist/http-rate-limit.js +1 -0
  59. package/dist/http-server-hardening.js +1 -0
  60. package/dist/image-tools.js +1 -157
  61. package/dist/infrastructure/command-reference.js +32 -0
  62. package/dist/infrastructure/config.js +424 -0
  63. package/dist/infrastructure/context7-auth.js +55 -0
  64. package/dist/infrastructure/http-rate-limit.js +42 -0
  65. package/dist/infrastructure/http-server-hardening.js +23 -0
  66. package/dist/infrastructure/integration-queue.js +46 -0
  67. package/dist/infrastructure/logger.js +129 -0
  68. package/dist/infrastructure/mcp-event-store.js +103 -0
  69. package/dist/infrastructure/ngrok-auth-pool.js +208 -0
  70. package/dist/infrastructure/request-context.js +14 -0
  71. package/dist/infrastructure/shutdown.js +37 -0
  72. package/dist/infrastructure/sse-heartbeat.js +47 -0
  73. package/dist/infrastructure/tool-capabilities.js +67 -0
  74. package/dist/infrastructure/tool-result-budget.js +175 -0
  75. package/dist/infrastructure/user-config.js +167 -0
  76. package/dist/integration-discovery.js +1 -98
  77. package/dist/integration-queue.js +1 -0
  78. package/dist/integrations/agent-reach/agent-reach-tools.js +196 -0
  79. package/dist/integrations/agent-reach/native-channels.js +468 -0
  80. package/dist/integrations/aseprite/aseprite-analysis-tools.js +368 -0
  81. package/dist/integrations/aseprite/aseprite-editing-tools.js +647 -0
  82. package/dist/integrations/aseprite/aseprite-live-tools.js +297 -0
  83. package/dist/integrations/aseprite/aseprite-safety-tools.js +594 -0
  84. package/dist/integrations/aseprite/aseprite-specialized-tools.js +289 -0
  85. package/dist/integrations/aseprite/aseprite-tools.js +837 -0
  86. package/dist/integrations/blender/blender-catalog-mesh.js +593 -0
  87. package/dist/integrations/blender/blender-catalog-object.js +906 -0
  88. package/dist/integrations/blender/blender-catalog-scene.js +266 -0
  89. package/dist/integrations/blender/blender-catalog-select.js +581 -0
  90. package/dist/integrations/blender/blender-catalog-stubs.js +7512 -0
  91. package/dist/integrations/blender/blender-catalog.js +165 -0
  92. package/dist/integrations/blender/blender-client.js +105 -0
  93. package/dist/integrations/blender/blender-tools.js +2243 -0
  94. package/dist/integrations/context7/context7-tools.js +106 -0
  95. package/dist/integrations/dotnet/dotnet-tools.js +195 -0
  96. package/dist/integrations/godot/godot-animation-tilemap.js +74 -0
  97. package/dist/integrations/godot/godot-csharp-build.js +91 -0
  98. package/dist/integrations/godot/godot-csharp-project.js +155 -0
  99. package/dist/integrations/godot/godot-csharp-runner.js +118 -0
  100. package/dist/integrations/godot/godot-csharp-semantic.js +146 -0
  101. package/dist/integrations/godot/godot-csharp-validate.js +71 -0
  102. package/dist/integrations/godot/godot-dotnet-env.js +134 -0
  103. package/dist/integrations/godot/godot-editor-bridge.js +328 -0
  104. package/dist/integrations/godot/godot-gdscript.js +536 -0
  105. package/dist/integrations/godot/godot-project-settings.js +178 -0
  106. package/dist/integrations/godot/godot-runtime-testing.js +263 -0
  107. package/dist/integrations/godot/godot-tools.js +193 -0
  108. package/dist/integrations/images/image-tools.js +414 -0
  109. package/dist/integrations/images/png-codec.js +251 -0
  110. package/dist/integrations/images/view-image.js +99 -0
  111. package/dist/integrations/images/window-capture.js +148 -0
  112. package/dist/integrations/integration-discovery.js +185 -0
  113. package/dist/integrations/obsidian/obsidian-tools.js +205 -0
  114. package/dist/integrations/playwright/browser-session.js +516 -0
  115. package/dist/integrations/playwright/browser-stability.js +36 -0
  116. package/dist/integrations/playwright/playwright-runtime.js +105 -0
  117. package/dist/integrations/playwright/web-tools.js +504 -0
  118. package/dist/integrations/roblox/roblox-helpers.js +381 -0
  119. package/dist/integrations/roblox/roblox-studio-client.js +112 -0
  120. package/dist/integrations/roblox/roblox-tools.js +106 -0
  121. package/dist/integrations/serena/serena-manager.js +464 -0
  122. package/dist/integrations/serena/serena-tools.js +411 -0
  123. package/dist/logger.js +1 -76
  124. package/dist/mcp-event-store.js +1 -0
  125. package/dist/oauth-provider.js +1 -377
  126. package/dist/pi-tools.js +1 -81
  127. package/dist/playwright-runtime.js +1 -0
  128. package/dist/process/background-lifecycle.js +189 -0
  129. package/dist/process/control-retry.js +42 -0
  130. package/dist/process/crash-recovery.js +23 -0
  131. package/dist/process/processes.js +456 -0
  132. package/dist/processes.js +1 -218
  133. package/dist/request-context.js +1 -0
  134. package/dist/review-checkpoints.js +1 -142
  135. package/dist/room-registry.js +1 -0
  136. package/dist/roots.js +1 -53
  137. package/dist/search-discovery.js +1 -271
  138. package/dist/serena-manager.js +1 -443
  139. package/dist/serena-tools.js +1 -411
  140. package/dist/server/dashboard-page-styles.js +331 -0
  141. package/dist/server/dashboard-page.js +1509 -0
  142. package/dist/server/dashboard-routes.js +46 -0
  143. package/dist/server/dashboard.js +240 -0
  144. package/dist/server/http-helpers.js +30 -0
  145. package/dist/server/integration-profile-update.js +37 -0
  146. package/dist/server/mcp-policy.js +169 -0
  147. package/dist/server/mcp-server-factory.js +127 -0
  148. package/dist/server/mcp-tool-registrar.js +182 -0
  149. package/dist/server/openai-session-hint.js +14 -0
  150. package/dist/server/tool-groups.js +29 -0
  151. package/dist/server/tool-logging.js +33 -0
  152. package/dist/server/tool-registration-shared.js +59 -0
  153. package/dist/server/tools/aseprite-advanced-tools-registration.js +547 -0
  154. package/dist/server/tools/aseprite-tools-registration.js +213 -0
  155. package/dist/server/tools/blender-tools-registration.js +690 -0
  156. package/dist/server/tools/core-file-tools-registration.js +459 -0
  157. package/dist/server/tools/dotnet-godot-window-tools-registration.js +120 -0
  158. package/dist/server/tools/godot-csharp-tools-registration.js +252 -0
  159. package/dist/server/tools/godot-gdscript-tools-registration.js +189 -0
  160. package/dist/server/tools/process-project-tools-registration.js +155 -0
  161. package/dist/server/tools/roblox-tools-registration.js +514 -0
  162. package/dist/server/tools/web-image-tools-registration.js +326 -0
  163. package/dist/server/tools/workspace-lifecycle-tools-registration.js +130 -0
  164. package/dist/server/ui-assets.js +97 -0
  165. package/dist/server/workspace-analytics.js +92 -0
  166. package/dist/server.js +453 -2713
  167. package/dist/session-registry.js +1 -0
  168. package/dist/shutdown.js +1 -0
  169. package/dist/skills.js +1 -45
  170. package/dist/sse-heartbeat.js +1 -0
  171. package/dist/tool-capabilities.js +1 -0
  172. package/dist/tool-result-budget.js +1 -0
  173. package/dist/tools/pi-tools.js +81 -0
  174. package/dist/tunnels/cloudflare-tunnel.js +217 -0
  175. package/dist/tunnels/cloudflared-service.js +174 -0
  176. package/dist/tunnels/ngrok-tunnel.js +220 -0
  177. package/dist/tunnels/tunnel-manager.js +186 -0
  178. package/dist/tunnels/tunnel-types.js +1 -0
  179. package/dist/tunnels/tunnel-utils.js +62 -0
  180. package/dist/ui/.vite/manifest.json +9 -2487
  181. package/dist/ui/assets/heavy-payload-D42A9ceL.js +1 -0
  182. package/dist/ui/assets/lightweight-diff-Cv4g9Hdr.js +13 -0
  183. package/dist/ui/assets/review-payload-DKIg1cKF.js +1 -0
  184. package/dist/ui/assets/workspace-app-CeK3NhmB.css +1 -0
  185. package/dist/ui/assets/{workspace-app-C5QsE314.js β†’ workspace-app-CkUXnpl4.js} +6 -6
  186. package/dist/ui/brand-theme.js +23 -0
  187. package/dist/ui/workspace-app.html +15 -15
  188. package/dist/user-config.js +1 -57
  189. package/dist/view-image.js +1 -104
  190. package/dist/web-tools.js +1 -200
  191. package/dist/window-capture.js +1 -74
  192. package/dist/workspace/artifact-registry.js +69 -0
  193. package/dist/workspace/git-worktrees.js +141 -0
  194. package/dist/workspace/git.js +42 -0
  195. package/dist/workspace/review-checkpoints.js +142 -0
  196. package/dist/workspace/roots.js +56 -0
  197. package/dist/workspace/search-discovery.js +264 -0
  198. package/dist/workspace/skills.js +45 -0
  199. package/dist/workspace/workspace-store.js +219 -0
  200. package/dist/workspace/workspaces.js +314 -0
  201. package/dist/workspace-store.js +1 -125
  202. package/dist/workspaces.js +1 -226
  203. package/docs/CREATOR_STORE_FREE_ASSETS.md +162 -0
  204. package/docs/DEVELOPMENT_TOOLS.md +136 -93
  205. package/docs/assets/auvrynt-icon.png +0 -0
  206. package/docs/assets/auvrynt-icon.svg +20 -0
  207. package/docs/chatgpt-coding-workflow.md +143 -143
  208. package/docs/configuration.md +156 -124
  209. package/docs/diagnostics.md +79 -0
  210. package/docs/gotchas.md +244 -202
  211. package/docs/multi-agent-and-long-projects.md +91 -0
  212. package/docs/security.md +138 -100
  213. package/docs/setup.md +171 -131
  214. package/docs/source-layout.md +60 -0
  215. package/extensions/auvrynt_bridge/auvrynt_bridge.lua +594 -0
  216. package/extensions/auvrynt_bridge/live_analysis.lua +181 -0
  217. package/extensions/auvrynt_bridge/live_animation.lua +134 -0
  218. package/extensions/auvrynt_bridge/live_commands.lua +24 -0
  219. package/extensions/auvrynt_bridge/live_common.lua +130 -0
  220. package/extensions/auvrynt_bridge/live_document.lua +78 -0
  221. package/extensions/auvrynt_bridge/live_drawing.lua +125 -0
  222. package/extensions/auvrynt_bridge/live_effects.lua +91 -0
  223. package/extensions/auvrynt_bridge/live_palette_template.lua +167 -0
  224. package/extensions/auvrynt_bridge/live_selection.lua +110 -0
  225. package/extensions/auvrynt_bridge/live_structure.lua +129 -0
  226. package/extensions/auvrynt_bridge/package.json +17 -0
  227. package/guides/ASEPRITE_AGENT_GUIDE.md +133 -0
  228. package/guides/BLENDER_AGENT_GUIDE.md +472 -0
  229. package/guides/GODOT_AGENT_GUIDE.md +298 -0
  230. package/guides/PROJECT_ROUTER.md +165 -0
  231. package/guides/ROBLOX_AGENT_GUIDE.md +75 -0
  232. package/guides/SOFTWARE_AGENT_GUIDE.md +104 -0
  233. package/guides/WEB_AGENT_GUIDE.md +287 -0
  234. package/package.json +78 -70
  235. package/scripts/dev-server.mjs +121 -120
  236. package/scripts/live-tunnel-smoke.mjs +538 -0
  237. package/scripts/repo-hygiene.mjs +74 -0
  238. package/scripts/restart-after-crash.mjs +49 -0
  239. package/scripts/run-tests.mjs +166 -0
  240. package/dist/ui/assets/abap-CLvhMVsD.js +0 -1
  241. package/dist/ui/assets/actionscript-3--17pq3dv.js +0 -1
  242. package/dist/ui/assets/ada-C5qYipkI.js +0 -1
  243. package/dist/ui/assets/andromeeda-vGVdxbeo.js +0 -1
  244. package/dist/ui/assets/angular-html-BJqQFYI6.js +0 -1
  245. package/dist/ui/assets/angular-ts-CMJECO0Y.js +0 -1
  246. package/dist/ui/assets/apache-U0d_L8uA.js +0 -1
  247. package/dist/ui/assets/apex-CGTLDQj6.js +0 -1
  248. package/dist/ui/assets/apl-DWeXpBBr.js +0 -1
  249. package/dist/ui/assets/applescript-CCn79oCD.js +0 -1
  250. package/dist/ui/assets/ara-4CJ0cIlV.js +0 -1
  251. package/dist/ui/assets/asciidoc-DE70LPWp.js +0 -1
  252. package/dist/ui/assets/asm-Cmm7eHzH.js +0 -1
  253. package/dist/ui/assets/astro-CLbttLOq.js +0 -1
  254. package/dist/ui/assets/aurora-x-CDeNXAV0.js +0 -1
  255. package/dist/ui/assets/awk-BWXHIvNe.js +0 -1
  256. package/dist/ui/assets/ayu-dark-DluEY0Gj.js +0 -1
  257. package/dist/ui/assets/ayu-light-C3h-C4tm.js +0 -1
  258. package/dist/ui/assets/ayu-mirage-Bqwy1Gya.js +0 -1
  259. package/dist/ui/assets/ballerina-B7ZEbQpA.js +0 -1
  260. package/dist/ui/assets/bat-Bo4NYOV-.js +0 -1
  261. package/dist/ui/assets/beancount-D-usSTwE.js +0 -1
  262. package/dist/ui/assets/berry-DKpUyyne.js +0 -1
  263. package/dist/ui/assets/bibtex-Ci_nEsc7.js +0 -1
  264. package/dist/ui/assets/bicep-CUHmPFLl.js +0 -1
  265. package/dist/ui/assets/bird2-C2hNVINV.js +0 -1
  266. package/dist/ui/assets/blade-BOzY0P2V.js +0 -1
  267. package/dist/ui/assets/bsl-BkkzgIyY.js +0 -1
  268. package/dist/ui/assets/c-BG-8uJvh.js +0 -1
  269. package/dist/ui/assets/c3-CnJL0r0V.js +0 -1
  270. package/dist/ui/assets/cadence-CQ2zXKGN.js +0 -1
  271. package/dist/ui/assets/cairo-DLTphjLi.js +0 -1
  272. package/dist/ui/assets/catppuccin-frappe-3VR1Za6u.js +0 -1
  273. package/dist/ui/assets/catppuccin-latte-DwIHMF0Q.js +0 -1
  274. package/dist/ui/assets/catppuccin-macchiato-DYnBP6_5.js +0 -1
  275. package/dist/ui/assets/catppuccin-mocha-DYhrFGRu.js +0 -1
  276. package/dist/ui/assets/clarity-SemFz856.js +0 -1
  277. package/dist/ui/assets/clojure-DqKBuwfJ.js +0 -1
  278. package/dist/ui/assets/cmake-Bj61d0ZC.js +0 -1
  279. package/dist/ui/assets/cobol-I_17IuGe.js +0 -1
  280. package/dist/ui/assets/codeowners-C8r90Shi.js +0 -1
  281. package/dist/ui/assets/codeql-oeQT6MSM.js +0 -1
  282. package/dist/ui/assets/coffee-C0B8hmok.js +0 -1
  283. package/dist/ui/assets/common-lisp-Cv5bFMCO.js +0 -1
  284. package/dist/ui/assets/coq-BrsZFFmf.js +0 -1
  285. package/dist/ui/assets/cpp-DDJXt6Vs.js +0 -1
  286. package/dist/ui/assets/crystal-Bexqace6.js +0 -1
  287. package/dist/ui/assets/csharp-Ct8U2NOr.js +0 -1
  288. package/dist/ui/assets/css-DSQhw_9R.js +0 -1
  289. package/dist/ui/assets/csv-Dx-8-gkx.js +0 -1
  290. package/dist/ui/assets/cue-CE9AQfxI.js +0 -1
  291. package/dist/ui/assets/cypher-ClKdZ_lG.js +0 -1
  292. package/dist/ui/assets/d-qD-0Kul2.js +0 -1
  293. package/dist/ui/assets/dark-plus-Cs2F2srj.js +0 -1
  294. package/dist/ui/assets/dart-DkHntEIa.js +0 -1
  295. package/dist/ui/assets/dax-BkyTk9wS.js +0 -1
  296. package/dist/ui/assets/desktop-Dlh5hvp9.js +0 -1
  297. package/dist/ui/assets/diff-woXpYk--.js +0 -1
  298. package/dist/ui/assets/docker-IyjqRm3v.js +0 -1
  299. package/dist/ui/assets/dotenv-_5a1GRtc.js +0 -1
  300. package/dist/ui/assets/dracula-BHWKrbxM.js +0 -1
  301. package/dist/ui/assets/dracula-soft-5eyTD99u.js +0 -1
  302. package/dist/ui/assets/dream-maker-DW3nJb8Q.js +0 -1
  303. package/dist/ui/assets/edge-Z8YYkHOr.js +0 -1
  304. package/dist/ui/assets/elixir-CG9uKtAF.js +0 -1
  305. package/dist/ui/assets/elm-GfWG2IfT.js +0 -1
  306. package/dist/ui/assets/emacs-lisp-C9PiwqqW.js +0 -1
  307. package/dist/ui/assets/erb-xe89e73J.js +0 -1
  308. package/dist/ui/assets/erlang-Cphh6RMH.js +0 -1
  309. package/dist/ui/assets/everforest-dark-sB-x3p7T.js +0 -1
  310. package/dist/ui/assets/everforest-light-Df2xbC6M.js +0 -1
  311. package/dist/ui/assets/fennel-DQxkIbk2.js +0 -1
  312. package/dist/ui/assets/fish-BJitypiv.js +0 -1
  313. package/dist/ui/assets/fluent-C03EYrpw.js +0 -1
  314. package/dist/ui/assets/fortran-fixed-form-DEKoE2YW.js +0 -1
  315. package/dist/ui/assets/fortran-free-form-CYNrtFtB.js +0 -1
  316. package/dist/ui/assets/fsharp-D13ZGOAj.js +0 -1
  317. package/dist/ui/assets/gdresource-C0sCabJj.js +0 -1
  318. package/dist/ui/assets/gdscript-Cp2uCuqX.js +0 -1
  319. package/dist/ui/assets/gdshader-CBce3t8t.js +0 -1
  320. package/dist/ui/assets/genie-CV2tkWYe.js +0 -1
  321. package/dist/ui/assets/gherkin-DExj1W_8.js +0 -1
  322. package/dist/ui/assets/git-commit-BSykSTBG.js +0 -1
  323. package/dist/ui/assets/git-rebase-CoTL_uSE.js +0 -1
  324. package/dist/ui/assets/github-dark-C-LZuMrd.js +0 -1
  325. package/dist/ui/assets/github-dark-default-DXG-b-1a.js +0 -1
  326. package/dist/ui/assets/github-dark-dimmed-Bx1FflLF.js +0 -1
  327. package/dist/ui/assets/github-dark-high-contrast-B_tTalzw.js +0 -1
  328. package/dist/ui/assets/github-light-EUqPIrTm.js +0 -1
  329. package/dist/ui/assets/github-light-default-BXViO-2h.js +0 -1
  330. package/dist/ui/assets/github-light-high-contrast-B68TUdTA.js +0 -1
  331. package/dist/ui/assets/gleam-CSRkHgEL.js +0 -1
  332. package/dist/ui/assets/glimmer-js-DAn4UCSu.js +0 -1
  333. package/dist/ui/assets/glimmer-ts-Tjyi6Gh5.js +0 -1
  334. package/dist/ui/assets/glsl-CtTDZoqR.js +0 -1
  335. package/dist/ui/assets/gn-ilITqXS6.js +0 -1
  336. package/dist/ui/assets/gnuplot-7GGW24-e.js +0 -1
  337. package/dist/ui/assets/go-BJwz_mda.js +0 -1
  338. package/dist/ui/assets/graphql-D5gcC_Jk.js +0 -1
  339. package/dist/ui/assets/groovy-CacY0gHj.js +0 -1
  340. package/dist/ui/assets/gruvbox-dark-hard-C820rvS2.js +0 -1
  341. package/dist/ui/assets/gruvbox-dark-medium-BPjhmG05.js +0 -1
  342. package/dist/ui/assets/gruvbox-dark-soft-MrdJrrXF.js +0 -1
  343. package/dist/ui/assets/gruvbox-light-hard-BC_s9l72.js +0 -1
  344. package/dist/ui/assets/gruvbox-light-medium-BAWPOn9u.js +0 -1
  345. package/dist/ui/assets/gruvbox-light-soft-BSMLrYjP.js +0 -1
  346. package/dist/ui/assets/hack-BJXY27dt.js +0 -1
  347. package/dist/ui/assets/haml-BLfFoZf7.js +0 -1
  348. package/dist/ui/assets/handlebars-Dw6CWkvN.js +0 -1
  349. package/dist/ui/assets/haskell-D8IpX4py.js +0 -1
  350. package/dist/ui/assets/haxe-OTjmBuCE.js +0 -1
  351. package/dist/ui/assets/hcl-Dh228itO.js +0 -1
  352. package/dist/ui/assets/heavy-payload-Dcg0-F-S.js +0 -4
  353. package/dist/ui/assets/hjson-CxZEssPk.js +0 -1
  354. package/dist/ui/assets/hlsl-Cvrh5tZx.js +0 -1
  355. package/dist/ui/assets/horizon-CE9ld1lL.js +0 -1
  356. package/dist/ui/assets/horizon-bright-Br1oVSNq.js +0 -1
  357. package/dist/ui/assets/houston-CsvMBhTu.js +0 -1
  358. package/dist/ui/assets/html-CAcAWvoN.js +0 -1
  359. package/dist/ui/assets/html-derivative-8aSW2E_7.js +0 -1
  360. package/dist/ui/assets/http-B2YR_3V1.js +0 -1
  361. package/dist/ui/assets/hurl-BnDJ9Zhf.js +0 -1
  362. package/dist/ui/assets/hxml-B0Qn7Nwc.js +0 -1
  363. package/dist/ui/assets/hy-CZbG8q4J.js +0 -1
  364. package/dist/ui/assets/imba-DsUTQ-LC.js +0 -1
  365. package/dist/ui/assets/ini-B5eOa1yu.js +0 -1
  366. package/dist/ui/assets/java-Doxi4W8u.js +0 -1
  367. package/dist/ui/assets/javascript-BbRdEqti.js +0 -1
  368. package/dist/ui/assets/jinja-CS3Tpv_Q.js +0 -1
  369. package/dist/ui/assets/jison-BkPGYVHR.js +0 -1
  370. package/dist/ui/assets/json-BMt1m3m8.js +0 -1
  371. package/dist/ui/assets/json5-BR5RXkoi.js +0 -1
  372. package/dist/ui/assets/jsonc-CYpm1nAK.js +0 -1
  373. package/dist/ui/assets/jsonl-CmCQp5Yx.js +0 -1
  374. package/dist/ui/assets/jsonnet-CJTPZ8u_.js +0 -1
  375. package/dist/ui/assets/jssm-DXw9l8Rf.js +0 -1
  376. package/dist/ui/assets/jsx-CQKrJXXY.js +0 -1
  377. package/dist/ui/assets/julia-BuN7i2du.js +0 -1
  378. package/dist/ui/assets/just-BswEPFPu.js +0 -1
  379. package/dist/ui/assets/kanagawa-dragon-CXtmUGW6.js +0 -1
  380. package/dist/ui/assets/kanagawa-lotus-BN08jTvb.js +0 -1
  381. package/dist/ui/assets/kanagawa-wave-CTweb8Dz.js +0 -1
  382. package/dist/ui/assets/kdl-CsD5j6eV.js +0 -1
  383. package/dist/ui/assets/kotlin-DhhofPvG.js +0 -1
  384. package/dist/ui/assets/kusto-BUv0MjJC.js +0 -1
  385. package/dist/ui/assets/laserwave-C_8bwKvT.js +0 -1
  386. package/dist/ui/assets/latex-DU2VyFfA.js +0 -1
  387. package/dist/ui/assets/lean-CewbzKMR.js +0 -1
  388. package/dist/ui/assets/less-DVTAwKKz.js +0 -1
  389. package/dist/ui/assets/light-plus-DVQuIRkW.js +0 -1
  390. package/dist/ui/assets/liquid-Cmz1L3dq.js +0 -1
  391. package/dist/ui/assets/llvm-Cm23YOpf.js +0 -1
  392. package/dist/ui/assets/log-BNLmms1o.js +0 -1
  393. package/dist/ui/assets/logo-Cluzi2Zq.js +0 -1
  394. package/dist/ui/assets/lua-CfVXhkaJ.js +0 -1
  395. package/dist/ui/assets/luau-CNKltnaQ.js +0 -1
  396. package/dist/ui/assets/make-Dixweg8N.js +0 -1
  397. package/dist/ui/assets/markdown-BYOwaDjH.js +0 -1
  398. package/dist/ui/assets/marko-C5bfqGiA.js +0 -1
  399. package/dist/ui/assets/material-theme-Bm3Qr25_.js +0 -1
  400. package/dist/ui/assets/material-theme-darker-2IIEA8gg.js +0 -1
  401. package/dist/ui/assets/material-theme-lighter-uhdI0v04.js +0 -1
  402. package/dist/ui/assets/material-theme-ocean-CHQ94UKr.js +0 -1
  403. package/dist/ui/assets/material-theme-palenight-B5W6OYN7.js +0 -1
  404. package/dist/ui/assets/matlab-D7qyCx1q.js +0 -1
  405. package/dist/ui/assets/mdc-CVBXYfyq.js +0 -1
  406. package/dist/ui/assets/mdx-DQZ5AkYe.js +0 -1
  407. package/dist/ui/assets/mermaid-Bk4SNUv9.js +0 -1
  408. package/dist/ui/assets/min-dark-BSWPekZh.js +0 -1
  409. package/dist/ui/assets/min-light-DDpmG2fV.js +0 -1
  410. package/dist/ui/assets/mipsasm-BMqwQI7S.js +0 -1
  411. package/dist/ui/assets/mojo-BgCJLMeH.js +0 -1
  412. package/dist/ui/assets/monokai-CdkpiU2Y.js +0 -1
  413. package/dist/ui/assets/moonbit-CaWjb8XO.js +0 -1
  414. package/dist/ui/assets/move-B1IS1UjX.js +0 -1
  415. package/dist/ui/assets/narrat-_X_XdTYD.js +0 -1
  416. package/dist/ui/assets/nextflow-Bbiyy34d.js +0 -1
  417. package/dist/ui/assets/nextflow-groovy-Dc_ddanL.js +0 -1
  418. package/dist/ui/assets/nginx-CzJafxLa.js +0 -1
  419. package/dist/ui/assets/night-owl-DhmEMT88.js +0 -1
  420. package/dist/ui/assets/night-owl-light-eJ-hLW7d.js +0 -1
  421. package/dist/ui/assets/nim-DABKtHtM.js +0 -1
  422. package/dist/ui/assets/nix-IvuFDN5E.js +0 -1
  423. package/dist/ui/assets/nord-Cb4Vim4T.js +0 -1
  424. package/dist/ui/assets/nushell-DcLAeLz5.js +0 -1
  425. package/dist/ui/assets/objective-c-D1A_Heim.js +0 -1
  426. package/dist/ui/assets/objective-cpp-BsSzOQcm.js +0 -1
  427. package/dist/ui/assets/ocaml-O90oeIOV.js +0 -1
  428. package/dist/ui/assets/odin-B1RWQWA5.js +0 -1
  429. package/dist/ui/assets/one-dark-pro-CLwyXe_n.js +0 -1
  430. package/dist/ui/assets/one-light-D7Lr4KcI.js +0 -1
  431. package/dist/ui/assets/openscad-BUDT5pXO.js +0 -1
  432. package/dist/ui/assets/pascal-4ZHwLPI5.js +0 -1
  433. package/dist/ui/assets/perl-CBh7L3lZ.js +0 -1
  434. package/dist/ui/assets/php-DFbI9q5p.js +0 -1
  435. package/dist/ui/assets/pierre-dark-sU4Zdns8.js +0 -1
  436. package/dist/ui/assets/pierre-dark-soft-HXgun5vs.js +0 -1
  437. package/dist/ui/assets/pierre-light-DWBk51d8.js +0 -1
  438. package/dist/ui/assets/pierre-light-soft-CodEzPxf.js +0 -1
  439. package/dist/ui/assets/pkl-ot-7Btpt.js +0 -1
  440. package/dist/ui/assets/plastic-DQwYfKfQ.js +0 -1
  441. package/dist/ui/assets/plsql-DGHpHOYJ.js +0 -1
  442. package/dist/ui/assets/po-BiJDBrnU.js +0 -1
  443. package/dist/ui/assets/poimandres-DRFjx7u4.js +0 -1
  444. package/dist/ui/assets/polar-C7UOKdEL.js +0 -1
  445. package/dist/ui/assets/postcss-BXeXVLqQ.js +0 -1
  446. package/dist/ui/assets/powerquery-DNMTfnFr.js +0 -1
  447. package/dist/ui/assets/powershell-DshXNtvi.js +0 -1
  448. package/dist/ui/assets/prisma-BsRQq5mF.js +0 -1
  449. package/dist/ui/assets/prolog-iXnhIJG7.js +0 -1
  450. package/dist/ui/assets/proto-DB4EqR-F.js +0 -1
  451. package/dist/ui/assets/pug-C_PxC7gO.js +0 -1
  452. package/dist/ui/assets/puppet-CDv2pdJW.js +0 -1
  453. package/dist/ui/assets/purescript-9MfHhQsQ.js +0 -1
  454. package/dist/ui/assets/python-gzcpVVnB.js +0 -1
  455. package/dist/ui/assets/qml-DtngoFFK.js +0 -1
  456. package/dist/ui/assets/qmldir-DCQb3MpD.js +0 -1
  457. package/dist/ui/assets/qss-Fe1Jh2GI.js +0 -1
  458. package/dist/ui/assets/r-DohkcevW.js +0 -1
  459. package/dist/ui/assets/racket-DcIDlBhZ.js +0 -1
  460. package/dist/ui/assets/raku-B3gFvitq.js +0 -1
  461. package/dist/ui/assets/razor-C4t8J0_E.js +0 -1
  462. package/dist/ui/assets/red-CJ3rzSJv.js +0 -1
  463. package/dist/ui/assets/reg-CRGYupPL.js +0 -1
  464. package/dist/ui/assets/regexp-OGbTbjgY.js +0 -1
  465. package/dist/ui/assets/rel-BtDbiS_P.js +0 -1
  466. package/dist/ui/assets/review-payload-C5Qz60Kq.js +0 -1
  467. package/dist/ui/assets/riscv-Ckw8ddFX.js +0 -1
  468. package/dist/ui/assets/ron-VUp2lXgN.js +0 -1
  469. package/dist/ui/assets/rose-pine-BthvhNj6.js +0 -1
  470. package/dist/ui/assets/rose-pine-dawn-Dg85fqjY.js +0 -1
  471. package/dist/ui/assets/rose-pine-moon-hon4tzzS.js +0 -1
  472. package/dist/ui/assets/rosmsg-CAekHB0j.js +0 -1
  473. package/dist/ui/assets/rst-CfBbbcvC.js +0 -1
  474. package/dist/ui/assets/ruby-Bw0mpxHY.js +0 -1
  475. package/dist/ui/assets/rust-Cfkwpbl8.js +0 -1
  476. package/dist/ui/assets/sas-Cs3s9JOf.js +0 -1
  477. package/dist/ui/assets/sass-DXrisJhu.js +0 -1
  478. package/dist/ui/assets/scala-DKOlJaKm.js +0 -1
  479. package/dist/ui/assets/scheme-DQCgrYNe.js +0 -1
  480. package/dist/ui/assets/scss-sRxNJS54.js +0 -1
  481. package/dist/ui/assets/sdbl-bTVj8UrX.js +0 -1
  482. package/dist/ui/assets/shaderlab-TOUzSsQk.js +0 -1
  483. package/dist/ui/assets/shellscript-B0X6wh0R.js +0 -1
  484. package/dist/ui/assets/shellsession-D2FdOioR.js +0 -1
  485. package/dist/ui/assets/slack-dark-DnToyrRv.js +0 -1
  486. package/dist/ui/assets/slack-ochin-B2OO5cIa.js +0 -1
  487. package/dist/ui/assets/smalltalk-B16xEiuN.js +0 -1
  488. package/dist/ui/assets/snazzy-light-4G7pJPwS.js +0 -1
  489. package/dist/ui/assets/solarized-dark-DV17i1UV.js +0 -1
  490. package/dist/ui/assets/solarized-light-DSh2HLQt.js +0 -1
  491. package/dist/ui/assets/solidity-CKzVLygQ.js +0 -1
  492. package/dist/ui/assets/soy-s6g9OjJ1.js +0 -1
  493. package/dist/ui/assets/sparql-D_iOobhT.js +0 -1
  494. package/dist/ui/assets/splunk-BC2Px7Mm.js +0 -1
  495. package/dist/ui/assets/sql-DVTnh5V-.js +0 -1
  496. package/dist/ui/assets/ssh-config-BgfXC-Er.js +0 -1
  497. package/dist/ui/assets/stata-DFIDiXF9.js +0 -1
  498. package/dist/ui/assets/stylus-B6D30XZt.js +0 -1
  499. package/dist/ui/assets/surrealql-DVfrsLyg.js +0 -1
  500. package/dist/ui/assets/svelte-D5GsxESq.js +0 -1
  501. package/dist/ui/assets/swift-DonLKvLd.js +0 -1
  502. package/dist/ui/assets/synthwave-84-nFMaYfgc.js +0 -1
  503. package/dist/ui/assets/system-verilog-DJ5XKQeo.js +0 -1
  504. package/dist/ui/assets/systemd-BxMlprV5.js +0 -1
  505. package/dist/ui/assets/talonscript-CohzipZa.js +0 -1
  506. package/dist/ui/assets/tasl-DMoTqEGO.js +0 -1
  507. package/dist/ui/assets/tcl-CZd0xW_V.js +0 -1
  508. package/dist/ui/assets/templ-DI-Zyqzd.js +0 -1
  509. package/dist/ui/assets/terraform-DswuEJGm.js +0 -1
  510. package/dist/ui/assets/tex-WHHmlbJI.js +0 -1
  511. package/dist/ui/assets/tokyo-night-oM2G3aXe.js +0 -1
  512. package/dist/ui/assets/toml-CcmNWLt0.js +0 -1
  513. package/dist/ui/assets/ts-tags-Dwpo2RFJ.js +0 -1
  514. package/dist/ui/assets/tsv-sltzmVWM.js +0 -1
  515. package/dist/ui/assets/tsx-ph_idaAW.js +0 -1
  516. package/dist/ui/assets/turtle-ByJddavk.js +0 -1
  517. package/dist/ui/assets/twig-YO17jFjR.js +0 -1
  518. package/dist/ui/assets/typescript-CbAxjhkl.js +0 -1
  519. package/dist/ui/assets/typespec-B88KGewJ.js +0 -1
  520. package/dist/ui/assets/typst-DI99ib-x.js +0 -1
  521. package/dist/ui/assets/useFileDiffInstance-B2DLX3Vg.js +0 -244
  522. package/dist/ui/assets/v-DETTlOr0.js +0 -1
  523. package/dist/ui/assets/vala-zf12oZj6.js +0 -1
  524. package/dist/ui/assets/vb-Djn5o6TS.js +0 -1
  525. package/dist/ui/assets/verilog-CiiDBU1e.js +0 -1
  526. package/dist/ui/assets/vesper-D5bVUKB1.js +0 -1
  527. package/dist/ui/assets/vhdl-BroJfC0k.js +0 -1
  528. package/dist/ui/assets/viml-DvXPmvsu.js +0 -1
  529. package/dist/ui/assets/vitesse-black-fwtXNY1n.js +0 -1
  530. package/dist/ui/assets/vitesse-dark-BZCL-v6S.js +0 -1
  531. package/dist/ui/assets/vitesse-light-VbXTXTou.js +0 -1
  532. package/dist/ui/assets/vue-CraHL-Ps.js +0 -1
  533. package/dist/ui/assets/vue-html-e9tyZNtS.js +0 -1
  534. package/dist/ui/assets/vue-vine-CofmxaUb.js +0 -1
  535. package/dist/ui/assets/vyper-CgoNMtux.js +0 -1
  536. package/dist/ui/assets/wasm-BnjxR4X6.js +0 -1
  537. package/dist/ui/assets/wasm-ByWQv1Qj.js +0 -1
  538. package/dist/ui/assets/wenyan-C8pVoKbM.js +0 -1
  539. package/dist/ui/assets/wgsl-BsKzXJz4.js +0 -1
  540. package/dist/ui/assets/wikitext-ClFFjSW2.js +0 -1
  541. package/dist/ui/assets/wit-DdvCle-K.js +0 -1
  542. package/dist/ui/assets/wolfram-DLL8P-h_.js +0 -1
  543. package/dist/ui/assets/workspace-app-8--oTbCd.css +0 -1
  544. package/dist/ui/assets/xml-BWSdPZHm.js +0 -1
  545. package/dist/ui/assets/xsl-BtCt7Hx8.js +0 -1
  546. package/dist/ui/assets/yaml-BZiTw7cQ.js +0 -1
  547. package/dist/ui/assets/zenscript-BnlCZFoB.js +0 -1
  548. package/dist/ui/assets/zig-CMLA9XwU.js +0 -1
  549. package/docs/assets/auvrynt-logo-light.png +0 -0
  550. 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
+ ```