@alpsckr/unitycli 0.4.0
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/README.md +389 -0
- package/contracts/command-contract.json +3972 -0
- package/contracts/stable-session/admission-acquire-v1.schema.json +16 -0
- package/contracts/stable-session/admission-response-v1.schema.json +30 -0
- package/contracts/stable-session/admission-revoke-v1.schema.json +15 -0
- package/contracts/stable-session/admission-transport-v1.json +36 -0
- package/contracts/stable-session/bridge-request-v2.schema.json +26 -0
- package/contracts/stable-session/canonical-path-v1-golden.json +23 -0
- package/contracts/stable-session/completion-contract.schema.json +46 -0
- package/contracts/stable-session/direct-call-semantics.json +102 -0
- package/contracts/stable-session/editor-state.schema.json +92 -0
- package/contracts/stable-session/health-v3.schema.json +47 -0
- package/contracts/stable-session/instance-registry-v3.schema.json +152 -0
- package/contracts/stable-session/removal-map.json +27 -0
- package/contracts/stable-session/request-digest-v1-golden.json +7 -0
- package/contracts/stable-session/runtime-config-v2.schema.json +27 -0
- package/contracts/static-capability-catalog.json +48226 -0
- package/contracts/tool-completion-contract.json +11322 -0
- package/dist/args.d.ts +27 -0
- package/dist/args.js +109 -0
- package/dist/args.js.map +1 -0
- package/dist/bridge/admission.d.ts +28 -0
- package/dist/bridge/admission.js +29 -0
- package/dist/bridge/admission.js.map +1 -0
- package/dist/bridge/args.d.ts +16 -0
- package/dist/bridge/args.js +123 -0
- package/dist/bridge/args.js.map +1 -0
- package/dist/bridge/domains/animation.d.ts +2 -0
- package/dist/bridge/domains/animation.js +199 -0
- package/dist/bridge/domains/animation.js.map +1 -0
- package/dist/bridge/domains/asset.d.ts +2 -0
- package/dist/bridge/domains/asset.js +85 -0
- package/dist/bridge/domains/asset.js.map +1 -0
- package/dist/bridge/domains/build.d.ts +2 -0
- package/dist/bridge/domains/build.js +35 -0
- package/dist/bridge/domains/build.js.map +1 -0
- package/dist/bridge/domains/camera.d.ts +2 -0
- package/dist/bridge/domains/camera.js +54 -0
- package/dist/bridge/domains/camera.js.map +1 -0
- package/dist/bridge/domains/code.d.ts +2 -0
- package/dist/bridge/domains/code.js +17 -0
- package/dist/bridge/domains/code.js.map +1 -0
- package/dist/bridge/domains/console.d.ts +2 -0
- package/dist/bridge/domains/console.js +34 -0
- package/dist/bridge/domains/console.js.map +1 -0
- package/dist/bridge/domains/diagnose.d.ts +2 -0
- package/dist/bridge/domains/diagnose.js +11 -0
- package/dist/bridge/domains/diagnose.js.map +1 -0
- package/dist/bridge/domains/editor.d.ts +2 -0
- package/dist/bridge/domains/editor.js +66 -0
- package/dist/bridge/domains/editor.js.map +1 -0
- package/dist/bridge/domains/extension.d.ts +8 -0
- package/dist/bridge/domains/extension.js +20 -0
- package/dist/bridge/domains/extension.js.map +1 -0
- package/dist/bridge/domains/game-object.d.ts +2 -0
- package/dist/bridge/domains/game-object.js +179 -0
- package/dist/bridge/domains/game-object.js.map +1 -0
- package/dist/bridge/domains/graphics.d.ts +2 -0
- package/dist/bridge/domains/graphics.js +185 -0
- package/dist/bridge/domains/graphics.js.map +1 -0
- package/dist/bridge/domains/material.d.ts +2 -0
- package/dist/bridge/domains/material.js +70 -0
- package/dist/bridge/domains/material.js.map +1 -0
- package/dist/bridge/domains/navmesh.d.ts +2 -0
- package/dist/bridge/domains/navmesh.js +34 -0
- package/dist/bridge/domains/navmesh.js.map +1 -0
- package/dist/bridge/domains/object.d.ts +2 -0
- package/dist/bridge/domains/object.js +43 -0
- package/dist/bridge/domains/object.js.map +1 -0
- package/dist/bridge/domains/occlusion.d.ts +2 -0
- package/dist/bridge/domains/occlusion.js +12 -0
- package/dist/bridge/domains/occlusion.js.map +1 -0
- package/dist/bridge/domains/package.d.ts +2 -0
- package/dist/bridge/domains/package.js +2 -0
- package/dist/bridge/domains/package.js.map +1 -0
- package/dist/bridge/domains/physics.d.ts +2 -0
- package/dist/bridge/domains/physics.js +139 -0
- package/dist/bridge/domains/physics.js.map +1 -0
- package/dist/bridge/domains/prefab.d.ts +2 -0
- package/dist/bridge/domains/prefab.js +104 -0
- package/dist/bridge/domains/prefab.js.map +1 -0
- package/dist/bridge/domains/profiler.d.ts +2 -0
- package/dist/bridge/domains/profiler.js +105 -0
- package/dist/bridge/domains/profiler.js.map +1 -0
- package/dist/bridge/domains/project-tool.d.ts +2 -0
- package/dist/bridge/domains/project-tool.js +46 -0
- package/dist/bridge/domains/project-tool.js.map +1 -0
- package/dist/bridge/domains/reflection.d.ts +2 -0
- package/dist/bridge/domains/reflection.js +48 -0
- package/dist/bridge/domains/reflection.js.map +1 -0
- package/dist/bridge/domains/runtime-tool.d.ts +2 -0
- package/dist/bridge/domains/runtime-tool.js +48 -0
- package/dist/bridge/domains/runtime-tool.js.map +1 -0
- package/dist/bridge/domains/scene.d.ts +2 -0
- package/dist/bridge/domains/scene.js +100 -0
- package/dist/bridge/domains/scene.js.map +1 -0
- package/dist/bridge/domains/screenshot.d.ts +2 -0
- package/dist/bridge/domains/screenshot.js +85 -0
- package/dist/bridge/domains/screenshot.js.map +1 -0
- package/dist/bridge/domains/scriptable-object.d.ts +2 -0
- package/dist/bridge/domains/scriptable-object.js +53 -0
- package/dist/bridge/domains/scriptable-object.js.map +1 -0
- package/dist/bridge/domains/shader.d.ts +2 -0
- package/dist/bridge/domains/shader.js +66 -0
- package/dist/bridge/domains/shader.js.map +1 -0
- package/dist/bridge/domains/texture.d.ts +2 -0
- package/dist/bridge/domains/texture.js +78 -0
- package/dist/bridge/domains/texture.js.map +1 -0
- package/dist/bridge/domains/timeline.d.ts +2 -0
- package/dist/bridge/domains/timeline.js +75 -0
- package/dist/bridge/domains/timeline.js.map +1 -0
- package/dist/bridge/domains/ui.d.ts +2 -0
- package/dist/bridge/domains/ui.js +193 -0
- package/dist/bridge/domains/ui.js.map +1 -0
- package/dist/bridge/index.d.ts +9 -0
- package/dist/bridge/index.js +124 -0
- package/dist/bridge/index.js.map +1 -0
- package/dist/bridge/registry.d.ts +19 -0
- package/dist/bridge/registry.js +114 -0
- package/dist/bridge/registry.js.map +1 -0
- package/dist/bridge/session-supervisor.d.ts +138 -0
- package/dist/bridge/session-supervisor.js +873 -0
- package/dist/bridge/session-supervisor.js.map +1 -0
- package/dist/bridge/types.d.ts +61 -0
- package/dist/bridge/types.js +17 -0
- package/dist/bridge/types.js.map +1 -0
- package/dist/capabilities.d.ts +5 -0
- package/dist/capabilities.js +84 -0
- package/dist/capabilities.js.map +1 -0
- package/dist/cli-commands/command.d.ts +7 -0
- package/dist/cli-commands/command.js +513 -0
- package/dist/cli-commands/command.js.map +1 -0
- package/dist/cli-commands/extension-auto-detect.d.ts +62 -0
- package/dist/cli-commands/extension-auto-detect.js +119 -0
- package/dist/cli-commands/extension-auto-detect.js.map +1 -0
- package/dist/cli-commands/extensions.d.ts +24 -0
- package/dist/cli-commands/extensions.js +428 -0
- package/dist/cli-commands/extensions.js.map +1 -0
- package/dist/cli-commands/package.d.ts +4 -0
- package/dist/cli-commands/package.js +151 -0
- package/dist/cli-commands/package.js.map +1 -0
- package/dist/cli-commands/skill-installer.d.ts +83 -0
- package/dist/cli-commands/skill-installer.js +703 -0
- package/dist/cli-commands/skill-installer.js.map +1 -0
- package/dist/cli-commands/types.d.ts +17 -0
- package/dist/cli-commands/types.js +2 -0
- package/dist/cli-commands/types.js.map +1 -0
- package/dist/cli.d.ts +17 -0
- package/dist/cli.js +302 -0
- package/dist/cli.js.map +1 -0
- package/dist/contracts/command-contract.d.ts +21 -0
- package/dist/contracts/command-contract.js +143 -0
- package/dist/contracts/command-contract.js.map +1 -0
- package/dist/contracts/csharp-command-extractor.d.ts +1 -0
- package/dist/contracts/csharp-command-extractor.js +89 -0
- package/dist/contracts/csharp-command-extractor.js.map +1 -0
- package/dist/contracts/validate-command-contract.d.ts +1 -0
- package/dist/contracts/validate-command-contract.js +86 -0
- package/dist/contracts/validate-command-contract.js.map +1 -0
- package/dist/doctor.d.ts +22 -0
- package/dist/doctor.js +498 -0
- package/dist/doctor.js.map +1 -0
- package/dist/editor-blocker-observer.d.ts +45 -0
- package/dist/editor-blocker-observer.js +55 -0
- package/dist/editor-blocker-observer.js.map +1 -0
- package/dist/editor-dialogs.d.ts +53 -0
- package/dist/editor-dialogs.js +79 -0
- package/dist/editor-dialogs.js.map +1 -0
- package/dist/extension-availability.d.ts +30 -0
- package/dist/extension-availability.js +83 -0
- package/dist/extension-availability.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/cinemachine.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/cinemachine.js +104 -0
- package/dist/extensions/.generated-bridge-domains/cinemachine.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/hdrp.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/hdrp.js +35 -0
- package/dist/extensions/.generated-bridge-domains/hdrp.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/probuilder.d.ts +13 -0
- package/dist/extensions/.generated-bridge-domains/probuilder.js +342 -0
- package/dist/extensions/.generated-bridge-domains/probuilder.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/urp.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/urp.js +52 -0
- package/dist/extensions/.generated-bridge-domains/urp.js.map +1 -0
- package/dist/extensions/.generated-bridge-domains/vfx.d.ts +2 -0
- package/dist/extensions/.generated-bridge-domains/vfx.js +312 -0
- package/dist/extensions/.generated-bridge-domains/vfx.js.map +1 -0
- package/dist/extensions/.generated-registry-data.d.ts +7 -0
- package/dist/extensions/.generated-registry-data.js +895 -0
- package/dist/extensions/.generated-registry-data.js.map +1 -0
- package/dist/extensions/contribution-loader.d.ts +27 -0
- package/dist/extensions/contribution-loader.js +60 -0
- package/dist/extensions/contribution-loader.js.map +1 -0
- package/dist/extensions/descriptor-loader.d.ts +73 -0
- package/dist/extensions/descriptor-loader.js +126 -0
- package/dist/extensions/descriptor-loader.js.map +1 -0
- package/dist/extensions/index.d.ts +19 -0
- package/dist/extensions/index.js +23 -0
- package/dist/extensions/index.js.map +1 -0
- package/dist/extensions/installer.d.ts +80 -0
- package/dist/extensions/installer.js +594 -0
- package/dist/extensions/installer.js.map +1 -0
- package/dist/extensions/metadata/index.d.ts +15 -0
- package/dist/extensions/metadata/index.js +41 -0
- package/dist/extensions/metadata/index.js.map +1 -0
- package/dist/extensions/metadata/types.d.ts +38 -0
- package/dist/extensions/metadata/types.js +11 -0
- package/dist/extensions/metadata/types.js.map +1 -0
- package/dist/extensions/project-resolver.d.ts +35 -0
- package/dist/extensions/project-resolver.js +61 -0
- package/dist/extensions/project-resolver.js.map +1 -0
- package/dist/extensions/registry.d.ts +86 -0
- package/dist/extensions/registry.js +262 -0
- package/dist/extensions/registry.js.map +1 -0
- package/dist/extensions/tool-manifest.d.ts +29 -0
- package/dist/extensions/tool-manifest.js +53 -0
- package/dist/extensions/tool-manifest.js.map +1 -0
- package/dist/extensions/types.d.ts +115 -0
- package/dist/extensions/types.js +12 -0
- package/dist/extensions/types.js.map +1 -0
- package/dist/instances.d.ts +163 -0
- package/dist/instances.js +1137 -0
- package/dist/instances.js.map +1 -0
- package/dist/output.d.ts +119 -0
- package/dist/output.js +204 -0
- package/dist/output.js.map +1 -0
- package/dist/package-manager.d.ts +280 -0
- package/dist/package-manager.js +1832 -0
- package/dist/package-manager.js.map +1 -0
- package/dist/platform.d.ts +3 -0
- package/dist/platform.js +19 -0
- package/dist/platform.js.map +1 -0
- package/dist/project-identity.d.ts +48 -0
- package/dist/project-identity.js +254 -0
- package/dist/project-identity.js.map +1 -0
- package/dist/project-tool-discovery.d.ts +23 -0
- package/dist/project-tool-discovery.js +292 -0
- package/dist/project-tool-discovery.js.map +1 -0
- package/dist/protocol/envelope.d.ts +64 -0
- package/dist/protocol/envelope.js +8 -0
- package/dist/protocol/envelope.js.map +1 -0
- package/dist/protocol/index.d.ts +7 -0
- package/dist/protocol/index.js +2 -0
- package/dist/protocol/index.js.map +1 -0
- package/dist/runtime-code.d.ts +20 -0
- package/dist/runtime-code.js +232 -0
- package/dist/runtime-code.js.map +1 -0
- package/dist/schema/any-json.d.ts +4 -0
- package/dist/schema/any-json.js +2 -0
- package/dist/schema/any-json.js.map +1 -0
- package/dist/schema/validator.d.ts +7 -0
- package/dist/schema/validator.js +135 -0
- package/dist/schema/validator.js.map +1 -0
- package/dist/services/docs-reflect-cache.d.ts +106 -0
- package/dist/services/docs-reflect-cache.js +301 -0
- package/dist/services/docs-reflect-cache.js.map +1 -0
- package/dist/services/docs-service.d.ts +16 -0
- package/dist/services/docs-service.js +208 -0
- package/dist/services/docs-service.js.map +1 -0
- package/dist/services/reflect-service.d.ts +12 -0
- package/dist/services/reflect-service.js +122 -0
- package/dist/services/reflect-service.js.map +1 -0
- package/dist/static-capability-catalog.d.ts +13 -0
- package/dist/static-capability-catalog.js +41 -0
- package/dist/static-capability-catalog.js.map +1 -0
- package/dist/test-results.d.ts +13 -0
- package/dist/test-results.js +44 -0
- package/dist/test-results.js.map +1 -0
- package/dist/tools/.generated-completion-registry.d.ts +17 -0
- package/dist/tools/.generated-completion-registry.js +5862 -0
- package/dist/tools/.generated-completion-registry.js.map +1 -0
- package/dist/tools/.generated-registry.d.ts +53 -0
- package/dist/tools/.generated-registry.js +55 -0
- package/dist/tools/.generated-registry.js.map +1 -0
- package/dist/tools/.generated-schemas.d.ts +1 -0
- package/dist/tools/.generated-schemas.js +56 -0
- package/dist/tools/.generated-schemas.js.map +1 -0
- package/dist/tools/asset/refresh.d.ts +26 -0
- package/dist/tools/asset/refresh.js +97 -0
- package/dist/tools/asset/refresh.js.map +1 -0
- package/dist/tools/build/run.d.ts +45 -0
- package/dist/tools/build/run.js +115 -0
- package/dist/tools/build/run.js.map +1 -0
- package/dist/tools/catalog.d.ts +33 -0
- package/dist/tools/catalog.js +202 -0
- package/dist/tools/catalog.js.map +1 -0
- package/dist/tools/code/exec.d.ts +53 -0
- package/dist/tools/code/exec.js +59 -0
- package/dist/tools/code/exec.js.map +1 -0
- package/dist/tools/commands.d.ts +5 -0
- package/dist/tools/commands.js +45 -0
- package/dist/tools/commands.js.map +1 -0
- package/dist/tools/completion-probe.d.ts +22 -0
- package/dist/tools/completion-probe.js +2 -0
- package/dist/tools/completion-probe.js.map +1 -0
- package/dist/tools/define.d.ts +77 -0
- package/dist/tools/define.js +58 -0
- package/dist/tools/define.js.map +1 -0
- package/dist/tools/diagnose/capabilities.d.ts +13 -0
- package/dist/tools/diagnose/capabilities.js +34 -0
- package/dist/tools/diagnose/capabilities.js.map +1 -0
- package/dist/tools/dispatcher.d.ts +27 -0
- package/dist/tools/dispatcher.js +971 -0
- package/dist/tools/dispatcher.js.map +1 -0
- package/dist/tools/docs/get.d.ts +22 -0
- package/dist/tools/docs/get.js +22 -0
- package/dist/tools/docs/get.js.map +1 -0
- package/dist/tools/docs/search.d.ts +31 -0
- package/dist/tools/docs/search.js +22 -0
- package/dist/tools/docs/search.js.map +1 -0
- package/dist/tools/editor/compile.d.ts +66 -0
- package/dist/tools/editor/compile.js +225 -0
- package/dist/tools/editor/compile.js.map +1 -0
- package/dist/tools/editor/dialog/click.d.ts +12 -0
- package/dist/tools/editor/dialog/click.js +71 -0
- package/dist/tools/editor/dialog/click.js.map +1 -0
- package/dist/tools/editor/dialogs.d.ts +12 -0
- package/dist/tools/editor/dialogs.js +58 -0
- package/dist/tools/editor/dialogs.js.map +1 -0
- package/dist/tools/editor/readiness.d.ts +13 -0
- package/dist/tools/editor/readiness.js +24 -0
- package/dist/tools/editor/readiness.js.map +1 -0
- package/dist/tools/editor/refresh.d.ts +25 -0
- package/dist/tools/editor/refresh.js +154 -0
- package/dist/tools/editor/refresh.js.map +1 -0
- package/dist/tools/editor/state.d.ts +63 -0
- package/dist/tools/editor/state.js +286 -0
- package/dist/tools/editor/state.js.map +1 -0
- package/dist/tools/errors.d.ts +30 -0
- package/dist/tools/errors.js +46 -0
- package/dist/tools/errors.js.map +1 -0
- package/dist/tools/metadata/derived.d.ts +34 -0
- package/dist/tools/metadata/derived.js +136 -0
- package/dist/tools/metadata/derived.js.map +1 -0
- package/dist/tools/metadata/index.d.ts +34 -0
- package/dist/tools/metadata/index.js +130 -0
- package/dist/tools/metadata/index.js.map +1 -0
- package/dist/tools/metadata/schemas.d.ts +3 -0
- package/dist/tools/metadata/schemas.js +19 -0
- package/dist/tools/metadata/schemas.js.map +1 -0
- package/dist/tools/metadata/status.d.ts +4 -0
- package/dist/tools/metadata/status.js +61 -0
- package/dist/tools/metadata/status.js.map +1 -0
- package/dist/tools/metadata/types.d.ts +79 -0
- package/dist/tools/metadata/types.js +2 -0
- package/dist/tools/metadata/types.js.map +1 -0
- package/dist/tools/navmesh/bake-cancel.d.ts +7 -0
- package/dist/tools/navmesh/bake-cancel.js +21 -0
- package/dist/tools/navmesh/bake-cancel.js.map +1 -0
- package/dist/tools/navmesh/bake-status.d.ts +5 -0
- package/dist/tools/navmesh/bake-status.js +18 -0
- package/dist/tools/navmesh/bake-status.js.map +1 -0
- package/dist/tools/navmesh/bake.d.ts +5 -0
- package/dist/tools/navmesh/bake.js +23 -0
- package/dist/tools/navmesh/bake.js.map +1 -0
- package/dist/tools/navmesh/live.d.ts +86 -0
- package/dist/tools/navmesh/live.js +206 -0
- package/dist/tools/navmesh/live.js.map +1 -0
- package/dist/tools/navmesh/surface-bake.d.ts +5 -0
- package/dist/tools/navmesh/surface-bake.js +24 -0
- package/dist/tools/navmesh/surface-bake.js.map +1 -0
- package/dist/tools/occlusion/bake-cancel.d.ts +7 -0
- package/dist/tools/occlusion/bake-cancel.js +21 -0
- package/dist/tools/occlusion/bake-cancel.js.map +1 -0
- package/dist/tools/occlusion/bake-status.d.ts +5 -0
- package/dist/tools/occlusion/bake-status.js +18 -0
- package/dist/tools/occlusion/bake-status.js.map +1 -0
- package/dist/tools/occlusion/bake.d.ts +11 -0
- package/dist/tools/occlusion/bake.js +23 -0
- package/dist/tools/occlusion/bake.js.map +1 -0
- package/dist/tools/occlusion/live.d.ts +74 -0
- package/dist/tools/occlusion/live.js +201 -0
- package/dist/tools/occlusion/live.js.map +1 -0
- package/dist/tools/package/bridge-remove.d.ts +26 -0
- package/dist/tools/package/bridge-remove.js +32 -0
- package/dist/tools/package/bridge-remove.js.map +1 -0
- package/dist/tools/package/deploy.d.ts +49 -0
- package/dist/tools/package/deploy.js +134 -0
- package/dist/tools/package/deploy.js.map +1 -0
- package/dist/tools/package/embed.d.ts +14 -0
- package/dist/tools/package/embed.js +93 -0
- package/dist/tools/package/embed.js.map +1 -0
- package/dist/tools/package/file-mutation-worker.d.ts +6 -0
- package/dist/tools/package/file-mutation-worker.js +154 -0
- package/dist/tools/package/file-mutation-worker.js.map +1 -0
- package/dist/tools/package/info.d.ts +19 -0
- package/dist/tools/package/info.js +27 -0
- package/dist/tools/package/info.js.map +1 -0
- package/dist/tools/package/install.d.ts +24 -0
- package/dist/tools/package/install.js +65 -0
- package/dist/tools/package/install.js.map +1 -0
- package/dist/tools/package/list.d.ts +27 -0
- package/dist/tools/package/list.js +21 -0
- package/dist/tools/package/list.js.map +1 -0
- package/dist/tools/package/live-resolve.d.ts +46 -0
- package/dist/tools/package/live-resolve.js +497 -0
- package/dist/tools/package/live-resolve.js.map +1 -0
- package/dist/tools/package/public-result.d.ts +4 -0
- package/dist/tools/package/public-result.js +25 -0
- package/dist/tools/package/public-result.js.map +1 -0
- package/dist/tools/package/registry-clear.d.ts +15 -0
- package/dist/tools/package/registry-clear.js +27 -0
- package/dist/tools/package/registry-clear.js.map +1 -0
- package/dist/tools/package/registry-get.d.ts +10 -0
- package/dist/tools/package/registry-get.js +22 -0
- package/dist/tools/package/registry-get.js.map +1 -0
- package/dist/tools/package/registry-set.d.ts +17 -0
- package/dist/tools/package/registry-set.js +28 -0
- package/dist/tools/package/registry-set.js.map +1 -0
- package/dist/tools/package/remove.d.ts +47 -0
- package/dist/tools/package/remove.js +67 -0
- package/dist/tools/package/remove.js.map +1 -0
- package/dist/tools/package/resolve.d.ts +6 -0
- package/dist/tools/package/resolve.js +14 -0
- package/dist/tools/package/resolve.js.map +1 -0
- package/dist/tools/package/restore.d.ts +42 -0
- package/dist/tools/package/restore.js +122 -0
- package/dist/tools/package/restore.js.map +1 -0
- package/dist/tools/package/scoped-registry-add.d.ts +25 -0
- package/dist/tools/package/scoped-registry-add.js +30 -0
- package/dist/tools/package/scoped-registry-add.js.map +1 -0
- package/dist/tools/package/scoped-registry-list.d.ts +14 -0
- package/dist/tools/package/scoped-registry-list.js +22 -0
- package/dist/tools/package/scoped-registry-list.js.map +1 -0
- package/dist/tools/package/scoped-registry-remove.d.ts +29 -0
- package/dist/tools/package/scoped-registry-remove.js +31 -0
- package/dist/tools/package/scoped-registry-remove.js.map +1 -0
- package/dist/tools/package/search.d.ts +17 -0
- package/dist/tools/package/search.js +39 -0
- package/dist/tools/package/search.js.map +1 -0
- package/dist/tools/package/status.d.ts +21 -0
- package/dist/tools/package/status.js +37 -0
- package/dist/tools/package/status.js.map +1 -0
- package/dist/tools/reflect/member.d.ts +22 -0
- package/dist/tools/reflect/member.js +22 -0
- package/dist/tools/reflect/member.js.map +1 -0
- package/dist/tools/reflect/search.d.ts +30 -0
- package/dist/tools/reflect/search.js +22 -0
- package/dist/tools/reflect/search.js.map +1 -0
- package/dist/tools/reflect/type.d.ts +21 -0
- package/dist/tools/reflect/type.js +22 -0
- package/dist/tools/reflect/type.js.map +1 -0
- package/dist/tools/runtime/console.d.ts +24 -0
- package/dist/tools/runtime/console.js +17 -0
- package/dist/tools/runtime/console.js.map +1 -0
- package/dist/tools/runtime/input/key.d.ts +23 -0
- package/dist/tools/runtime/input/key.js +18 -0
- package/dist/tools/runtime/input/key.js.map +1 -0
- package/dist/tools/runtime/input/pointer.d.ts +34 -0
- package/dist/tools/runtime/input/pointer.js +18 -0
- package/dist/tools/runtime/input/pointer.js.map +1 -0
- package/dist/tools/runtime/log.d.ts +20 -0
- package/dist/tools/runtime/log.js +17 -0
- package/dist/tools/runtime/log.js.map +1 -0
- package/dist/tools/runtime/state.d.ts +45 -0
- package/dist/tools/runtime/state.js +17 -0
- package/dist/tools/runtime/state.js.map +1 -0
- package/dist/tools/runtime/target-framerate/set.d.ts +16 -0
- package/dist/tools/runtime/target-framerate/set.js +17 -0
- package/dist/tools/runtime/target-framerate/set.js.map +1 -0
- package/dist/tools/runtime/time-scale/set.d.ts +16 -0
- package/dist/tools/runtime/time-scale/set.js +17 -0
- package/dist/tools/runtime/time-scale/set.js.map +1 -0
- package/dist/tools/runtime/ui/capture-element.d.ts +31 -0
- package/dist/tools/runtime/ui/capture-element.js +17 -0
- package/dist/tools/runtime/ui/capture-element.js.map +1 -0
- package/dist/tools/test/cancel.d.ts +19 -0
- package/dist/tools/test/cancel.js +94 -0
- package/dist/tools/test/cancel.js.map +1 -0
- package/dist/tools/test/run.d.ts +39 -0
- package/dist/tools/test/run.js +101 -0
- package/dist/tools/test/run.js.map +1 -0
- package/dist/tools/tools/describe.d.ts +27 -0
- package/dist/tools/tools/describe.js +35 -0
- package/dist/tools/tools/describe.js.map +1 -0
- package/dist/tools/tools/group-list.d.ts +20 -0
- package/dist/tools/tools/group-list.js +39 -0
- package/dist/tools/tools/group-list.js.map +1 -0
- package/dist/tools/tools/group-summaries.d.ts +3 -0
- package/dist/tools/tools/group-summaries.js +52 -0
- package/dist/tools/tools/group-summaries.js.map +1 -0
- package/dist/tools/tools/group.d.ts +13 -0
- package/dist/tools/tools/group.js +34 -0
- package/dist/tools/tools/group.js.map +1 -0
- package/dist/tools/tools/search.d.ts +17 -0
- package/dist/tools/tools/search.js +42 -0
- package/dist/tools/tools/search.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/unity-project-processes.d.ts +12 -0
- package/dist/unity-project-processes.js +59 -0
- package/dist/unity-project-processes.js.map +1 -0
- package/dist/util.d.ts +11 -0
- package/dist/util.js +22 -0
- package/dist/util.js.map +1 -0
- package/dist/windows-editor-state.d.ts +31 -0
- package/dist/windows-editor-state.js +98 -0
- package/dist/windows-editor-state.js.map +1 -0
- package/docs/README.md +43 -0
- package/docs/availability-differences.md +97 -0
- package/docs/command-execution.md +89 -0
- package/docs/error-codes.md +204 -0
- package/docs/extensions.md +132 -0
- package/docs/risk-and-side-effects.md +93 -0
- package/docs/safety-boundaries.md +103 -0
- package/docs/target-and-instance.md +83 -0
- package/docs/tool-discovery.md +104 -0
- package/docs/tool-execution.md +178 -0
- package/extensions/cinemachine/bridge/domains/cinemachine.ts +115 -0
- package/extensions/cinemachine/docs/cinemachine.md +50 -0
- package/extensions/cinemachine/extension.json +129 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/CinemachineExtensionToolSupport.cs +15 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/CinemachineToolSupport.cs +854 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/aim.cs +96 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/blend.cs +140 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/body.cs +96 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/brain-ensure.cs +16 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/brain-status.cs +12 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/create.cs +147 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-add.cs +13 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-list.cs +13 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/extension-remove.cs +13 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/lens.cs +142 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/noise.cs +126 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/ping.cs +43 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/priority.cs +113 -0
- package/extensions/cinemachine/unitypkg/Editor/Cinemachine/target.cs +84 -0
- package/extensions/cinemachine/unitypkg/UnityCli.Extensions.Cinemachine.Editor.asmdef +18 -0
- package/extensions/hdrp/bridge/domains/hdrp.ts +41 -0
- package/extensions/hdrp/docs/hdrp.md +15 -0
- package/extensions/hdrp/extension.json +31 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/HdrpToolSupport.cs +607 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/settings-get.cs +29 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/settings-set.cs +47 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-add-effect.cs +28 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-create.cs +28 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-info.cs +25 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-list.cs +25 -0
- package/extensions/hdrp/unitypkg/Editor/Hdrp/volume-set.cs +28 -0
- package/extensions/hdrp/unitypkg/UnityCli.Extensions.Hdrp.Editor.asmdef +19 -0
- package/extensions/probuilder/bridge/domains/probuilder.ts +386 -0
- package/extensions/probuilder/docs/probuilder.md +125 -0
- package/extensions/probuilder/extension.json +291 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderAppendCompletionProof.cs +254 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderAtomicReadback.cs +293 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderBevelCompletionProof.cs +299 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderCanonicalMeshSnapshot.cs +951 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderConnectCompletionProof.cs +407 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderEdgeCompletionProof.cs +318 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderErrors.cs +83 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFaceCompletionProof.cs +152 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFaceExtrudeCompletionProof.cs +283 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderFlipCompletionProof.cs +170 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderInput.cs +85 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderInsertCompletionProof.cs +674 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderOperationProof.cs +137 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderReflection.cs +1064 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderRefreshUvProof.cs +53 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderSceneTool.cs +184 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderShapeTopologyRecords.g.cs +82 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ProBuilderVertexObjectCompletionProof.cs +346 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/append-vertices-to-edge.cs +118 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/auto-smooth.cs +104 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/bevel-edges.cs +119 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/bridge-edges.cs +113 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/center-pivot.cs +43 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/combine-meshes.cs +58 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/connect-elements.cs +128 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/convert-to-probuilder.cs +40 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-poly-shape.cs +55 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-polygon.cs +28 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/create-shape.cs +168 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/delete-faces.cs +42 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/detach-faces.cs +46 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/duplicate-and-flip.cs +100 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/extrude-edges.cs +118 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/extrude-faces.cs +110 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/flip-normals.cs +102 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/freeze-transform.cs +45 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/insert-vertex.cs +132 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-faces.cs +44 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-objects.cs +130 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/merge-vertices.cs +109 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/mesh-info.cs +117 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/move-vertices.cs +33 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/ping.cs +51 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/repair-mesh.cs +40 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/select-faces.cs +161 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-color.cs +24 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-material.cs +23 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-face-uvs.cs +28 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-pivot.cs +42 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/set-smoothing.cs +23 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/split-vertices.cs +64 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/subdivide.cs +111 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/validate-mesh.cs +75 -0
- package/extensions/probuilder/unitypkg/Editor/ProBuilder/weld-vertices.cs +112 -0
- package/extensions/probuilder/unitypkg/UnityCli.Extensions.ProBuilder.Editor.asmdef +25 -0
- package/extensions/urp/bridge/domains/urp.ts +62 -0
- package/extensions/urp/docs/urp.md +20 -0
- package/extensions/urp/extension.json +41 -0
- package/extensions/urp/unitypkg/Editor/Urp/UrpFeatureToolSupport.cs +336 -0
- package/extensions/urp/unitypkg/Editor/Urp/UrpToolSupport.cs +801 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-add.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-configure.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-list.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-remove.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/feature-toggle.cs +12 -0
- package/extensions/urp/unitypkg/Editor/Urp/settings-get.cs +27 -0
- package/extensions/urp/unitypkg/Editor/Urp/settings-set.cs +47 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-add-effect.cs +33 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-create.cs +33 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-info.cs +31 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-list.cs +39 -0
- package/extensions/urp/unitypkg/Editor/Urp/volume-set.cs +33 -0
- package/extensions/urp/unitypkg/UnityCli.Extensions.Urp.Editor.asmdef +19 -0
- package/extensions/vfx-graph/bridge/domains/vfx.ts +337 -0
- package/extensions/vfx-graph/docs/vfx.md +28 -0
- package/extensions/vfx-graph/extension.json +72 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/VfxActionToolSupport.cs +248 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/VfxToolSupport.cs +1325 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-pause.cs +37 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-play.cs +40 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-reinitialize.cs +37 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-set-rate.cs +36 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-set-seed.cs +42 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/control-stop.cs +37 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-add.cs +55 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-assign.cs +44 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/effect-info.cs +30 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/graph-create.cs +62 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/graph-info.cs +32 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/line-create.cs +75 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/line-positions.cs +100 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/parameter.cs +216 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-clear.cs +39 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-create.cs +80 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-emission.cs +126 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-info.cs +55 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-main.cs +75 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-pause.cs +38 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-play.cs +38 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-shape.cs +148 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/particle-stop.cs +41 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/template-create.cs +58 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/template-list.cs +31 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/trail-create.cs +41 -0
- package/extensions/vfx-graph/unitypkg/Editor/Vfx/trail-set.cs +44 -0
- package/extensions/vfx-graph/unitypkg/UnityCli.Extensions.VfxGraph.Editor.asmdef +18 -0
- package/package.json +46 -0
- package/schemas/error-code.schema.json +70 -0
- package/schemas/extension-descriptor.schema.json +88 -0
- package/schemas/extension-manifest.schema.json +125 -0
- package/schemas/request-envelope.schema.json +34 -0
- package/schemas/response-envelope.schema.json +42 -0
- package/schemas/tool-metadata.schema.json +111 -0
- package/skills/unitycli/SKILL.md +61 -0
- package/skills/unitycli/agents/interface.yaml +30 -0
- package/skills/unitycli/evals/history/2026-08-05-governed-baseline.json +44 -0
- package/skills/unitycli/evals/output/cases.jsonl +5 -0
- package/skills/unitycli/evals/output/fixtures/feedback-scenario.json +27 -0
- package/skills/unitycli/evals/output/schema.json +32 -0
- package/skills/unitycli/evals/semantic_config.json +46 -0
- package/skills/unitycli/evals/trigger_cases.json +39 -0
- package/skills/unitycli/examples/feedback-event.input.json +8 -0
- package/skills/unitycli/examples/feedback-record.output.json +12 -0
- package/skills/unitycli/manifest.json +112 -0
- package/skills/unitycli/references/custom-tools.md +111 -0
- package/skills/unitycli/references/feedback.md +59 -0
- package/skills/unitycli/references/operation-protocol.md +83 -0
- package/skills/unitycli/reports/output_quality_scorecard.md +56 -0
- package/skills/unitycli/reports/trust-report.md +57 -0
- package/skills/unitycli/scripts/record-feedback.ps1 +210 -0
- package/skills/unitycli/security/network_policy.json +18 -0
- package/skills/unitycli/security/permission_policy.json +40 -0
- package/unitypkg/Editor/Bridge/BridgeCommandContext.cs +64 -0
- package/unitypkg/Editor/Bridge/BridgeCommandException.cs +39 -0
- package/unitypkg/Editor/Bridge/BridgeCommandRegistry.cs +172 -0
- package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +534 -0
- package/unitypkg/Editor/Bridge/BridgeResponse.cs +58 -0
- package/unitypkg/Editor/Bridge/BridgeWorkQueue.cs +325 -0
- package/unitypkg/Editor/BridgeStartupStateMachine.cs +81 -0
- package/unitypkg/Editor/Commands/ProjectToolCommands.cs +43 -0
- package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +43 -0
- package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +428 -0
- package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +664 -0
- package/unitypkg/Editor/Infrastructure/RegistryOwnershipResolver.cs +148 -0
- package/unitypkg/Editor/Infrastructure/UnityCliActiveOperation.cs +411 -0
- package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +485 -0
- package/unitypkg/Editor/Infrastructure/UnityCliArtifacts.cs +110 -0
- package/unitypkg/Editor/Infrastructure/UnityCliAssetRefreshCoordinator.cs +106 -0
- package/unitypkg/Editor/Infrastructure/UnityCliBridgeHelpers.cs +155 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCanonicalProjectPath.cs +325 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCompilationEventBroker.cs +192 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCompileCoordinator.cs +271 -0
- package/unitypkg/Editor/Infrastructure/UnityCliCompletionProbe.cs +515 -0
- package/unitypkg/Editor/Infrastructure/UnityCliEditorStateSnapshot.cs +84 -0
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceRegistry.cs +558 -0
- package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +155 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLargeOutput.cs +128 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLiveBuildCoordinator.cs +230 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +164 -0
- package/unitypkg/Editor/Infrastructure/UnityCliLog.cs +127 -0
- package/unitypkg/Editor/Infrastructure/UnityCliNavMeshBakeCoordinator.cs +2073 -0
- package/unitypkg/Editor/Infrastructure/UnityCliObjectPatch.cs +193 -0
- package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +278 -0
- package/unitypkg/Editor/Infrastructure/UnityCliObjectSerializer.cs +620 -0
- package/unitypkg/Editor/Infrastructure/UnityCliOcclusionBakeCoordinator.cs +1739 -0
- package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +828 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPackageEmbedCoordinator.cs +147 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveCoordinator.cs +454 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveState.cs +561 -0
- package/unitypkg/Editor/Infrastructure/UnityCliPipelineHandoff.cs +742 -0
- package/unitypkg/Editor/Infrastructure/UnityCliProjectSettings.cs +92 -0
- package/unitypkg/Editor/Infrastructure/UnityCliProtocolRequest.cs +116 -0
- package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +477 -0
- package/unitypkg/Editor/Infrastructure/UnityCliReloadOperation.cs +664 -0
- package/unitypkg/Editor/Infrastructure/UnityCliRequestDigest.cs +34 -0
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeBuildInjection.cs +121 -0
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +391 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSceneMutation.cs +84 -0
- package/unitypkg/Editor/Infrastructure/UnityCliScriptableObjectHelpers.cs +235 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSerializer.cs +580 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSessionMutationLease.cs +568 -0
- package/unitypkg/Editor/Infrastructure/UnityCliStateIO.cs +73 -0
- package/unitypkg/Editor/Infrastructure/UnityCliTestRunCoordinator.cs +598 -0
- package/unitypkg/Editor/Infrastructure/UnityCliTransactionLog.cs +112 -0
- package/unitypkg/Editor/Infrastructure/UnityCliValueConverter.cs +146 -0
- package/unitypkg/Editor/Infrastructure/UnityCliWaiter.cs +716 -0
- package/unitypkg/Editor/ProjectTools/IUnityCliTool.cs +152 -0
- package/unitypkg/Editor/ProjectTools/OfficialAttributeToolRegistry.cs +992 -0
- package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +938 -0
- package/unitypkg/Editor/ProjectTools/ProjectToolSchemaValidator.cs +258 -0
- package/unitypkg/Editor/ProjectTools/RegisteredTool.cs +75 -0
- package/unitypkg/Editor/ProjectTools/UnityCliProjectToolContext.cs +68 -0
- package/unitypkg/Editor/ProjectTools/UnityCliSchemaDeriver.cs +297 -0
- package/unitypkg/Editor/Protocol/ProtocolEnvelopeFactory.cs +92 -0
- package/unitypkg/Editor/Protocol/envelope.cs +50 -0
- package/unitypkg/Editor/Roslyn/LICENSE.txt +23 -0
- package/unitypkg/Editor/Roslyn/Microsoft.CodeAnalysis.CSharp.dll +0 -0
- package/unitypkg/Editor/Roslyn/Microsoft.CodeAnalysis.dll +0 -0
- package/unitypkg/Editor/Roslyn/System.Collections.Immutable.dll +0 -0
- package/unitypkg/Editor/Roslyn/System.Reflection.Metadata.dll +0 -0
- package/unitypkg/Editor/Tools/animation/AnimationToolSupport.cs +335 -0
- package/unitypkg/Editor/Tools/animation/AnimatorRuntimeToolSupport.cs +24 -0
- package/unitypkg/Editor/Tools/animation/animator/crossfade.cs +117 -0
- package/unitypkg/Editor/Tools/animation/animator/get-info.cs +24 -0
- package/unitypkg/Editor/Tools/animation/animator/get-parameter.cs +36 -0
- package/unitypkg/Editor/Tools/animation/animator/set-enabled.cs +33 -0
- package/unitypkg/Editor/Tools/animation/animator/set-parameter.cs +71 -0
- package/unitypkg/Editor/Tools/animation/animator/set-speed.cs +33 -0
- package/unitypkg/Editor/Tools/animation/clip/create.cs +48 -0
- package/unitypkg/Editor/Tools/animation/clip/modify.cs +43 -0
- package/unitypkg/Editor/Tools/animation/clip.cs +23 -0
- package/unitypkg/Editor/Tools/animation/play.cs +41 -0
- package/unitypkg/Editor/Tools/animation/state.cs +25 -0
- package/unitypkg/Editor/Tools/animation/stop.cs +45 -0
- package/unitypkg/Editor/Tools/asset/AssetImportSettingsToolSupport.cs +633 -0
- package/unitypkg/Editor/Tools/asset/AssetToolSupport.cs +253 -0
- package/unitypkg/Editor/Tools/asset/create.cs +84 -0
- package/unitypkg/Editor/Tools/asset/delete.cs +88 -0
- package/unitypkg/Editor/Tools/asset/duplicate.cs +68 -0
- package/unitypkg/Editor/Tools/asset/get-components.cs +177 -0
- package/unitypkg/Editor/Tools/asset/get-data.cs +73 -0
- package/unitypkg/Editor/Tools/asset/import-settings/set.cs +127 -0
- package/unitypkg/Editor/Tools/asset/import-settings.cs +54 -0
- package/unitypkg/Editor/Tools/asset/import.cs +132 -0
- package/unitypkg/Editor/Tools/asset/info.cs +48 -0
- package/unitypkg/Editor/Tools/asset/modify.cs +69 -0
- package/unitypkg/Editor/Tools/asset/move.cs +70 -0
- package/unitypkg/Editor/Tools/asset/preview.cs +86 -0
- package/unitypkg/Editor/Tools/asset/rename.cs +84 -0
- package/unitypkg/Editor/Tools/asset/search-built-in.cs +90 -0
- package/unitypkg/Editor/Tools/asset/search.cs +83 -0
- package/unitypkg/Editor/Tools/build/BuildSceneStateTool.cs +37 -0
- package/unitypkg/Editor/Tools/build/BuildSettingsToolSupport.cs +4 -0
- package/unitypkg/Editor/Tools/build/BuildToolDtos.cs +15 -0
- package/unitypkg/Editor/Tools/build/BuildToolSupport.cs +111 -0
- package/unitypkg/Editor/Tools/build/platform/get.cs +12 -0
- package/unitypkg/Editor/Tools/build/platform/set.cs +45 -0
- package/unitypkg/Editor/Tools/build/profile/create.cs +44 -0
- package/unitypkg/Editor/Tools/build/profile/list.cs +12 -0
- package/unitypkg/Editor/Tools/build/profile/modify.cs +42 -0
- package/unitypkg/Editor/Tools/build/profile/switch.cs +30 -0
- package/unitypkg/Editor/Tools/build/scene/add.cs +45 -0
- package/unitypkg/Editor/Tools/build/scene/disable.cs +3 -0
- package/unitypkg/Editor/Tools/build/scene/enable.cs +4 -0
- package/unitypkg/Editor/Tools/build/scene/list.cs +4 -0
- package/unitypkg/Editor/Tools/build/scene/remove.cs +29 -0
- package/unitypkg/Editor/Tools/build/settings/get.cs +3 -0
- package/unitypkg/Editor/Tools/build/settings/set.cs +74 -0
- package/unitypkg/Editor/Tools/camera/CameraToolSupport.cs +292 -0
- package/unitypkg/Editor/Tools/camera/create.cs +114 -0
- package/unitypkg/Editor/Tools/camera/info.cs +49 -0
- package/unitypkg/Editor/Tools/camera/lens.cs +119 -0
- package/unitypkg/Editor/Tools/camera/list.cs +52 -0
- package/unitypkg/Editor/Tools/camera/multiview.cs +96 -0
- package/unitypkg/Editor/Tools/camera/screenshot.cs +65 -0
- package/unitypkg/Editor/Tools/camera/target.cs +94 -0
- package/unitypkg/Editor/Tools/component/add.cs +125 -0
- package/unitypkg/Editor/Tools/component/get.cs +73 -0
- package/unitypkg/Editor/Tools/component/list-types.cs +90 -0
- package/unitypkg/Editor/Tools/component/modify.cs +103 -0
- package/unitypkg/Editor/Tools/component/remove.cs +147 -0
- package/unitypkg/Editor/Tools/component/set.cs +93 -0
- package/unitypkg/Editor/Tools/console/clear.cs +38 -0
- package/unitypkg/Editor/Tools/console/get.cs +28 -0
- package/unitypkg/Editor/Tools/controller/add-blend-tree-child.cs +88 -0
- package/unitypkg/Editor/Tools/controller/add-layer.cs +43 -0
- package/unitypkg/Editor/Tools/controller/add-parameter.cs +51 -0
- package/unitypkg/Editor/Tools/controller/add-state.cs +44 -0
- package/unitypkg/Editor/Tools/controller/add-transition.cs +71 -0
- package/unitypkg/Editor/Tools/controller/assign.cs +38 -0
- package/unitypkg/Editor/Tools/controller/create-blend-tree-1d.cs +40 -0
- package/unitypkg/Editor/Tools/controller/create-blend-tree-2d.cs +42 -0
- package/unitypkg/Editor/Tools/controller/create.cs +31 -0
- package/unitypkg/Editor/Tools/controller/get-info.cs +27 -0
- package/unitypkg/Editor/Tools/controller/remove-layer.cs +57 -0
- package/unitypkg/Editor/Tools/controller/set-layer-weight.cs +42 -0
- package/unitypkg/Editor/Tools/diagnose/preflight.cs +269 -0
- package/unitypkg/Editor/Tools/editor/EditorActionToolSupport.cs +117 -0
- package/unitypkg/Editor/Tools/editor/EditorSearchToolSupport.cs +146 -0
- package/unitypkg/Editor/Tools/editor/EditorToolSupport.cs +132 -0
- package/unitypkg/Editor/Tools/editor/EditorWindowFocusToolSupport.cs +194 -0
- package/unitypkg/Editor/Tools/editor/active-tool/set.cs +33 -0
- package/unitypkg/Editor/Tools/editor/active-tool.cs +100 -0
- package/unitypkg/Editor/Tools/editor/autotick/set.cs +102 -0
- package/unitypkg/Editor/Tools/editor/console.cs +26 -0
- package/unitypkg/Editor/Tools/editor/focus.cs +80 -0
- package/unitypkg/Editor/Tools/editor/menu-items.cs +50 -0
- package/unitypkg/Editor/Tools/editor/menu.cs +53 -0
- package/unitypkg/Editor/Tools/editor/pause.cs +38 -0
- package/unitypkg/Editor/Tools/editor/play.cs +43 -0
- package/unitypkg/Editor/Tools/editor/redo.cs +56 -0
- package/unitypkg/Editor/Tools/editor/resolution.cs +34 -0
- package/unitypkg/Editor/Tools/editor/search.cs +55 -0
- package/unitypkg/Editor/Tools/editor/selection/set.cs +37 -0
- package/unitypkg/Editor/Tools/editor/selection.cs +153 -0
- package/unitypkg/Editor/Tools/editor/stop.cs +43 -0
- package/unitypkg/Editor/Tools/editor/tool-states.cs +140 -0
- package/unitypkg/Editor/Tools/editor/undo.cs +56 -0
- package/unitypkg/Editor/Tools/editor/windows.cs +87 -0
- package/unitypkg/Editor/Tools/extension/status.cs +87 -0
- package/unitypkg/Editor/Tools/go/GameObjectToolSupport.cs +524 -0
- package/unitypkg/Editor/Tools/go/create.cs +333 -0
- package/unitypkg/Editor/Tools/go/delete.cs +87 -0
- package/unitypkg/Editor/Tools/go/duplicate.cs +76 -0
- package/unitypkg/Editor/Tools/go/find.cs +152 -0
- package/unitypkg/Editor/Tools/go/inspect.cs +49 -0
- package/unitypkg/Editor/Tools/go/look-at.cs +76 -0
- package/unitypkg/Editor/Tools/go/modify.cs +156 -0
- package/unitypkg/Editor/Tools/go/move-relative.cs +74 -0
- package/unitypkg/Editor/Tools/go/set-parent.cs +84 -0
- package/unitypkg/Editor/Tools/graphics/GraphicsToolSupport.cs +396 -0
- package/unitypkg/Editor/Tools/graphics/bake-cancel.cs +27 -0
- package/unitypkg/Editor/Tools/graphics/bake-clear.cs +31 -0
- package/unitypkg/Editor/Tools/graphics/bake-reflection-probe.cs +35 -0
- package/unitypkg/Editor/Tools/graphics/bake-settings.cs +131 -0
- package/unitypkg/Editor/Tools/graphics/bake-start.cs +27 -0
- package/unitypkg/Editor/Tools/graphics/bake-status.cs +31 -0
- package/unitypkg/Editor/Tools/graphics/light-probe-group.cs +56 -0
- package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +19 -0
- package/unitypkg/Editor/Tools/graphics/pipeline-quality.cs +24 -0
- package/unitypkg/Editor/Tools/graphics/pipeline-settings.cs +46 -0
- package/unitypkg/Editor/Tools/graphics/probe-positions.cs +58 -0
- package/unitypkg/Editor/Tools/graphics/quality.cs +85 -0
- package/unitypkg/Editor/Tools/graphics/reflection-probe.cs +73 -0
- package/unitypkg/Editor/Tools/graphics/scene-debug.cs +37 -0
- package/unitypkg/Editor/Tools/graphics/settings.cs +104 -0
- package/unitypkg/Editor/Tools/graphics/skybox-get.cs +33 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-ambient.cs +24 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-fog.cs +24 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-material.cs +33 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-properties.cs +51 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-reflection.cs +31 -0
- package/unitypkg/Editor/Tools/graphics/skybox-set-sun.cs +35 -0
- package/unitypkg/Editor/Tools/graphics/stats-counters.cs +28 -0
- package/unitypkg/Editor/Tools/graphics/stats-memory.cs +21 -0
- package/unitypkg/Editor/Tools/graphics/stats.cs +17 -0
- package/unitypkg/Editor/Tools/graphics/volume.cs +59 -0
- package/unitypkg/Editor/Tools/instances/list.cs +71 -0
- package/unitypkg/Editor/Tools/material/MaterialToolSupport.cs +401 -0
- package/unitypkg/Editor/Tools/material/assign.cs +124 -0
- package/unitypkg/Editor/Tools/material/create.cs +82 -0
- package/unitypkg/Editor/Tools/material/info.cs +55 -0
- package/unitypkg/Editor/Tools/material/set-renderer-color.cs +108 -0
- package/unitypkg/Editor/Tools/material/set.cs +114 -0
- package/unitypkg/Editor/Tools/navmesh/NavMeshToolSupport.cs +404 -0
- package/unitypkg/Editor/Tools/navmesh/bake-clear.cs +70 -0
- package/unitypkg/Editor/Tools/navmesh/settings/set.cs +73 -0
- package/unitypkg/Editor/Tools/navmesh/settings.cs +37 -0
- package/unitypkg/Editor/Tools/object/ObjectToolSupport.cs +99 -0
- package/unitypkg/Editor/Tools/object/get-data.cs +69 -0
- package/unitypkg/Editor/Tools/object/modify.cs +126 -0
- package/unitypkg/Editor/Tools/occlusion/OcclusionToolSupport.cs +422 -0
- package/unitypkg/Editor/Tools/occlusion/bake-clear.cs +67 -0
- package/unitypkg/Editor/Tools/physics/PhysicsJointToolSupport.cs +13 -0
- package/unitypkg/Editor/Tools/physics/PhysicsToolSupport.cs +389 -0
- package/unitypkg/Editor/Tools/physics/assign-material.cs +88 -0
- package/unitypkg/Editor/Tools/physics/collision-matrix.cs +90 -0
- package/unitypkg/Editor/Tools/physics/force.cs +127 -0
- package/unitypkg/Editor/Tools/physics/joint/add.cs +99 -0
- package/unitypkg/Editor/Tools/physics/joint/remove.cs +4 -0
- package/unitypkg/Editor/Tools/physics/linecast.cs +59 -0
- package/unitypkg/Editor/Tools/physics/material.cs +73 -0
- package/unitypkg/Editor/Tools/physics/overlap.cs +84 -0
- package/unitypkg/Editor/Tools/physics/raycast-all.cs +67 -0
- package/unitypkg/Editor/Tools/physics/raycast.cs +96 -0
- package/unitypkg/Editor/Tools/physics/rigidbody.cs +116 -0
- package/unitypkg/Editor/Tools/physics/settings.cs +116 -0
- package/unitypkg/Editor/Tools/physics/shapecast.cs +127 -0
- package/unitypkg/Editor/Tools/physics/simulation.cs +89 -0
- package/unitypkg/Editor/Tools/physics/validate.cs +67 -0
- package/unitypkg/Editor/Tools/prefab/PrefabOverrideToolSupport.cs +355 -0
- package/unitypkg/Editor/Tools/prefab/PrefabToolSupport.cs +446 -0
- package/unitypkg/Editor/Tools/prefab/create.cs +125 -0
- package/unitypkg/Editor/Tools/prefab/hierarchy.cs +157 -0
- package/unitypkg/Editor/Tools/prefab/info.cs +44 -0
- package/unitypkg/Editor/Tools/prefab/instantiate.cs +106 -0
- package/unitypkg/Editor/Tools/prefab/modify.cs +112 -0
- package/unitypkg/Editor/Tools/prefab/overrides/apply.cs +51 -0
- package/unitypkg/Editor/Tools/prefab/overrides/revert.cs +51 -0
- package/unitypkg/Editor/Tools/prefab/stage-close.cs +67 -0
- package/unitypkg/Editor/Tools/prefab/stage-open.cs +69 -0
- package/unitypkg/Editor/Tools/prefab/stage-save.cs +64 -0
- package/unitypkg/Editor/Tools/prefab/stage.cs +68 -0
- package/unitypkg/Editor/Tools/prefab/unpack.cs +80 -0
- package/unitypkg/Editor/Tools/prefab/variant/create.cs +53 -0
- package/unitypkg/Editor/Tools/profiler/ProfilerFrameDebuggerSupport.cs +68 -0
- package/unitypkg/Editor/Tools/profiler/ProfilerMemorySnapshotSupport.cs +30 -0
- package/unitypkg/Editor/Tools/profiler/ProfilerToolSupport.cs +515 -0
- package/unitypkg/Editor/Tools/profiler/areas.cs +36 -0
- package/unitypkg/Editor/Tools/profiler/capture.cs +188 -0
- package/unitypkg/Editor/Tools/profiler/clear.cs +57 -0
- package/unitypkg/Editor/Tools/profiler/counter.cs +34 -0
- package/unitypkg/Editor/Tools/profiler/deep.cs +48 -0
- package/unitypkg/Editor/Tools/profiler/export.cs +85 -0
- package/unitypkg/Editor/Tools/profiler/frame-debugger/disable.cs +53 -0
- package/unitypkg/Editor/Tools/profiler/frame-debugger/enable.cs +66 -0
- package/unitypkg/Editor/Tools/profiler/frame-debugger/events.cs +140 -0
- package/unitypkg/Editor/Tools/profiler/frame.cs +38 -0
- package/unitypkg/Editor/Tools/profiler/hierarchy.cs +183 -0
- package/unitypkg/Editor/Tools/profiler/load.cs +85 -0
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/compare.cs +78 -0
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/list.cs +73 -0
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/take.cs +147 -0
- package/unitypkg/Editor/Tools/profiler/memory.cs +34 -0
- package/unitypkg/Editor/Tools/profiler/module-enable.cs +52 -0
- package/unitypkg/Editor/Tools/profiler/modules.cs +33 -0
- package/unitypkg/Editor/Tools/profiler/object-memory.cs +49 -0
- package/unitypkg/Editor/Tools/profiler/pause.cs +49 -0
- package/unitypkg/Editor/Tools/profiler/rendering-stats.cs +109 -0
- package/unitypkg/Editor/Tools/profiler/script-stats.cs +35 -0
- package/unitypkg/Editor/Tools/profiler/start.cs +55 -0
- package/unitypkg/Editor/Tools/profiler/status.cs +36 -0
- package/unitypkg/Editor/Tools/profiler/stop.cs +53 -0
- package/unitypkg/Editor/Tools/project/ProjectSettingsReader.cs +31 -0
- package/unitypkg/Editor/Tools/project/ProjectSettingsToolSupport.cs +757 -0
- package/unitypkg/Editor/Tools/project/ProjectTagLayerToolSupport.cs +23 -0
- package/unitypkg/Editor/Tools/project/audio-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/audio-settings.cs +31 -0
- package/unitypkg/Editor/Tools/project/info.cs +52 -0
- package/unitypkg/Editor/Tools/project/input-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/input-settings.cs +35 -0
- package/unitypkg/Editor/Tools/project/layer/add.cs +3 -0
- package/unitypkg/Editor/Tools/project/layer/remove.cs +3 -0
- package/unitypkg/Editor/Tools/project/layers.cs +61 -0
- package/unitypkg/Editor/Tools/project/player-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/player-settings.cs +31 -0
- package/unitypkg/Editor/Tools/project/tag/add.cs +3 -0
- package/unitypkg/Editor/Tools/project/tag/remove.cs +3 -0
- package/unitypkg/Editor/Tools/project/tags.cs +45 -0
- package/unitypkg/Editor/Tools/project/time-settings/set.cs +35 -0
- package/unitypkg/Editor/Tools/project/time-settings.cs +31 -0
- package/unitypkg/Editor/Tools/reflection/method/call.cs +114 -0
- package/unitypkg/Editor/Tools/reflection/method/find.cs +72 -0
- package/unitypkg/Editor/Tools/reflection/type/schema.cs +56 -0
- package/unitypkg/Editor/Tools/scene/SceneToolSupport.cs +181 -0
- package/unitypkg/Editor/Tools/scene/active.cs +62 -0
- package/unitypkg/Editor/Tools/scene/build-settings.cs +69 -0
- package/unitypkg/Editor/Tools/scene/create.cs +78 -0
- package/unitypkg/Editor/Tools/scene/data.cs +125 -0
- package/unitypkg/Editor/Tools/scene/gameobject/component.cs +63 -0
- package/unitypkg/Editor/Tools/scene/gameobject/components.cs +77 -0
- package/unitypkg/Editor/Tools/scene/gameobject-support.cs +101 -0
- package/unitypkg/Editor/Tools/scene/gameobject.cs +83 -0
- package/unitypkg/Editor/Tools/scene/hierarchy.cs +250 -0
- package/unitypkg/Editor/Tools/scene/list-opened.cs +77 -0
- package/unitypkg/Editor/Tools/scene/load.cs +68 -0
- package/unitypkg/Editor/Tools/scene/move-object.cs +122 -0
- package/unitypkg/Editor/Tools/scene/save.cs +231 -0
- package/unitypkg/Editor/Tools/scene/set-active.cs +76 -0
- package/unitypkg/Editor/Tools/scene/unload.cs +109 -0
- package/unitypkg/Editor/Tools/scene/validate.cs +115 -0
- package/unitypkg/Editor/Tools/scene/view-frame.cs +218 -0
- package/unitypkg/Editor/Tools/screenshot/EditorElementCaptureToolSupport.cs +181 -0
- package/unitypkg/Editor/Tools/screenshot/ScreenshotToolSupport.cs +196 -0
- package/unitypkg/Editor/Tools/screenshot/editor-element.cs +87 -0
- package/unitypkg/Editor/Tools/screenshot/game-view.cs +116 -0
- package/unitypkg/Editor/Tools/screenshot/isolated-object.cs +93 -0
- package/unitypkg/Editor/Tools/screenshot/orbit.cs +103 -0
- package/unitypkg/Editor/Tools/screenshot/scene-view.cs +99 -0
- package/unitypkg/Editor/Tools/screenshot/screen.cs +89 -0
- package/unitypkg/Editor/Tools/screenshot/surround.cs +181 -0
- package/unitypkg/Editor/Tools/scriptable-object/ScriptableObjectToolSupport.cs +196 -0
- package/unitypkg/Editor/Tools/scriptable-object/create.cs +79 -0
- package/unitypkg/Editor/Tools/scriptable-object/info.cs +49 -0
- package/unitypkg/Editor/Tools/scriptable-object/list-types.cs +103 -0
- package/unitypkg/Editor/Tools/scriptable-object/modify.cs +208 -0
- package/unitypkg/Editor/Tools/shader/ShaderToolSupport.cs +326 -0
- package/unitypkg/Editor/Tools/shader/create.cs +82 -0
- package/unitypkg/Editor/Tools/shader/delete.cs +90 -0
- package/unitypkg/Editor/Tools/shader/get-data.cs +125 -0
- package/unitypkg/Editor/Tools/shader/info.cs +48 -0
- package/unitypkg/Editor/Tools/shader/list.cs +82 -0
- package/unitypkg/Editor/Tools/shader/read.cs +84 -0
- package/unitypkg/Editor/Tools/shader/update.cs +71 -0
- package/unitypkg/Editor/Tools/tests/list.cs +98 -0
- package/unitypkg/Editor/Tools/texture/TextureToolSupport.cs +327 -0
- package/unitypkg/Editor/Tools/texture/create.cs +182 -0
- package/unitypkg/Editor/Tools/texture/delete.cs +89 -0
- package/unitypkg/Editor/Tools/texture/generate.cs +189 -0
- package/unitypkg/Editor/Tools/texture/import-settings.cs +104 -0
- package/unitypkg/Editor/Tools/texture/info.cs +50 -0
- package/unitypkg/Editor/Tools/texture/modify.cs +154 -0
- package/unitypkg/Editor/Tools/texture/sprite.cs +132 -0
- package/unitypkg/Editor/Tools/timeline/TimelineMutationToolSupport.cs +696 -0
- package/unitypkg/Editor/Tools/timeline/TimelineReadToolSupport.cs +439 -0
- package/unitypkg/Editor/Tools/timeline/TimelineToolSupport.cs +203 -0
- package/unitypkg/Editor/Tools/timeline/clip/add.cs +93 -0
- package/unitypkg/Editor/Tools/timeline/create.cs +88 -0
- package/unitypkg/Editor/Tools/timeline/info.cs +54 -0
- package/unitypkg/Editor/Tools/timeline/track/add.cs +91 -0
- package/unitypkg/Editor/Tools/ui/UiToolSupport.cs +162 -0
- package/unitypkg/Editor/Tools/ui/UiUguiToolSupport.cs +24 -0
- package/unitypkg/Editor/Tools/ui/attach-document.cs +46 -0
- package/unitypkg/Editor/Tools/ui/button/create.cs +58 -0
- package/unitypkg/Editor/Tools/ui/canvas/create.cs +40 -0
- package/unitypkg/Editor/Tools/ui/create-panel-settings.cs +44 -0
- package/unitypkg/Editor/Tools/ui/detach-document.cs +41 -0
- package/unitypkg/Editor/Tools/ui/document/create.cs +49 -0
- package/unitypkg/Editor/Tools/ui/document/delete.cs +33 -0
- package/unitypkg/Editor/Tools/ui/document/info.cs +33 -0
- package/unitypkg/Editor/Tools/ui/document/update.cs +36 -0
- package/unitypkg/Editor/Tools/ui/get-visual-tree.cs +34 -0
- package/unitypkg/Editor/Tools/ui/hierarchy.cs +27 -0
- package/unitypkg/Editor/Tools/ui/image/create.cs +47 -0
- package/unitypkg/Editor/Tools/ui/link-stylesheet.cs +54 -0
- package/unitypkg/Editor/Tools/ui/list-documents.cs +34 -0
- package/unitypkg/Editor/Tools/ui/modify-visual-element.cs +76 -0
- package/unitypkg/Editor/Tools/ui/render-preview.cs +128 -0
- package/unitypkg/Editor/Tools/ui/text/create.cs +45 -0
- package/unitypkg/Editor/Tools/ui/update-panel-settings.cs +49 -0
- package/unitypkg/Editor/UnityCliBridge.cs +431 -0
- package/unitypkg/Editor/UnityCliBridgeBuildInfo.cs +9 -0
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +580 -0
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeJson.cs +232 -0
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeRegistry.cs +297 -0
- package/unitypkg/Runtime/Tools/UnityCliRuntimeTools.cs +701 -0
- package/unitypkg/Runtime/UnityCli.Runtime.asmdef +14 -0
- package/unitypkg/Shared/UnityCli.Shared.asmdef +14 -0
- package/unitypkg/Shared/UnityCliAdmissionPool.cs +426 -0
- package/unitypkg/Tests/Editor/UnityCli.Editor.Tests.asmdef +15 -0
- package/unitypkg/Tests/Editor/UnityCliAdmissionPoolTests.cs +262 -0
- package/unitypkg/UnityCli.Editor.asmdef +26 -0
- package/unitypkg/package.json +11 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using UnityEditor;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
using UiButton = UnityEngine.UI.Button;
|
|
6
|
+
using UiCanvasScaler = UnityEngine.UI.CanvasScaler;
|
|
7
|
+
using UiGraphicRaycaster = UnityEngine.UI.GraphicRaycaster;
|
|
8
|
+
using UiImage = UnityEngine.UI.Image;
|
|
9
|
+
using UiText = UnityEngine.UI.Text;
|
|
10
|
+
|
|
11
|
+
namespace UnityCli
|
|
12
|
+
{
|
|
13
|
+
/// <summary>ui.canvas.create — 创建 uGUI Canvas。</summary>
|
|
14
|
+
public class UiCanvasCreateTool : IUnityCliTool<UiCanvasCreateTool.Request, UiCanvasCreateTool.Result>
|
|
15
|
+
{
|
|
16
|
+
public sealed class Request { public string Name { get; set; } }
|
|
17
|
+
public sealed class Result { public UiElementRef Element { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
18
|
+
public ToolDescriptor Describe() => new() { Name = "ui.canvas.create", Summary = "Create a uGUI Canvas with CanvasScaler and GraphicRaycaster.", Description = "Create a ScreenSpaceOverlay Canvas with ScaleWithScreenSize mode (1920x1080 reference).", Group = "ui",DestructiveHint = false, SideEffects = new[] { "scene-modify" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Create Canvas", Input = new Request { Name = "MainCanvas" } } } };
|
|
19
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
20
|
+
{
|
|
21
|
+
var name = string.IsNullOrEmpty(r.Name) ? "Canvas" : r.Name;
|
|
22
|
+
ctx.CommitEffect();
|
|
23
|
+
var go = new GameObject(name, typeof(RectTransform), typeof(Canvas), typeof(UiCanvasScaler), typeof(UiGraphicRaycaster));
|
|
24
|
+
var canvas = go.GetComponent<Canvas>();
|
|
25
|
+
canvas.renderMode = RenderMode.ScreenSpaceOverlay;
|
|
26
|
+
var scaler = go.GetComponent<UiCanvasScaler>();
|
|
27
|
+
scaler.uiScaleMode = UiCanvasScaler.ScaleMode.ScaleWithScreenSize;
|
|
28
|
+
scaler.referenceResolution = new Vector2(1920, 1080);
|
|
29
|
+
var observedGo = EditorUtility.InstanceIDToObject(go.GetInstanceID()) as GameObject;
|
|
30
|
+
var observedCanvas = observedGo == null ? null : observedGo.GetComponent<Canvas>();
|
|
31
|
+
var observedScaler = observedGo == null ? null : observedGo.GetComponent<UiCanvasScaler>();
|
|
32
|
+
var observedRaycaster = observedGo == null ? null : observedGo.GetComponent<UiGraphicRaycaster>();
|
|
33
|
+
if (observedGo == null || observedGo.transform.parent != null || observedGo.GetComponent<RectTransform>() == null || observedCanvas == null || observedCanvas.renderMode != RenderMode.ScreenSpaceOverlay || observedScaler == null || observedScaler.uiScaleMode != UiCanvasScaler.ScaleMode.ScaleWithScreenSize || observedScaler.referenceResolution != new Vector2(1920, 1080) || observedRaycaster == null)
|
|
34
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_CANVAS_READBACK_FAILED", "Created Canvas does not match required components and settings.", "Check Unity Console for scene mutation errors.");
|
|
35
|
+
Selection.activeGameObject = observedGo;
|
|
36
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Element = UiToolSupport.BuildUiElementRef(go, "Canvas"), PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.canvas.create", Target = GameObjectToolSupport.HierarchyPath(go) } } });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
#endif
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.create-panel-settings — 创建 PanelSettings 资产。</summary>
|
|
11
|
+
public class UiCreatePanelSettingsTool : IUnityCliTool<UiCreatePanelSettingsTool.Request, UiCreatePanelSettingsTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Path { get; set; } public string ScaleMode { get; set; } public int? ReferenceWidth { get; set; } public int? ReferenceHeight { get; set; } public int? SortingOrder { get; set; } }
|
|
14
|
+
public sealed class Result { public UiPanelSettingsInfo PanelSettings { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.create-panel-settings", Summary = "Create a PanelSettings asset for UI Toolkit.", Description = "Create a .asset PanelSettings with scale mode and reference resolution. dryRun=true previews.", Group = "ui",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "asset-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Create PanelSettings", Input = new Request { Path = "Assets/UI/Panel.asset" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
UiToolSupport.EnsureEditorNotBusy("ui.create-panel-settings");
|
|
19
|
+
var path = AssetToolSupport.RequireAssetPath(r.Path);
|
|
20
|
+
if (!path.EndsWith(".asset", System.StringComparison.OrdinalIgnoreCase)) throw new UnityCliBridge.BridgeCommandException("E_UI_PANEL_SETTINGS_PATH_REQUIRED", "Pass an Assets/*.asset path.", "Pass a canonical Assets/*.asset path.");
|
|
21
|
+
if (AssetToolSupport.AssetExists(path)) throw new UnityCliBridge.BridgeCommandException("E_UI_PANEL_SETTINGS_EXISTS", "PanelSettings asset already exists: " + path, "Choose a new path.");
|
|
22
|
+
if (!string.IsNullOrEmpty(r.ScaleMode) && !string.Equals(r.ScaleMode, "constantpixelsize", System.StringComparison.OrdinalIgnoreCase) && !string.Equals(r.ScaleMode, "scalewithscreensize", System.StringComparison.OrdinalIgnoreCase)) throw new UnityCliBridge.BridgeCommandException("E_UI_PANEL_SETTINGS_SCALE_MODE_INVALID", "ScaleMode must be ConstantPixelSize or ScaleWithScreenSize.", "Pass a documented PanelScaleMode value.");
|
|
23
|
+
if ((r.ReferenceWidth.HasValue && r.ReferenceWidth.Value <= 0) || (r.ReferenceHeight.HasValue && r.ReferenceHeight.Value <= 0)) throw new UnityCliBridge.BridgeCommandException("E_UI_PANEL_SETTINGS_RANGE_INVALID", "Reference dimensions must be positive.", "Pass positive reference dimensions.");
|
|
24
|
+
var scaleMode = string.Equals(r.ScaleMode, "constantpixelsize", System.StringComparison.OrdinalIgnoreCase) ? PanelScaleMode.ConstantPixelSize : PanelScaleMode.ScaleWithScreenSize;
|
|
25
|
+
var resolution = new Vector2Int(r.ReferenceWidth ?? 1920, r.ReferenceHeight ?? 1080);
|
|
26
|
+
var sortingOrder = r.SortingOrder ?? 0;
|
|
27
|
+
var dryRun = ctx.DryRun;
|
|
28
|
+
if (dryRun) return new System.Threading.Tasks.ValueTask<Result>(new Result { PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.create-panel-settings", Path = path } } });
|
|
29
|
+
ctx.CommitEffect();
|
|
30
|
+
SceneToolSupport.CreateAssetDirectory(path);
|
|
31
|
+
var panel = ScriptableObject.CreateInstance<PanelSettings>();
|
|
32
|
+
panel.scaleMode = scaleMode;
|
|
33
|
+
panel.referenceResolution = resolution;
|
|
34
|
+
panel.sortingOrder = sortingOrder;
|
|
35
|
+
AssetDatabase.CreateAsset(panel, path);
|
|
36
|
+
AssetDatabase.SaveAssets();
|
|
37
|
+
AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate);
|
|
38
|
+
var observed = AssetDatabase.LoadAssetAtPath<PanelSettings>(path);
|
|
39
|
+
if (observed == null || observed.scaleMode != scaleMode || observed.referenceResolution != resolution || observed.sortingOrder != sortingOrder) throw new UnityCliBridge.BridgeCommandException("E_UI_PANEL_SETTINGS_READBACK_FAILED", "Created PanelSettings could not be verified: " + path, "Check Unity Console for asset import errors.");
|
|
40
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { PanelSettings = new UiPanelSettingsInfo { Path = AssetDatabase.GetAssetPath(observed), ScaleMode = observed.scaleMode.ToString(), ReferenceWidth = observed.referenceResolution.x, ReferenceHeight = observed.referenceResolution.y, SortingOrder = observed.sortingOrder }, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.create-panel-settings", Path = path } } });
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
#endif
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.detach-document — 从 GameObject 移除 UIDocument 组件。</summary>
|
|
11
|
+
public class UiDetachDocumentTool : IUnityCliTool<UiDetachDocumentTool.Request, UiDetachDocumentTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Target { get; set; } }
|
|
14
|
+
public sealed class Result { public bool Attached { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.detach-document", Summary = "Remove a UIDocument component from a target GameObject.", Description = "Remove UIDocument component. Only affects current scene session. dryRun=true previews.", Group = "ui",DestructiveHint = false, SupportsDryRun = true, SideEffects = new[] { "scene-modify" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Detach UIDocument", Input = new Request { Target = "Player" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
UiToolSupport.EnsureEditorNotBusy("ui.detach-document");
|
|
19
|
+
var go = UnityCliBridge.ObjectRefResolver.FindGameObjectByPath(r.Target);
|
|
20
|
+
if (go == null) throw new UnityCliBridge.BridgeCommandException("E_TARGET_NOT_FOUND", "ui.detach-document requires a target GameObject.", "Pass --target <path>.");
|
|
21
|
+
var doc = go.GetComponent<UIDocument>();
|
|
22
|
+
if (doc == null) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_NOT_FOUND", "No UIDocument on target: " + r.Target, "Pass a target with a UIDocument.");
|
|
23
|
+
var targetId = go.GetInstanceID();
|
|
24
|
+
var dryRun = ctx.DryRun;
|
|
25
|
+
if (!dryRun)
|
|
26
|
+
{
|
|
27
|
+
ctx.CommitEffect();
|
|
28
|
+
UnityCliSceneMutation.DestroyObject(doc);
|
|
29
|
+
UnityCliSceneMutation.MarkSceneDirty(go.scene);
|
|
30
|
+
var observedGo = EditorUtility.InstanceIDToObject(targetId) as GameObject;
|
|
31
|
+
var observedDocument = observedGo == null || observedGo.GetInstanceID() != targetId ? null : observedGo.GetComponent<UIDocument>();
|
|
32
|
+
if (observedDocument != null) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_READBACK_FAILED", "UIDocument is still attached after detach: " + r.Target, "Check Unity Console for scene mutation errors.");
|
|
33
|
+
go = observedGo;
|
|
34
|
+
}
|
|
35
|
+
if (go == null) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_READBACK_FAILED", "Target GameObject could not be re-resolved after detach: " + r.Target, "Check Unity Console for scene mutation errors.");
|
|
36
|
+
var observed = go.GetComponent<UIDocument>();
|
|
37
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Attached = observed != null, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.detach-document", Target = GameObjectToolSupport.HierarchyPath(go) } } });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
#endif
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using UnityEditor;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
using UnityEngine.UIElements;
|
|
6
|
+
|
|
7
|
+
namespace UnityCli
|
|
8
|
+
{
|
|
9
|
+
/// <summary>ui.document.create — 创建 UXML/USS 资产和 UIDocument GameObject。</summary>
|
|
10
|
+
public class UiDocumentCreateTool : IUnityCliTool<UiDocumentCreateTool.Request, UiDocumentCreateTool.Result>
|
|
11
|
+
{
|
|
12
|
+
public sealed class Request { public string Name { get; set; } public string Uxml { get; set; } public string Uss { get; set; } public string PanelSettings { get; set; } public bool? Overwrite { get; set; } }
|
|
13
|
+
public sealed class Result { public UiDocumentLiveInfo Document { get; set; } public UiElementRef Target { get; set; } public bool Attached { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
14
|
+
public ToolDescriptor Describe() => new() { Name = "ui.document.create", Summary = "Create a UIDocument GameObject with UXML/USS assets and optional PanelSettings.", Description = "Create .uxml (and optional .uss) text assets, then a UIDocument GameObject linking them. overwrite=true to replace existing assets.", Group = "ui",DestructiveHint = true, SideEffects = new[] { "asset-write", "scene-modify" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Create UIDocument", Input = new Request { Name = "UIDocument", Uxml = "Assets/UI/Main.uxml" } } } };
|
|
15
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
16
|
+
{
|
|
17
|
+
UiToolSupport.EnsureEditorNotBusy("ui.document.create");
|
|
18
|
+
var name = string.IsNullOrEmpty(r.Name) ? "UIDocument" : r.Name;
|
|
19
|
+
var uxmlPath = UiToolSupport.RequireUxmlPath(r.Uxml);
|
|
20
|
+
var ussPath = string.IsNullOrEmpty(r.Uss) ? null : UiToolSupport.RequireUssPath(r.Uss);
|
|
21
|
+
var overwrite = r.Overwrite ?? false;
|
|
22
|
+
UiToolSupport.ValidateTextAssetCreation(uxmlPath, overwrite, "E_UI_UXML_EXISTS");
|
|
23
|
+
if (!string.IsNullOrEmpty(ussPath)) UiToolSupport.ValidateTextAssetCreation(ussPath, overwrite, "E_UI_USS_EXISTS");
|
|
24
|
+
PanelSettings panelSettings = null;
|
|
25
|
+
if (!string.IsNullOrEmpty(r.PanelSettings)) { var panelSettingsPath = AssetToolSupport.RequireExistingAssetPath(r.PanelSettings); panelSettings = AssetDatabase.LoadAssetAtPath<PanelSettings>(panelSettingsPath); if (panelSettings == null) throw new UnityCliBridge.BridgeCommandException("E_UI_PANEL_SETTINGS_NOT_FOUND", "PanelSettings asset not found: " + panelSettingsPath, "Create a PanelSettings asset or pass a valid path."); }
|
|
26
|
+
ctx.CommitEffect();
|
|
27
|
+
UiToolSupport.EnsureTextAsset(uxmlPath, UiToolSupport.DefaultUxml(ussPath));
|
|
28
|
+
if (!string.IsNullOrEmpty(ussPath)) UiToolSupport.EnsureTextAsset(ussPath, UiToolSupport.DefaultUss());
|
|
29
|
+
var go = new GameObject(name, typeof(UIDocument));
|
|
30
|
+
var documentObjectId = go.GetInstanceID();
|
|
31
|
+
var panelSettingsId = panelSettings == null ? 0 : panelSettings.GetInstanceID();
|
|
32
|
+
var doc = go.GetComponent<UIDocument>();
|
|
33
|
+
doc.visualTreeAsset = UiToolSupport.LoadVisualTreeAsset(uxmlPath);
|
|
34
|
+
if (panelSettings != null) doc.panelSettings = panelSettings;
|
|
35
|
+
Selection.activeGameObject = go;
|
|
36
|
+
EditorUtility.SetDirty(doc);
|
|
37
|
+
AssetDatabase.SaveAssets();
|
|
38
|
+
var observedUxml = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(uxmlPath);
|
|
39
|
+
var observedUss = string.IsNullOrEmpty(ussPath) ? null : AssetDatabase.LoadAssetAtPath<StyleSheet>(ussPath);
|
|
40
|
+
var observedGo = EditorUtility.InstanceIDToObject(documentObjectId) as GameObject;
|
|
41
|
+
var observedPanelSettings = panelSettingsId == 0 ? null : EditorUtility.InstanceIDToObject(panelSettingsId) as PanelSettings;
|
|
42
|
+
var observedDocument = observedGo == null || observedGo.GetInstanceID() != documentObjectId ? null : observedGo.GetComponent<UIDocument>();
|
|
43
|
+
if (observedUxml == null || observedDocument == null || observedDocument.visualTreeAsset != observedUxml || (panelSettingsId != 0 && (observedPanelSettings == null || observedDocument.panelSettings != observedPanelSettings)) || (!string.IsNullOrEmpty(ussPath) && observedUss == null))
|
|
44
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_READBACK_FAILED", "Created UIDocument could not be verified.", "Check Unity Console for asset import or scene serialization errors.");
|
|
45
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Document = new UiDocumentLiveInfo { VisualTreeAsset = observedDocument.visualTreeAsset == null ? null : AssetDatabase.GetAssetPath(observedDocument.visualTreeAsset), PanelSettings = observedDocument.panelSettings == null ? null : AssetDatabase.GetAssetPath(observedDocument.panelSettings), SortingOrder = observedDocument.sortingOrder }, Target = UiToolSupport.BuildUiElementRef(observedGo, "UIDocument"), Attached = true, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.document.create", Target = GameObjectToolSupport.HierarchyPath(observedGo), Uxml = uxmlPath, Uss = ussPath } } });
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
#endif
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.document.delete — 删除 UXML/USS 资产。</summary>
|
|
11
|
+
public class UiDocumentDeleteTool : IUnityCliTool<UiDocumentDeleteTool.Request, UiDocumentDeleteTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Uxml { get; set; } public string Path { get; set; } }
|
|
14
|
+
public sealed class Result { public bool DryRun { get; set; } public UiDocumentAssetInfo Document { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.document.delete", Summary = "Delete a .uxml or .uss UI document asset.", Description = "Delete the asset via AssetDatabase.DeleteAsset. dryRun=true previews.", Group = "ui",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "asset-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Delete UXML", Input = new Request { Uxml = "Assets/UI/Main.uxml" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
var path = UiToolSupport.RequireUiDocumentAssetPath(r.Uxml ?? r.Path);
|
|
19
|
+
if (!AssetToolSupport.AssetExists(path))
|
|
20
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_NOT_FOUND", "UI document asset not found: " + path, "Pass an existing Assets/*.uxml or Assets/*.uss path.");
|
|
21
|
+
var dryRun = ctx.DryRun;
|
|
22
|
+
if (dryRun) return new System.Threading.Tasks.ValueTask<Result>(new Result { DryRun = true, Document = new UiDocumentAssetInfo { Path = path, Exists = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(path) != null }, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.document.delete", Path = path } } });
|
|
23
|
+
ctx.CommitEffect();
|
|
24
|
+
if (!AssetDatabase.DeleteAsset(path)) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_DELETE_FAILED", "Failed to delete UI document asset: " + path, "Check Unity Console and file permissions.");
|
|
25
|
+
AssetDatabase.Refresh();
|
|
26
|
+
var observedAsset = AssetDatabase.LoadAssetAtPath<UnityEngine.Object>(path);
|
|
27
|
+
var observedExists = observedAsset != null || File.Exists(SceneToolSupport.AssetFullPath(path));
|
|
28
|
+
if (observedExists) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_READBACK_FAILED", "Deleted UI document is still present: " + path, "Check Unity Console and file permissions.");
|
|
29
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { DryRun = false, Document = new UiDocumentAssetInfo { Path = path, Exists = observedExists }, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.document.delete", Path = path } } });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
#endif
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.document.info — 读取 UIDocument 或 UXML 文件信息。</summary>
|
|
11
|
+
public class UiDocumentInfoTool : IUnityCliTool<UiDocumentInfoTool.Request, UiDocumentInfoTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Target { get; set; } public string Path { get; set; } public string Uss { get; set; } }
|
|
14
|
+
public sealed class Result { public UiDocumentLiveInfo Document { get; set; } public UiDocumentAssetInfo Asset { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.document.info", Summary = "Inspect a UIDocument or UI document asset in the selected Editor.", Description = "Pass target for a live UIDocument inspection, or an Assets/*.uxml path for AssetDatabase metadata. Both modes execute through the selected open Editor. Use uss for an associated stylesheet asset.", Group = "ui",DestructiveHint = false, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Read UIDocument", Input = new Request { Target = "UIDocument" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
if (!string.IsNullOrEmpty(r.Target))
|
|
19
|
+
{
|
|
20
|
+
var go = UiToolSupport.ResolveGameObjectTarget(r.Target);
|
|
21
|
+
var doc = go.GetComponent<UIDocument>();
|
|
22
|
+
if (doc == null) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_NOT_FOUND", "UIDocument target not found: " + r.Target, "Pass a UIDocument GameObject or an Assets/*.uxml path.");
|
|
23
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Document = new UiDocumentLiveInfo { VisualTreeAsset = doc.visualTreeAsset?.name, PanelSettings = doc.panelSettings?.name, SortingOrder = doc.sortingOrder } });
|
|
24
|
+
}
|
|
25
|
+
var path = SceneToolSupport.NormalizeAssetPath(r.Path);
|
|
26
|
+
if (string.IsNullOrEmpty(path)) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_PATH_REQUIRED", "UIDocument info requires a target or Assets/*.uxml path.", "Pass a target or path.");
|
|
27
|
+
var vta = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(path);
|
|
28
|
+
var ss = string.IsNullOrEmpty(r.Uss) ? null : AssetDatabase.LoadAssetAtPath<StyleSheet>(r.Uss);
|
|
29
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Asset = new UiDocumentAssetInfo { Path = path, Name = Path.GetFileNameWithoutExtension(path), Exists = vta != null, VisualTreeName = vta?.name, StyleSheetName = ss?.name } });
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
#endif
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.document.update — 更新 UXML 文本内容。</summary>
|
|
11
|
+
public class UiDocumentUpdateTool : IUnityCliTool<UiDocumentUpdateTool.Request, UiDocumentUpdateTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Uxml { get; set; } public string Path { get; set; } public string Content { get; set; } }
|
|
14
|
+
public sealed class Result { public bool DryRun { get; set; } public UiDocumentAssetInfo Document { get; set; } public long SizeBytes { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.document.update", Summary = "Update the text content of an existing .uxml asset.", Description = "Write new content to an existing .uxml file and reimport. dryRun=true previews.", Group = "ui",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "asset-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Update UXML", Input = new Request { Uxml = "Assets/UI/Main.uxml", Content = "<ui:UXML />" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
var path = SceneToolSupport.NormalizeAssetPath(r.Uxml ?? r.Path);
|
|
19
|
+
if (string.IsNullOrEmpty(path) || !path.EndsWith(".uxml")) throw new UnityCliBridge.BridgeCommandException("E_UI_UXML_PATH_REQUIRED", "Pass an Assets/*.uxml path.", "");
|
|
20
|
+
if (r.Content == null) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_CONTENT_REQUIRED", "ui.document.update requires content.", "Pass --content or structured input content.");
|
|
21
|
+
var dryRun = ctx.DryRun;
|
|
22
|
+
if (dryRun) return new System.Threading.Tasks.ValueTask<Result>(new Result { DryRun = true, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.document.update", Uxml = path } } });
|
|
23
|
+
var fullPath = SceneToolSupport.AssetFullPath(path);
|
|
24
|
+
if (!File.Exists(fullPath)) throw new UnityCliBridge.BridgeCommandException("E_UI_UXML_NOT_FOUND", "VisualTreeAsset not found: " + path, "Pass an existing Assets/*.uxml path.");
|
|
25
|
+
ctx.CommitEffect();
|
|
26
|
+
File.WriteAllText(fullPath, r.Content, System.Text.Encoding.UTF8);
|
|
27
|
+
AssetDatabase.ImportAsset(path, ImportAssetOptions.ForceUpdate);
|
|
28
|
+
AssetDatabase.SaveAssets();
|
|
29
|
+
var observedContent = File.ReadAllText(fullPath, System.Text.Encoding.UTF8);
|
|
30
|
+
var observedAsset = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(path);
|
|
31
|
+
if (observedAsset == null || observedContent != r.Content) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_READBACK_FAILED", "Updated UXML could not be verified: " + path, "Check Unity Console for UXML import errors.");
|
|
32
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { DryRun = false, Document = new UiDocumentAssetInfo { Path = AssetDatabase.GetAssetPath(observedAsset), Name = observedAsset.name, Exists = File.Exists(fullPath) }, SizeBytes = new FileInfo(fullPath).Length, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.document.update", Uxml = path } } });
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
#endif
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.get-visual-tree — 读取 UIDocument 可视树结构。</summary>
|
|
11
|
+
public class UiGetVisualTreeTool : IUnityCliTool<UiGetVisualTreeTool.Request, UiGetVisualTreeTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Target { get; set; } public string Parent { get; set; } public int? MaxDepth { get; set; } }
|
|
14
|
+
public sealed class Result { public List<UiHierarchyItem> Items { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.get-visual-tree", Summary = "Read the visual tree hierarchy of a live UIDocument.", Description = "Traverse the VisualElement hierarchy of a UIDocument's root. Returns element names and types.", Group = "ui",DestructiveHint = false, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Read visual tree", Input = new Request { Target = "UIDocument" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
var go = UiToolSupport.ResolveGameObjectTarget(r.Target);
|
|
19
|
+
var doc = go.GetComponent<UIDocument>();
|
|
20
|
+
if (doc == null || doc.rootVisualElement == null) return new System.Threading.Tasks.ValueTask<Result>(new Result { Items = new List<UiHierarchyItem>() });
|
|
21
|
+
var items = new List<UiHierarchyItem>();
|
|
22
|
+
TraverseVisualElement(doc.rootVisualElement, "", 0, r.MaxDepth ?? 10, items);
|
|
23
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Items = items });
|
|
24
|
+
}
|
|
25
|
+
private static void TraverseVisualElement(VisualElement ve, string parentPath, int depth, int maxDepth, List<UiHierarchyItem> items)
|
|
26
|
+
{
|
|
27
|
+
if (depth > maxDepth) return;
|
|
28
|
+
var path = string.IsNullOrEmpty(parentPath) ? ve.name : parentPath + "/" + ve.name;
|
|
29
|
+
items.Add(new UiHierarchyItem { Name = ve.name, Path = path, Type = ve.GetType().Name, ChildCount = ve.childCount });
|
|
30
|
+
foreach (var child in ve.Children()) TraverseVisualElement(child, path, depth + 1, maxDepth, items);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
#endif
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.hierarchy — 列出 uGUI/UI Toolkit 层级。</summary>
|
|
11
|
+
public class UiHierarchyTool : IUnityCliTool<UiHierarchyTool.Request, UiHierarchyTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Target { get; set; } public string Parent { get; set; } public int? PageSize { get; set; } }
|
|
14
|
+
public sealed class Result { public List<UiHierarchyItem> Items { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.hierarchy", Summary = "List uGUI and UI Toolkit elements in the scene hierarchy.", Description = "Find Canvas, UIDocument, and visual element GameObjects. Optionally filter by target/parent.", Group = "ui",DestructiveHint = false, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "List UI hierarchy", Input = new Request { } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
var items = new List<UiHierarchyItem>();
|
|
19
|
+
var canvases = UnityEngine.Object.FindObjectsOfType<Canvas>();
|
|
20
|
+
foreach (var c in canvases) items.Add(new UiHierarchyItem { Name = c.gameObject.name, Path = GameObjectToolSupport.HierarchyPath(c.gameObject), Type = "Canvas", ChildCount = c.transform.childCount });
|
|
21
|
+
var docs = UnityEngine.Object.FindObjectsOfType<UIDocument>();
|
|
22
|
+
foreach (var d in docs) items.Add(new UiHierarchyItem { Name = d.gameObject.name, Path = GameObjectToolSupport.HierarchyPath(d.gameObject), Type = "UIDocument", ChildCount = d.transform.childCount });
|
|
23
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Items = items });
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
#endif
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using UnityEditor;
|
|
4
|
+
using UnityEngine;
|
|
5
|
+
using UiButton = UnityEngine.UI.Button;
|
|
6
|
+
using UiCanvasScaler = UnityEngine.UI.CanvasScaler;
|
|
7
|
+
using UiGraphicRaycaster = UnityEngine.UI.GraphicRaycaster;
|
|
8
|
+
using UiImage = UnityEngine.UI.Image;
|
|
9
|
+
using UiText = UnityEngine.UI.Text;
|
|
10
|
+
|
|
11
|
+
namespace UnityCli
|
|
12
|
+
{
|
|
13
|
+
/// <summary>ui.image.create — 创建 uGUI Image 元素。</summary>
|
|
14
|
+
public class UiImageCreateTool : IUnityCliTool<UiImageCreateTool.Request, UiImageCreateTool.Result>
|
|
15
|
+
{
|
|
16
|
+
public sealed class Request { public string Name { get; set; } public string Parent { get; set; } public string Sprite { get; set; } public string Color { get; set; } public float? Width { get; set; } public float? Height { get; set; } public float? X { get; set; } public float? Y { get; set; } }
|
|
17
|
+
public sealed class Result { public UiElementRef Element { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
18
|
+
public ToolDescriptor Describe() => new() { Name = "ui.image.create", Summary = "Create a uGUI Image element with optional sprite.", Description = "Create an Image element. Pass --sprite for an Assets/* sprite path.", Group = "ui",DestructiveHint = false, SideEffects = new[] { "scene-modify" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Create Image", Input = new Request { Parent = "Canvas" } } } };
|
|
19
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
20
|
+
{
|
|
21
|
+
var parent = UiToolSupport.ResolveUiParent(r.Parent);
|
|
22
|
+
if (parent == null) throw new UnityCliBridge.BridgeCommandException("E_UI_PARENT_NOT_FOUND", "UI parent Canvas or RectTransform not found: " + r.Parent, "Create a Canvas first.");
|
|
23
|
+
var name = string.IsNullOrEmpty(r.Name) ? "Image" : r.Name;
|
|
24
|
+
var requestedColor = string.IsNullOrEmpty(r.Color) ? Color.white : GraphicsToolSupport.ParseColor(r.Color);
|
|
25
|
+
var spritePath = SceneToolSupport.NormalizeAssetPath(r.Sprite);
|
|
26
|
+
var requestedSprite = string.IsNullOrEmpty(spritePath) ? null : AssetDatabase.LoadAssetAtPath<Sprite>(spritePath);
|
|
27
|
+
if (!string.IsNullOrEmpty(spritePath) && requestedSprite == null)
|
|
28
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_SPRITE_NOT_FOUND", "Sprite asset not found: " + spritePath, "Pass an Assets/* sprite path or omit --sprite.");
|
|
29
|
+
UiToolSupport.ValidateUguiRequest(null, r.Width, r.Height, r.X, r.Y);
|
|
30
|
+
ctx.CommitEffect();
|
|
31
|
+
var go = new GameObject(name, typeof(RectTransform));
|
|
32
|
+
go.transform.SetParent(parent.transform, false);
|
|
33
|
+
var image = go.AddComponent<UiImage>();
|
|
34
|
+
image.color = requestedColor;
|
|
35
|
+
image.sprite = requestedSprite;
|
|
36
|
+
UiRectHelper.ApplyRect(go.GetComponent<RectTransform>(), r.Width, r.Height, r.X, r.Y);
|
|
37
|
+
var observedGo = EditorUtility.InstanceIDToObject(go.GetInstanceID()) as GameObject;
|
|
38
|
+
var observedImage = observedGo == null ? null : observedGo.GetComponent<UiImage>();
|
|
39
|
+
var observedRect = observedGo == null ? null : observedGo.GetComponent<RectTransform>();
|
|
40
|
+
if (observedGo == null || observedGo.transform.parent != parent.transform || observedRect == null || (r.Width.HasValue && !Mathf.Approximately(observedRect.sizeDelta.x, r.Width.Value)) || (r.Height.HasValue && !Mathf.Approximately(observedRect.sizeDelta.y, r.Height.Value)) || (r.X.HasValue && !Mathf.Approximately(observedRect.anchoredPosition.x, r.X.Value)) || (r.Y.HasValue && !Mathf.Approximately(observedRect.anchoredPosition.y, r.Y.Value)) || observedImage == null || observedImage.sprite != requestedSprite || observedImage.color != requestedColor)
|
|
41
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_IMAGE_READBACK_FAILED", "Created Image does not match the requested sprite or color.", "Check Unity Console for scene mutation errors.");
|
|
42
|
+
Selection.activeGameObject = go;
|
|
43
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Element = UiToolSupport.BuildUiElementRef(go, "Image"), PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.image.create", Target = GameObjectToolSupport.HierarchyPath(go) } } });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
#endif
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.link-stylesheet — 链接 USS 到 UXML。</summary>
|
|
11
|
+
public class UiLinkStylesheetTool : IUnityCliTool<UiLinkStylesheetTool.Request, UiLinkStylesheetTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Path { get; set; } public string Uss { get; set; } public string StyleSheet { get; set; } }
|
|
14
|
+
public sealed class Result { public bool DryRun { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.link-stylesheet", Summary = "Link a .uss stylesheet to a .uxml document by appending a Style element.", Description = "Append <Style src=\"...\" /> to the .uxml file. dryRun=true previews.", Group = "ui",DestructiveHint = true, SupportsDryRun = true, SideEffects = new[] { "asset-write" }, Target = "editor", PlayModeSupport = "editor-only", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Link stylesheet", Input = new Request { Path = "Assets/UI/Main.uxml", Uss = "Assets/UI/Main.uss" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
var uxmlPath = SceneToolSupport.NormalizeAssetPath(r.Path);
|
|
19
|
+
var ussPath = SceneToolSupport.NormalizeAssetPath(r.Uss ?? r.StyleSheet);
|
|
20
|
+
if (string.IsNullOrEmpty(uxmlPath) || string.IsNullOrEmpty(ussPath)) throw new UnityCliBridge.BridgeCommandException("E_UI_PATH_REQUIRED", "ui.link-stylesheet requires --path (uxml) and --uss.", "Pass both uxml and uss paths.");
|
|
21
|
+
var dryRun = ctx.DryRun;
|
|
22
|
+
if (dryRun) return new System.Threading.Tasks.ValueTask<Result>(new Result { DryRun = true, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.link-stylesheet", Path = uxmlPath, Uss = ussPath } } });
|
|
23
|
+
var uxmlFullPath = SceneToolSupport.AssetFullPath(uxmlPath);
|
|
24
|
+
var requestedStyleSheet = UiToolSupport.LoadStyleSheet(ussPath);
|
|
25
|
+
var content = File.ReadAllText(uxmlFullPath);
|
|
26
|
+
var styleLine = " <Style src=\"" + Path.GetFileName(ussPath) + "\" />\n";
|
|
27
|
+
if (!content.Contains(styleLine.Trim()))
|
|
28
|
+
{
|
|
29
|
+
var insertIdx = content.LastIndexOf("</ui:UXML>");
|
|
30
|
+
if (insertIdx < 0) insertIdx = content.LastIndexOf("<");
|
|
31
|
+
if (insertIdx >= 0) content = content.Insert(insertIdx, styleLine);
|
|
32
|
+
else content += styleLine;
|
|
33
|
+
}
|
|
34
|
+
ctx.CommitEffect();
|
|
35
|
+
File.WriteAllText(uxmlFullPath, content, System.Text.Encoding.UTF8);
|
|
36
|
+
AssetDatabase.ImportAsset(uxmlPath, ImportAssetOptions.ForceUpdate);
|
|
37
|
+
AssetDatabase.SaveAssets();
|
|
38
|
+
var observedContent = File.ReadAllText(uxmlFullPath, System.Text.Encoding.UTF8);
|
|
39
|
+
var observedDocument = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>(uxmlPath);
|
|
40
|
+
var observedStyleSheet = AssetDatabase.LoadAssetAtPath<StyleSheet>(ussPath);
|
|
41
|
+
var expectedSource = Path.GetFileName(AssetDatabase.GetAssetPath(requestedStyleSheet));
|
|
42
|
+
var parsed = System.Xml.Linq.XDocument.Parse(observedContent);
|
|
43
|
+
var linked = false;
|
|
44
|
+
foreach (var element in parsed.Descendants())
|
|
45
|
+
{
|
|
46
|
+
var source = element.Attribute("src");
|
|
47
|
+
if (element.Name.LocalName == "Style" && source != null && source.Value == expectedSource) { linked = true; break; }
|
|
48
|
+
}
|
|
49
|
+
if (observedDocument == null || observedStyleSheet == null || !linked) throw new UnityCliBridge.BridgeCommandException("E_UI_STYLESHEET_READBACK_FAILED", "Stylesheet link could not be verified: " + uxmlPath, "Check Unity Console for UXML import errors.");
|
|
50
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { DryRun = false, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.link-stylesheet", Path = uxmlPath, Uss = ussPath } } });
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
#endif
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.list-documents — 列出 UI 文档资产。</summary>
|
|
11
|
+
public class UiListDocumentsTool : IUnityCliTool<UiListDocumentsTool.Request, UiListDocumentsTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Kind { get; set; } public int? PageSize { get; set; } }
|
|
14
|
+
public sealed class Result { public List<UiDocumentAssetInfo> Items { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.list-documents", Summary = "List UXML and USS assets in the project.", Description = "Search AssetDatabase for .uxml and .uss assets. kind=uxml or uss to filter.", Group = "ui",DestructiveHint = false, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "List UXML assets", Input = new Request { Kind = "uxml" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
var items = new List<UiDocumentAssetInfo>();
|
|
19
|
+
var kind = r.Kind ?? "all";
|
|
20
|
+
if (kind == "all" || kind == "uxml")
|
|
21
|
+
{
|
|
22
|
+
var guids = AssetDatabase.FindAssets("t:VisualTreeAsset");
|
|
23
|
+
foreach (var g in guids) { var p = AssetDatabase.GUIDToAssetPath(g); items.Add(new UiDocumentAssetInfo { Path = p, Name = Path.GetFileNameWithoutExtension(p), Exists = true }); }
|
|
24
|
+
}
|
|
25
|
+
if (kind == "all" || kind == "uss")
|
|
26
|
+
{
|
|
27
|
+
var guids = AssetDatabase.FindAssets("t:StyleSheet");
|
|
28
|
+
foreach (var g in guids) { var p = AssetDatabase.GUIDToAssetPath(g); items.Add(new UiDocumentAssetInfo { Path = p, Name = Path.GetFileNameWithoutExtension(p), Exists = true }); }
|
|
29
|
+
}
|
|
30
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { Items = items });
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
#endif
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
#if UNITY_EDITOR
|
|
2
|
+
using System.Collections.Generic;
|
|
3
|
+
using System.IO;
|
|
4
|
+
using UnityEditor;
|
|
5
|
+
using UnityEngine;
|
|
6
|
+
using UnityEngine.UIElements;
|
|
7
|
+
|
|
8
|
+
namespace UnityCli
|
|
9
|
+
{
|
|
10
|
+
/// <summary>ui.modify-visual-element — 修改 VisualElement 属性。</summary>
|
|
11
|
+
public class UiModifyVisualElementTool : IUnityCliTool<UiModifyVisualElementTool.Request, UiModifyVisualElementTool.Result>
|
|
12
|
+
{
|
|
13
|
+
public sealed class Request { public string Target { get; set; } public string ElementName { get; set; } public string Text { get; set; } public string Display { get; set; } public float? Width { get; set; } public float? Height { get; set; } public string AddClass { get; set; } public string RemoveClass { get; set; } }
|
|
14
|
+
public sealed class Result { public bool DryRun { get; set; } public UiVisualElementInfo Element { get; set; } public List<UiPlannedEffect> PlannedEffects { get; set; } }
|
|
15
|
+
public ToolDescriptor Describe() => new() { Name = "ui.modify-visual-element", Summary = "Modify a VisualElement in a live UIDocument by name.", Description = "Find a VisualElement by name in a UIDocument and modify text/display/size/classes. dryRun=true previews.", Group = "ui",DestructiveHint = false, SupportsDryRun = true, SideEffects = new[] { "ui-document-session-state" }, Target = "editor", PlayModeSupport = "supported", DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000, Examples = new[] { new ToolExample { Description = "Set text", Input = new Request { Target = "UIDocument", ElementName = "label", Text = "Updated" } } } };
|
|
16
|
+
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request r, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
17
|
+
{
|
|
18
|
+
var resolvedGo = UiToolSupport.ResolveGameObjectTarget(r.Target);
|
|
19
|
+
var targetId = resolvedGo.GetInstanceID();
|
|
20
|
+
var go = EditorUtility.InstanceIDToObject(targetId) as GameObject;
|
|
21
|
+
var doc = go == null ? null : go.GetComponent<UIDocument>();
|
|
22
|
+
if (go == null || go.GetInstanceID() != targetId || doc == null || doc.rootVisualElement == null) throw new UnityCliBridge.BridgeCommandException("E_UI_DOCUMENT_NOT_FOUND", "No UIDocument with a visual tree on target.", "Pass a target with a UIDocument.");
|
|
23
|
+
var dryRun = ctx.DryRun;
|
|
24
|
+
var element = doc.rootVisualElement.Q(r.ElementName);
|
|
25
|
+
if (element == null) throw new UnityCliBridge.BridgeCommandException("E_UI_ELEMENT_NOT_FOUND", "VisualElement not found: " + r.ElementName, "Pass a valid element name.");
|
|
26
|
+
var textElement = element as TextElement;
|
|
27
|
+
if (r.Text != null && textElement == null)
|
|
28
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_ELEMENT_TEXT_UNSUPPORTED", "VisualElement does not support text: " + r.ElementName, "Target a Label/TextElement or omit the text field.");
|
|
29
|
+
DisplayStyle requestedDisplay = default;
|
|
30
|
+
if (!string.IsNullOrEmpty(r.Display) && !System.Enum.TryParse(r.Display, true, out requestedDisplay))
|
|
31
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_DISPLAY_INVALID", "Unsupported display value: " + r.Display, "Pass a valid DisplayStyle value.");
|
|
32
|
+
UiToolSupport.ValidateVisualElementSize(r.Width, r.Height);
|
|
33
|
+
var hasRequestedMutation = r.Text != null || !string.IsNullOrEmpty(r.Display) || r.Width.HasValue || r.Height.HasValue || !string.IsNullOrEmpty(r.AddClass) || !string.IsNullOrEmpty(r.RemoveClass);
|
|
34
|
+
if (!dryRun && hasRequestedMutation)
|
|
35
|
+
{
|
|
36
|
+
ctx.CommitEffect();
|
|
37
|
+
if (r.Text != null)
|
|
38
|
+
{
|
|
39
|
+
textElement.text = r.Text;
|
|
40
|
+
}
|
|
41
|
+
if (!string.IsNullOrEmpty(r.Display)) element.style.display = requestedDisplay;
|
|
42
|
+
if (r.Width.HasValue) element.style.width = r.Width.Value;
|
|
43
|
+
if (r.Height.HasValue) element.style.height = r.Height.Value;
|
|
44
|
+
if (!string.IsNullOrEmpty(r.AddClass)) element.AddToClassList(r.AddClass);
|
|
45
|
+
if (!string.IsNullOrEmpty(r.RemoveClass)) element.RemoveFromClassList(r.RemoveClass);
|
|
46
|
+
|
|
47
|
+
// 写入后按实例 ID 重新解析场景对象和文档,确保读回来自当前对象。
|
|
48
|
+
var observedGo = EditorUtility.InstanceIDToObject(targetId) as GameObject;
|
|
49
|
+
var observedDocument = observedGo == null || observedGo.GetInstanceID() != targetId ? null : observedGo.GetComponent<UIDocument>();
|
|
50
|
+
var observed = observedDocument == null || observedDocument.rootVisualElement == null ? null : observedDocument.rootVisualElement.Q(r.ElementName);
|
|
51
|
+
if (observed == null ||
|
|
52
|
+
(r.Text != null && (!(observed is TextElement observedText) || observedText.text != r.Text)) ||
|
|
53
|
+
(!string.IsNullOrEmpty(r.Display) && observed.style.display.value != requestedDisplay) ||
|
|
54
|
+
(r.Width.HasValue && !Mathf.Approximately(observed.style.width.value.value, r.Width.Value)) ||
|
|
55
|
+
(r.Height.HasValue && !Mathf.Approximately(observed.style.height.value.value, r.Height.Value)) ||
|
|
56
|
+
(!string.IsNullOrEmpty(r.AddClass) && !observed.ClassListContains(r.AddClass)) ||
|
|
57
|
+
(!string.IsNullOrEmpty(r.RemoveClass) && observed.ClassListContains(r.RemoveClass)))
|
|
58
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_ELEMENT_READBACK_FAILED", "VisualElement does not match the requested changes: " + r.ElementName, "Check the UIDocument visual tree and retry.");
|
|
59
|
+
element = observed;
|
|
60
|
+
}
|
|
61
|
+
else if (!hasRequestedMutation)
|
|
62
|
+
{
|
|
63
|
+
// 空请求是只读操作;重新解析确保返回当前场景对象的状态而不提交 effect。
|
|
64
|
+
var observedGo = EditorUtility.InstanceIDToObject(targetId) as GameObject;
|
|
65
|
+
var observedDocument = observedGo == null || observedGo.GetInstanceID() != targetId ? null : observedGo.GetComponent<UIDocument>();
|
|
66
|
+
var observed = observedDocument == null || observedDocument.rootVisualElement == null ? null : observedDocument.rootVisualElement.Q(r.ElementName);
|
|
67
|
+
if (observed == null)
|
|
68
|
+
throw new UnityCliBridge.BridgeCommandException("E_UI_ELEMENT_READBACK_FAILED", "VisualElement could not be re-resolved: " + r.ElementName, "Check the UIDocument visual tree and retry.");
|
|
69
|
+
element = observed;
|
|
70
|
+
}
|
|
71
|
+
var observedTextElement = element as TextElement;
|
|
72
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result { DryRun = dryRun, Element = new UiVisualElementInfo { Name = element.name, Text = observedTextElement == null ? null : observedTextElement.text, Display = element.style.display.value.ToString(), Width = element.style.width.value.value, Height = element.style.height.value.value, Classes = new List<string>(element.GetClasses()).ToArray() }, PlannedEffects = new List<UiPlannedEffect> { new UiPlannedEffect { Type = "ui.modify-visual-element", Target = r.ElementName } } });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
#endif
|