@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,17 @@
|
|
|
1
|
+
export interface ToolsSearchRequest {
|
|
2
|
+
keyword: string;
|
|
3
|
+
}
|
|
4
|
+
export interface ToolsSearchItem {
|
|
5
|
+
name: string;
|
|
6
|
+
summary: string;
|
|
7
|
+
group: string;
|
|
8
|
+
source: string;
|
|
9
|
+
}
|
|
10
|
+
export interface ToolsSearchResult {
|
|
11
|
+
keyword: string;
|
|
12
|
+
tokens: string[];
|
|
13
|
+
count: number;
|
|
14
|
+
tools: ToolsSearchItem[];
|
|
15
|
+
}
|
|
16
|
+
declare const _default: import("../define.js").ToolDefinition<ToolsSearchRequest, ToolsSearchResult>;
|
|
17
|
+
export default _default;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { loadToolCatalog } from "../catalog.js";
|
|
2
|
+
import { defineTool } from "../define.js";
|
|
3
|
+
import { StructuredToolError } from "../errors.js";
|
|
4
|
+
import { toolSource } from "../metadata/index.js";
|
|
5
|
+
export default defineTool({
|
|
6
|
+
name: "tools.search",
|
|
7
|
+
summary: "Search tools by `|`-separated keywords across name, summary, description, and group with OR matching.",
|
|
8
|
+
description: "Search the complete Tool catalog owned by the connected Unity instance. keyword is split on `|`; a Tool matches when any token appears in its name, summary, description, or group (case-insensitive, OR semantics). Results are routing summaries only — use tools describe for schema, availability, and full details.",
|
|
9
|
+
group: "tools",
|
|
10
|
+
handler: "offline",
|
|
11
|
+
supportStatus: "cli-only",
|
|
12
|
+
destructiveHint: false,
|
|
13
|
+
sideEffects: [],
|
|
14
|
+
playModeSupport: "supported",
|
|
15
|
+
examples: [
|
|
16
|
+
{ description: "Search for hierarchy tools", argv: ["tools", "run", "tools.search", "--input", "{\"keyword\":\"hierarchy\"}"] },
|
|
17
|
+
{ description: "Search several capability areas in one call", argv: ["tools", "run", "tools.search", "--input", "{\"keyword\":\"editor|console|screenshot\"}"] },
|
|
18
|
+
],
|
|
19
|
+
async execute(request, context) {
|
|
20
|
+
const tokens = (request.keyword ?? "")
|
|
21
|
+
.split("|")
|
|
22
|
+
.map((token) => token.trim().toLowerCase())
|
|
23
|
+
.filter((token) => token.length > 0);
|
|
24
|
+
if (tokens.length === 0) {
|
|
25
|
+
throw new StructuredToolError("TOOLS_SEARCH_KEYWORD_REQUIRED", "Pass one or more `|`-separated keywords: unitycli tools search <k1|k2|...>.", ["Run unitycli tools group to see tool groups."]);
|
|
26
|
+
}
|
|
27
|
+
const flags = context.flags ?? {};
|
|
28
|
+
const catalog = await loadToolCatalog(flags, context, `${context.requestId}_search_execution`);
|
|
29
|
+
if (catalog.ok === false) {
|
|
30
|
+
throw StructuredToolError.from(catalog.error ?? { code: "TOOL_DISCOVERY_FAILED", message: "Tool discovery failed." });
|
|
31
|
+
}
|
|
32
|
+
const matches = catalog.tools.filter((tool) => tokens.some((token) => [tool.name, tool.summary, tool.description, tool.group].some((value) => value.toLowerCase().includes(token))));
|
|
33
|
+
const tools = matches.map((tool) => ({
|
|
34
|
+
name: tool.name,
|
|
35
|
+
summary: tool.summary,
|
|
36
|
+
group: tool.group,
|
|
37
|
+
source: toolSource(tool),
|
|
38
|
+
}));
|
|
39
|
+
return { keyword: request.keyword, tokens, count: tools.length, tools };
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../../../src/tools/tools/search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAMlD,eAAe,UAAU,CAAwC;IAC/D,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,uGAAuG;IAChH,WAAW,EAAE,0TAA0T;IACvU,KAAK,EAAE,OAAO;IACd,OAAO,EAAE,SAAS;IAClB,aAAa,EAAE,UAAU;IACzB,eAAe,EAAE,KAAK;IACtB,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,WAAW;IAC5B,QAAQ,EAAE;QACR,EAAE,WAAW,EAAE,4BAA4B,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,6BAA6B,CAAC,EAAE;QAC/H,EAAE,WAAW,EAAE,6CAA6C,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,6CAA6C,CAAC,EAAE;KACjK;IACD,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO;QAC5B,MAAM,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;aACnC,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;aAC1C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,mBAAmB,CAC3B,+BAA+B,EAC/B,6EAA6E,EAC7E,CAAC,8CAA8C,CAAC,CACjD,CAAC;QACJ,CAAC;QACD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,SAAS,mBAAmB,CAAC,CAAC;QAC/F,IAAI,OAAO,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;YACzB,MAAM,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACxH,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAC5C,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACpB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAC7G,CACF,CAAC;QACF,MAAM,KAAK,GAAsB,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACtD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC;SACzB,CAAC,CAAC,CAAC;QACJ,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IAC1E,CAAC;CACF,CAAC,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { Envelope, ToolError } from "./protocol/envelope.js";
|
|
2
|
+
/** CLI 内部名称仅作为唯一 wire envelope 的类型别名。 */
|
|
3
|
+
export type CliResult<T = unknown, TDetails = unknown> = Envelope<T, TDetails>;
|
|
4
|
+
/** CLI 内部名称仅作为唯一 wire error 的类型别名。 */
|
|
5
|
+
export type CliError<TDetails = unknown> = ToolError<TDetails>;
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface UnityProjectProcess {
|
|
2
|
+
processId: number;
|
|
3
|
+
processStartedAt: string;
|
|
4
|
+
executablePath: string;
|
|
5
|
+
argv: string[];
|
|
6
|
+
projectPath: string;
|
|
7
|
+
}
|
|
8
|
+
/** 解析带显式 -projectPath、可正向归因的 interactive Unity.exe 命令行观察。 */
|
|
9
|
+
export declare function parseUnityProjectProcessDiscoveryOutput(stdout: string): UnityProjectProcess[];
|
|
10
|
+
/** 枚举可提供显式项目参数的 Unity.exe,并以 CanonicalPath v1 精确归因;不覆盖 Registry 正式会话证明。 */
|
|
11
|
+
export declare function findUnityProjectProcesses(instanceId: string, canonicalProjectPath: string, timeoutMs?: number): Promise<UnityProjectProcess[]>;
|
|
12
|
+
export declare const WINDOWS_UNITY_PROCESS_DISCOVERY_SCRIPT = "$ErrorActionPreference = 'Stop'\nAdd-Type -TypeDefinition @\"\nusing System; using System.Runtime.InteropServices;\npublic static class UnityCliProjectProcessArgv { [DllImport(\"shell32.dll\", CharSet=CharSet.Unicode)] public static extern IntPtr CommandLineToArgvW(string commandLine, out int argc); [DllImport(\"kernel32.dll\")] public static extern IntPtr LocalFree(IntPtr value); public static string[] Parse(string commandLine) { int argc; var memory=CommandLineToArgvW(commandLine,out argc); if(memory==IntPtr.Zero) return null; try { var result=new string[argc]; for(var i=0;i<argc;i++) result[i]=Marshal.PtrToStringUni(Marshal.ReadIntPtr(memory,i*IntPtr.Size)); return result; } finally { LocalFree(memory); } } }\n\"@\n$items=@(Get-CimInstance Win32_Process -Filter \"Name='Unity.exe'\" -ErrorAction Stop | ForEach-Object { $argv=[UnityCliProjectProcessArgv]::Parse($_.CommandLine); if($argv){ @{ processId=[int]$_.ProcessId; processStartedAt=([DateTime]$_.CreationDate).ToUniversalTime().ToString('O'); executablePath=$_.ExecutablePath; argv=@($argv) } } })\nConvertTo-Json -InputObject $items -Compress -Depth 5";
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { basename } from "node:path";
|
|
3
|
+
import { promisify } from "node:util";
|
|
4
|
+
import { resolveProjectIdentityAsync } from "./project-identity.js";
|
|
5
|
+
const execFileAsync = promisify(execFile);
|
|
6
|
+
/** 解析带显式 -projectPath、可正向归因的 interactive Unity.exe 命令行观察。 */
|
|
7
|
+
export function parseUnityProjectProcessDiscoveryOutput(stdout) {
|
|
8
|
+
const text = stdout.trim();
|
|
9
|
+
if (!text)
|
|
10
|
+
return [];
|
|
11
|
+
const parsed = JSON.parse(text);
|
|
12
|
+
const items = Array.isArray(parsed) ? parsed : [parsed];
|
|
13
|
+
return items.flatMap((item) => {
|
|
14
|
+
if (!item || typeof item !== "object" || Array.isArray(item))
|
|
15
|
+
return [];
|
|
16
|
+
const record = item;
|
|
17
|
+
if (!Number.isInteger(record.processId) || Number(record.processId) <= 0
|
|
18
|
+
|| typeof record.processStartedAt !== "string" || !Number.isFinite(Date.parse(record.processStartedAt))
|
|
19
|
+
|| typeof record.executablePath !== "string" || basename(record.executablePath).toLowerCase() !== "unity.exe"
|
|
20
|
+
|| !Array.isArray(record.argv) || record.argv.some((value) => typeof value !== "string"))
|
|
21
|
+
return [];
|
|
22
|
+
const argv = record.argv;
|
|
23
|
+
if (argv.some((value) => value.toLowerCase() === "-batchmode"))
|
|
24
|
+
return [];
|
|
25
|
+
const projectIndex = argv.findIndex((value) => value.toLowerCase() === "-projectpath");
|
|
26
|
+
if (projectIndex < 0 || !argv[projectIndex + 1])
|
|
27
|
+
return [];
|
|
28
|
+
return [{ processId: Number(record.processId), processStartedAt: new Date(Date.parse(record.processStartedAt)).toISOString(), executablePath: record.executablePath, argv, projectPath: argv[projectIndex + 1] }];
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/** 枚举可提供显式项目参数的 Unity.exe,并以 CanonicalPath v1 精确归因;不覆盖 Registry 正式会话证明。 */
|
|
32
|
+
export async function findUnityProjectProcesses(instanceId, canonicalProjectPath, timeoutMs = 3_000) {
|
|
33
|
+
if (process.platform !== "win32" || timeoutMs < 1)
|
|
34
|
+
return [];
|
|
35
|
+
const startedAt = Date.now();
|
|
36
|
+
const { stdout } = await execFileAsync("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", WINDOWS_UNITY_PROCESS_DISCOVERY_SCRIPT], { timeout: timeoutMs, windowsHide: true, maxBuffer: 1024 * 1024 });
|
|
37
|
+
const matches = [];
|
|
38
|
+
for (const candidate of parseUnityProjectProcessDiscoveryOutput(stdout)) {
|
|
39
|
+
const remainingMs = Math.max(0, timeoutMs - (Date.now() - startedAt));
|
|
40
|
+
if (remainingMs < 1)
|
|
41
|
+
break;
|
|
42
|
+
try {
|
|
43
|
+
if ((await resolveProjectIdentityAsync(candidate.projectPath, { timeoutMs: remainingMs })).instanceId === instanceId)
|
|
44
|
+
matches.push(candidate);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Canonicalization could not prove this candidate; it must not become a project claim.
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return matches.sort((left, right) => left.processId - right.processId);
|
|
51
|
+
}
|
|
52
|
+
export const WINDOWS_UNITY_PROCESS_DISCOVERY_SCRIPT = `$ErrorActionPreference = 'Stop'
|
|
53
|
+
Add-Type -TypeDefinition @"
|
|
54
|
+
using System; using System.Runtime.InteropServices;
|
|
55
|
+
public static class UnityCliProjectProcessArgv { [DllImport("shell32.dll", CharSet=CharSet.Unicode)] public static extern IntPtr CommandLineToArgvW(string commandLine, out int argc); [DllImport("kernel32.dll")] public static extern IntPtr LocalFree(IntPtr value); public static string[] Parse(string commandLine) { int argc; var memory=CommandLineToArgvW(commandLine,out argc); if(memory==IntPtr.Zero) return null; try { var result=new string[argc]; for(var i=0;i<argc;i++) result[i]=Marshal.PtrToStringUni(Marshal.ReadIntPtr(memory,i*IntPtr.Size)); return result; } finally { LocalFree(memory); } } }
|
|
56
|
+
"@
|
|
57
|
+
$items=@(Get-CimInstance Win32_Process -Filter "Name='Unity.exe'" -ErrorAction Stop | ForEach-Object { $argv=[UnityCliProjectProcessArgv]::Parse($_.CommandLine); if($argv){ @{ processId=[int]$_.ProcessId; processStartedAt=([DateTime]$_.CreationDate).ToUniversalTime().ToString('O'); executablePath=$_.ExecutablePath; argv=@($argv) } } })
|
|
58
|
+
ConvertTo-Json -InputObject $items -Compress -Depth 5`;
|
|
59
|
+
//# sourceMappingURL=unity-project-processes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unity-project-processes.js","sourceRoot":"","sources":["../src/unity-project-processes.ts"],"names":[],"mappings":"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"}
|
package/dist/util.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 通用工具函数:跨模块共享的小型纯函数。
|
|
3
|
+
* 仅放真正无副作用的通用辅助,避免领域逻辑。
|
|
4
|
+
*/
|
|
5
|
+
/** 去除 UTF-8 BOM (\uFEFF) 前缀。读取用户/Unity 写入的 JSON 文件时统一处理。 */
|
|
6
|
+
export declare function stripBom(text: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* 关键词搜索打分:完全匹配 > 前缀匹配 > 包含匹配 > 无。
|
|
9
|
+
* 用于Tool discovery等稳定公开列表的排序。
|
|
10
|
+
*/
|
|
11
|
+
export declare function scoreSearch(text: string, query: string): number;
|
package/dist/util.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 通用工具函数:跨模块共享的小型纯函数。
|
|
3
|
+
* 仅放真正无副作用的通用辅助,避免领域逻辑。
|
|
4
|
+
*/
|
|
5
|
+
/** 去除 UTF-8 BOM (\uFEFF) 前缀。读取用户/Unity 写入的 JSON 文件时统一处理。 */
|
|
6
|
+
export function stripBom(text) {
|
|
7
|
+
return text.charCodeAt(0) === 0xfeff ? text.slice(1) : text;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 关键词搜索打分:完全匹配 > 前缀匹配 > 包含匹配 > 无。
|
|
11
|
+
* 用于Tool discovery等稳定公开列表的排序。
|
|
12
|
+
*/
|
|
13
|
+
export function scoreSearch(text, query) {
|
|
14
|
+
if (text === query)
|
|
15
|
+
return 8;
|
|
16
|
+
if (text.startsWith(query))
|
|
17
|
+
return 4;
|
|
18
|
+
if (text.includes(query))
|
|
19
|
+
return 2;
|
|
20
|
+
return 0;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=util.js.map
|
package/dist/util.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,4DAA4D;AAC5D,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa;IACrD,IAAI,IAAI,KAAK,KAAK;QAAE,OAAO,CAAC,CAAC;IAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACnC,OAAO,CAAC,CAAC;AACX,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface WindowsEditorButton {
|
|
2
|
+
label: string;
|
|
3
|
+
hwnd: string;
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface WindowsEditorWindow {
|
|
7
|
+
hwnd: string;
|
|
8
|
+
ownerHwnd: string | null;
|
|
9
|
+
className: string;
|
|
10
|
+
title: string;
|
|
11
|
+
message: string;
|
|
12
|
+
visible: boolean;
|
|
13
|
+
enabled: boolean;
|
|
14
|
+
buttons: WindowsEditorButton[];
|
|
15
|
+
modal: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface WindowsEditorStateProbe {
|
|
18
|
+
supported: boolean;
|
|
19
|
+
outcome: "observed-empty" | "observed-blocked" | "unproven" | "unsupported";
|
|
20
|
+
windows: WindowsEditorWindow[];
|
|
21
|
+
reason?: "timeout" | "exit" | "parse";
|
|
22
|
+
}
|
|
23
|
+
export interface WindowsEditorStateOptions {
|
|
24
|
+
platform?: NodeJS.Platform | string;
|
|
25
|
+
timeoutMs?: number;
|
|
26
|
+
}
|
|
27
|
+
/** 仅枚举指定 Unity PID 的顶层与 owned Windows,不发送任何窗口消息。 */
|
|
28
|
+
export declare function probeWindowsEditorState(processId: number, options?: WindowsEditorStateOptions): Promise<WindowsEditorStateProbe>;
|
|
29
|
+
export declare function buildWindowsEditorStateScript(processId: number): string;
|
|
30
|
+
export declare function parseWindowsEditorStateOutput(output: string): WindowsEditorStateProbe;
|
|
31
|
+
export declare const WINDOWS_EDITOR_STATE_PS_SCRIPT_TEMPLATE = "\n$ErrorActionPreference = 'Stop'\ntry {\n Add-Type -TypeDefinition @\"\nusing System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text;\npublic static class UnityCliWindowProbeNative {\n private delegate bool EnumWindowProc(IntPtr hwnd, IntPtr state);\n [DllImport(\"user32.dll\")] private static extern bool EnumWindows(EnumWindowProc callback, IntPtr state);\n [DllImport(\"user32.dll\")] private static extern bool EnumChildWindows(IntPtr parent, EnumWindowProc callback, IntPtr state);\n [DllImport(\"user32.dll\")] private static extern uint GetWindowThreadProcessId(IntPtr hwnd, out uint processId);\n [DllImport(\"user32.dll\")] private static extern IntPtr GetWindow(IntPtr hwnd, uint command);\n [DllImport(\"user32.dll\")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsWindowVisible(IntPtr hwnd);\n [DllImport(\"user32.dll\")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsWindowEnabled(IntPtr hwnd);\n [DllImport(\"user32.dll\", CharSet = CharSet.Unicode)] private static extern int GetClassNameW(IntPtr hwnd, StringBuilder value, int count);\n [DllImport(\"user32.dll\", CharSet = CharSet.Unicode)] private static extern int GetWindowTextW(IntPtr hwnd, StringBuilder value, int count);\n public static long[] TopLevelWindows(uint pid) { var handles=new List<long>(); EnumWindows((h,s)=>{uint p;GetWindowThreadProcessId(h,out p);if(p==pid)handles.Add(h.ToInt64());return true;},IntPtr.Zero); return handles.ToArray(); }\n public static long Owner(IntPtr hwnd) { return GetWindow(hwnd,4).ToInt64(); }\n public static string ClassName(IntPtr hwnd) { var value=new StringBuilder(256);GetClassNameW(hwnd,value,value.Capacity);return value.ToString(); }\n public static string WindowText(IntPtr hwnd) { var value=new StringBuilder(2048);GetWindowTextW(hwnd,value,value.Capacity);return value.ToString(); }\n public static object[] Buttons(IntPtr parent) { var result=new List<object>();EnumChildWindows(parent,(h,s)=>{if(string.Equals(ClassName(h),\"Button\",StringComparison.Ordinal)){var label=WindowText(h);if(!string.IsNullOrEmpty(label))result.Add(new {label=label,hwnd=\"0x\"+h.ToInt64().ToString(\"X\"),enabled=IsWindowEnabled(h)});}return true;},IntPtr.Zero);return result.ToArray(); }\n public static string Message(IntPtr parent,string title) { var result=new List<string>();EnumChildWindows(parent,(h,s)=>{var className=ClassName(h);if(string.Equals(className,\"Button\",StringComparison.Ordinal)||string.Equals(className,\"Static\",StringComparison.Ordinal))return true;var text=WindowText(h).Trim();if(!string.IsNullOrEmpty(text)&&!string.Equals(text,\"Static\",StringComparison.Ordinal)&&!string.Equals(text,title,StringComparison.Ordinal)&&!result.Contains(text))result.Add(text);return true;},IntPtr.Zero);return string.Join(\"\\n\",result.ToArray()); }\n}\n\"@\n Add-Type -AssemblyName UIAutomationClient\n Add-Type -AssemblyName UIAutomationTypes\n function Get-UnityCliWindowMessage([IntPtr]$handle, [string]$title) {\n try {\n $root=[System.Windows.Automation.AutomationElement]::FromHandle($handle)\n if($null -eq $root){ throw 'UI Automation did not resolve the window handle.' }\n $texts=New-Object 'System.Collections.Generic.List[string]'\n $buttonTexts=@([UnityCliWindowProbeNative]::Buttons($handle) | ForEach-Object { ([string]$_.label).Replace('&','') })\n foreach($element in $root.FindAll([System.Windows.Automation.TreeScope]::Descendants,[System.Windows.Automation.Condition]::TrueCondition)) {\n $current=$element.Current\n if($current.ControlType.ProgrammaticName -eq 'ControlType.Button'){ continue }\n $ancestor=$element; $insideButton=$false\n while($null -ne ($ancestor=[System.Windows.Automation.TreeWalker]::RawViewWalker.GetParent($ancestor))) {\n if($ancestor.Current.ControlType.ProgrammaticName -eq 'ControlType.Button'){ $insideButton=$true; break }\n }\n if($insideButton){ continue }\n $candidates=@($current.Name)\n try { $pattern=$element.GetCurrentPattern([System.Windows.Automation.TextPattern]::Pattern); if($null -ne $pattern){ $candidates += $pattern.DocumentRange.GetText(-1) } } catch {}\n foreach($candidate in $candidates) {\n $text=([string]$candidate).Trim()\n if(-not [string]::IsNullOrEmpty($text) -and $text -ne 'Static' -and $text -ne $title -and -not ($buttonTexts -contains $text) -and -not $texts.Contains($text)){ [void]$texts.Add($text) }\n }\n }\n return [string]::Join([Environment]::NewLine,$texts.ToArray())\n } catch { return [UnityCliWindowProbeNative]::Message($handle,$title) }\n }\n $targetProcessId=[uint32]__UNITY_CLI_PROCESS_ID__; $items=@()\n foreach($rawHandle in [UnityCliWindowProbeNative]::TopLevelWindows($targetProcessId)) { try {\n $handle=[IntPtr]([int64]$rawHandle); $ownerValue=[int64][UnityCliWindowProbeNative]::Owner($handle); $owner=[IntPtr]$ownerValue; $className=[UnityCliWindowProbeNative]::ClassName($handle); $title=[UnityCliWindowProbeNative]::WindowText($handle); $visible=[UnityCliWindowProbeNative]::IsWindowVisible($handle); $enabled=[UnityCliWindowProbeNative]::IsWindowEnabled($handle); $ownerDisabled=$ownerValue -ne 0 -and -not [UnityCliWindowProbeNative]::IsWindowEnabled($owner)\n $buttonLabels=@([UnityCliWindowProbeNative]::Buttons($handle) | ForEach-Object { $_.label }); $normalizedButtonLabels=@($buttonLabels | ForEach-Object { ([string]$_).Replace('&','') }); $unityProgress=($className -eq 'UnityContainerWndClass' -and $title -match '(busy for [0-9]+s)...$') -or ($normalizedButtonLabels -contains 'Cancel' -and $normalizedButtonLabels -contains 'Skip Transcoding'); $modal=$visible -and -not $unityProgress -and (($ownerValue -ne 0 -and $ownerDisabled) -or $className -eq '#32770')\n $buttons=[object[]]@(); if($modal){ $buttons=[object[]]@([UnityCliWindowProbeNative]::Buttons($handle)) }\n $items += @{hwnd='0x'+([int64]$rawHandle).ToString('X');ownerHwnd=if($ownerValue -eq 0){$null}else{'0x'+$ownerValue.ToString('X')};className=$className;title=$title;message=if($modal){Get-UnityCliWindowMessage $handle $title}else{''};visible=[bool]$visible;enabled=[bool]$enabled;buttons=$buttons;modal=[bool]$modal}\n } catch {} }\n ConvertTo-Json -InputObject @($items) -Compress -Depth 5\n} catch { exit 1 }";
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { execFile } from "node:child_process";
|
|
2
|
+
import { platform as currentPlatform } from "node:os";
|
|
3
|
+
/** 仅枚举指定 Unity PID 的顶层与 owned Windows,不发送任何窗口消息。 */
|
|
4
|
+
export async function probeWindowsEditorState(processId, options = {}) {
|
|
5
|
+
if ((options.platform ?? currentPlatform()) !== "win32" || !Number.isInteger(processId) || processId < 1)
|
|
6
|
+
return { supported: false, outcome: "unsupported", windows: [] };
|
|
7
|
+
const execution = await runPowerShell(buildWindowsEditorStateScript(processId), Math.max(1, options.timeoutMs ?? 300));
|
|
8
|
+
if (execution.reason)
|
|
9
|
+
return { supported: true, outcome: "unproven", windows: [], reason: execution.reason };
|
|
10
|
+
return parseWindowsEditorStateOutput(execution.stdout);
|
|
11
|
+
}
|
|
12
|
+
export function buildWindowsEditorStateScript(processId) { return WINDOWS_EDITOR_STATE_PS_SCRIPT_TEMPLATE.replace("__UNITY_CLI_PROCESS_ID__", String(processId)); }
|
|
13
|
+
export function parseWindowsEditorStateOutput(output) {
|
|
14
|
+
const line = output.split(/\r?\n/).map((value) => value.trim()).filter(Boolean).at(-1);
|
|
15
|
+
if (!line)
|
|
16
|
+
return { supported: true, outcome: "unproven", windows: [], reason: "parse" };
|
|
17
|
+
try {
|
|
18
|
+
const values = Array.isArray(JSON.parse(line)) ? JSON.parse(line) : [JSON.parse(line)];
|
|
19
|
+
const windows = values.flatMap(normalizeWindow);
|
|
20
|
+
if (windows.length !== values.length)
|
|
21
|
+
return { supported: true, outcome: "unproven", windows: [], reason: "parse" };
|
|
22
|
+
return { supported: true, outcome: windows.some((window) => window.modal) ? "observed-blocked" : "observed-empty", windows };
|
|
23
|
+
}
|
|
24
|
+
catch {
|
|
25
|
+
return { supported: true, outcome: "unproven", windows: [], reason: "parse" };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
function normalizeWindow(value) {
|
|
29
|
+
if (!value || typeof value !== "object" || Array.isArray(value))
|
|
30
|
+
return [];
|
|
31
|
+
const raw = value;
|
|
32
|
+
if (typeof raw.hwnd !== "string" || typeof raw.className !== "string" || typeof raw.title !== "string" || typeof raw.message !== "string" || typeof raw.visible !== "boolean" || typeof raw.enabled !== "boolean" || typeof raw.modal !== "boolean" || !Array.isArray(raw.buttons))
|
|
33
|
+
return [];
|
|
34
|
+
const buttons = raw.buttons.flatMap((button) => button && typeof button === "object" && !Array.isArray(button) && typeof button.label === "string" && typeof button.hwnd === "string" && typeof button.enabled === "boolean" ? [{ label: button.label, hwnd: button.hwnd, enabled: button.enabled }] : []);
|
|
35
|
+
if (buttons.length !== raw.buttons.length)
|
|
36
|
+
return [];
|
|
37
|
+
return [{ hwnd: raw.hwnd, ownerHwnd: typeof raw.ownerHwnd === "string" ? raw.ownerHwnd : null, className: raw.className, title: raw.title, message: raw.message, visible: raw.visible, enabled: raw.enabled, buttons, modal: raw.modal }];
|
|
38
|
+
}
|
|
39
|
+
export const WINDOWS_EDITOR_STATE_PS_SCRIPT_TEMPLATE = `
|
|
40
|
+
$ErrorActionPreference = 'Stop'
|
|
41
|
+
try {
|
|
42
|
+
Add-Type -TypeDefinition @"
|
|
43
|
+
using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Text;
|
|
44
|
+
public static class UnityCliWindowProbeNative {
|
|
45
|
+
private delegate bool EnumWindowProc(IntPtr hwnd, IntPtr state);
|
|
46
|
+
[DllImport("user32.dll")] private static extern bool EnumWindows(EnumWindowProc callback, IntPtr state);
|
|
47
|
+
[DllImport("user32.dll")] private static extern bool EnumChildWindows(IntPtr parent, EnumWindowProc callback, IntPtr state);
|
|
48
|
+
[DllImport("user32.dll")] private static extern uint GetWindowThreadProcessId(IntPtr hwnd, out uint processId);
|
|
49
|
+
[DllImport("user32.dll")] private static extern IntPtr GetWindow(IntPtr hwnd, uint command);
|
|
50
|
+
[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsWindowVisible(IntPtr hwnd);
|
|
51
|
+
[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool IsWindowEnabled(IntPtr hwnd);
|
|
52
|
+
[DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern int GetClassNameW(IntPtr hwnd, StringBuilder value, int count);
|
|
53
|
+
[DllImport("user32.dll", CharSet = CharSet.Unicode)] private static extern int GetWindowTextW(IntPtr hwnd, StringBuilder value, int count);
|
|
54
|
+
public static long[] TopLevelWindows(uint pid) { var handles=new List<long>(); EnumWindows((h,s)=>{uint p;GetWindowThreadProcessId(h,out p);if(p==pid)handles.Add(h.ToInt64());return true;},IntPtr.Zero); return handles.ToArray(); }
|
|
55
|
+
public static long Owner(IntPtr hwnd) { return GetWindow(hwnd,4).ToInt64(); }
|
|
56
|
+
public static string ClassName(IntPtr hwnd) { var value=new StringBuilder(256);GetClassNameW(hwnd,value,value.Capacity);return value.ToString(); }
|
|
57
|
+
public static string WindowText(IntPtr hwnd) { var value=new StringBuilder(2048);GetWindowTextW(hwnd,value,value.Capacity);return value.ToString(); }
|
|
58
|
+
public static object[] Buttons(IntPtr parent) { var result=new List<object>();EnumChildWindows(parent,(h,s)=>{if(string.Equals(ClassName(h),"Button",StringComparison.Ordinal)){var label=WindowText(h);if(!string.IsNullOrEmpty(label))result.Add(new {label=label,hwnd="0x"+h.ToInt64().ToString("X"),enabled=IsWindowEnabled(h)});}return true;},IntPtr.Zero);return result.ToArray(); }
|
|
59
|
+
public static string Message(IntPtr parent,string title) { var result=new List<string>();EnumChildWindows(parent,(h,s)=>{var className=ClassName(h);if(string.Equals(className,"Button",StringComparison.Ordinal)||string.Equals(className,"Static",StringComparison.Ordinal))return true;var text=WindowText(h).Trim();if(!string.IsNullOrEmpty(text)&&!string.Equals(text,"Static",StringComparison.Ordinal)&&!string.Equals(text,title,StringComparison.Ordinal)&&!result.Contains(text))result.Add(text);return true;},IntPtr.Zero);return string.Join("\\n",result.ToArray()); }
|
|
60
|
+
}
|
|
61
|
+
"@
|
|
62
|
+
Add-Type -AssemblyName UIAutomationClient
|
|
63
|
+
Add-Type -AssemblyName UIAutomationTypes
|
|
64
|
+
function Get-UnityCliWindowMessage([IntPtr]$handle, [string]$title) {
|
|
65
|
+
try {
|
|
66
|
+
$root=[System.Windows.Automation.AutomationElement]::FromHandle($handle)
|
|
67
|
+
if($null -eq $root){ throw 'UI Automation did not resolve the window handle.' }
|
|
68
|
+
$texts=New-Object 'System.Collections.Generic.List[string]'
|
|
69
|
+
$buttonTexts=@([UnityCliWindowProbeNative]::Buttons($handle) | ForEach-Object { ([string]$_.label).Replace('&','') })
|
|
70
|
+
foreach($element in $root.FindAll([System.Windows.Automation.TreeScope]::Descendants,[System.Windows.Automation.Condition]::TrueCondition)) {
|
|
71
|
+
$current=$element.Current
|
|
72
|
+
if($current.ControlType.ProgrammaticName -eq 'ControlType.Button'){ continue }
|
|
73
|
+
$ancestor=$element; $insideButton=$false
|
|
74
|
+
while($null -ne ($ancestor=[System.Windows.Automation.TreeWalker]::RawViewWalker.GetParent($ancestor))) {
|
|
75
|
+
if($ancestor.Current.ControlType.ProgrammaticName -eq 'ControlType.Button'){ $insideButton=$true; break }
|
|
76
|
+
}
|
|
77
|
+
if($insideButton){ continue }
|
|
78
|
+
$candidates=@($current.Name)
|
|
79
|
+
try { $pattern=$element.GetCurrentPattern([System.Windows.Automation.TextPattern]::Pattern); if($null -ne $pattern){ $candidates += $pattern.DocumentRange.GetText(-1) } } catch {}
|
|
80
|
+
foreach($candidate in $candidates) {
|
|
81
|
+
$text=([string]$candidate).Trim()
|
|
82
|
+
if(-not [string]::IsNullOrEmpty($text) -and $text -ne 'Static' -and $text -ne $title -and -not ($buttonTexts -contains $text) -and -not $texts.Contains($text)){ [void]$texts.Add($text) }
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return [string]::Join([Environment]::NewLine,$texts.ToArray())
|
|
86
|
+
} catch { return [UnityCliWindowProbeNative]::Message($handle,$title) }
|
|
87
|
+
}
|
|
88
|
+
$targetProcessId=[uint32]__UNITY_CLI_PROCESS_ID__; $items=@()
|
|
89
|
+
foreach($rawHandle in [UnityCliWindowProbeNative]::TopLevelWindows($targetProcessId)) { try {
|
|
90
|
+
$handle=[IntPtr]([int64]$rawHandle); $ownerValue=[int64][UnityCliWindowProbeNative]::Owner($handle); $owner=[IntPtr]$ownerValue; $className=[UnityCliWindowProbeNative]::ClassName($handle); $title=[UnityCliWindowProbeNative]::WindowText($handle); $visible=[UnityCliWindowProbeNative]::IsWindowVisible($handle); $enabled=[UnityCliWindowProbeNative]::IsWindowEnabled($handle); $ownerDisabled=$ownerValue -ne 0 -and -not [UnityCliWindowProbeNative]::IsWindowEnabled($owner)
|
|
91
|
+
$buttonLabels=@([UnityCliWindowProbeNative]::Buttons($handle) | ForEach-Object { $_.label }); $normalizedButtonLabels=@($buttonLabels | ForEach-Object { ([string]$_).Replace('&','') }); $unityProgress=($className -eq 'UnityContainerWndClass' -and $title -match '\(busy for [0-9]+s\)\.\.\.$') -or ($normalizedButtonLabels -contains 'Cancel' -and $normalizedButtonLabels -contains 'Skip Transcoding'); $modal=$visible -and -not $unityProgress -and (($ownerValue -ne 0 -and $ownerDisabled) -or $className -eq '#32770')
|
|
92
|
+
$buttons=[object[]]@(); if($modal){ $buttons=[object[]]@([UnityCliWindowProbeNative]::Buttons($handle)) }
|
|
93
|
+
$items += @{hwnd='0x'+([int64]$rawHandle).ToString('X');ownerHwnd=if($ownerValue -eq 0){$null}else{'0x'+$ownerValue.ToString('X')};className=$className;title=$title;message=if($modal){Get-UnityCliWindowMessage $handle $title}else{''};visible=[bool]$visible;enabled=[bool]$enabled;buttons=$buttons;modal=[bool]$modal}
|
|
94
|
+
} catch {} }
|
|
95
|
+
ConvertTo-Json -InputObject @($items) -Compress -Depth 5
|
|
96
|
+
} catch { exit 1 }`;
|
|
97
|
+
function runPowerShell(script, timeout) { return new Promise((resolve) => execFile("powershell.exe", ["-NoProfile", "-NonInteractive", "-Command", script], { timeout, windowsHide: true }, (error, stdout) => resolve(error ? { stdout, reason: error.killed ? "timeout" : "exit" } : { stdout }))); }
|
|
98
|
+
//# sourceMappingURL=windows-editor-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"windows-editor-state.js","sourceRoot":"","sources":["../src/windows-editor-state.ts"],"names":[],"mappings":"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"}
|
package/docs/README.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# 文档索引
|
|
2
|
+
|
|
3
|
+
本目录只保留当前 `unitycli` 的使用、扩展与诊断文档。
|
|
4
|
+
|
|
5
|
+
## 快速开始
|
|
6
|
+
|
|
7
|
+
| 文档 | 内容 |
|
|
8
|
+
|------|------|
|
|
9
|
+
| [Target 与 Instance](target-and-instance.md) | 运行中 Unity Editor 实例发现、目标选择、别名管理 |
|
|
10
|
+
| [工具发现](tool-discovery.md) | `tools group` → `tools group list` → `tools describe` 的自发现流程 |
|
|
11
|
+
| [工具执行](tool-execution.md) | `tools run`的结构化JSON执行、输入与验证方式 |
|
|
12
|
+
| [Command执行](command-execution.md) | 同一Tool catalog的schema参数调用、名称选择与argv绑定 |
|
|
13
|
+
| [可用性差异](availability-differences.md) | 为什么不同 Editor、Package、Play Mode 状态下工具可用性不同 |
|
|
14
|
+
|
|
15
|
+
## 安全与诊断
|
|
16
|
+
|
|
17
|
+
| 文档 | 内容 |
|
|
18
|
+
|------|------|
|
|
19
|
+
| [安全边界](safety-boundaries.md) | 调用授权、风险元数据与正确性边界 |
|
|
20
|
+
| [风险与副作用](risk-and-side-effects.md) | `destructiveHint`、`supportsDryRun`、`plannedEffects` 与可选预览 |
|
|
21
|
+
| [错误码](error-codes.md) | 结构化错误、`nextActions` 与恢复建议 |
|
|
22
|
+
|
|
23
|
+
## 扩展
|
|
24
|
+
|
|
25
|
+
| 文档 | 内容 |
|
|
26
|
+
|------|------|
|
|
27
|
+
| [扩展包](extensions.md) | bundled optional extensions 的安装、卸载、诊断和依赖边界 |
|
|
28
|
+
| [自定义 Tool](../skills/unitycli/references/custom-tools.md) | 项目侧 `IUnityCliTool<TReq,TRes>` 注册、发现与执行 |
|
|
29
|
+
| [Skill 操作协议](../skills/unitycli/references/operation-protocol.md) | 实例选择、descriptor、envelope、分页、artifact、弹窗与 outcome unknown |
|
|
30
|
+
| [Skill 问题反馈](../skills/unitycli/references/feedback.md) | `FeedbackMode`、受限字段、本地滚动 JSONL 与回复摘要 |
|
|
31
|
+
|
|
32
|
+
## AI Agent 阅读顺序
|
|
33
|
+
|
|
34
|
+
1. 先读 `skills/unitycli/SKILL.md` 获取最小入口规则。
|
|
35
|
+
2. 需要命令细节时读`target-and-instance.md`、`tool-discovery.md`、`tool-execution.md`和`command-execution.md`。
|
|
36
|
+
3. 涉及写操作或高风险操作时读 `safety-boundaries.md` 与 `risk-and-side-effects.md`。
|
|
37
|
+
4. 需要项目扩展能力时读 `extensions.md`。
|
|
38
|
+
|
|
39
|
+
## 相关目录
|
|
40
|
+
|
|
41
|
+
- `schemas/`:公开 JSON Schema 契约。
|
|
42
|
+
- `examples/`:Editor、runtime、自定义 Tool 示例。
|
|
43
|
+
- `skills/unitycli/`:AI Agent 入口 Skill 与按需引文。
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# 可用性差异(Availability Differences)
|
|
2
|
+
|
|
3
|
+
## 核心原则
|
|
4
|
+
|
|
5
|
+
能力目录和可用性都是per-instance。`tools`读取一个已连接Unity实例的完整catalog;省略name的`command`只是该catalog的command-name投影。不同项目、Package、Extension、项目注册和Editor状态会产生不同descriptor集合与`available`状态。
|
|
6
|
+
|
|
7
|
+
完整显示不等于无条件执行。目录不按 source 或 Edit/Play 状态过滤,执行仍按 schema、Package、PlayMode、安全、deadline 和 completion contract fail closed。
|
|
8
|
+
|
|
9
|
+
## 外部控制面排除
|
|
10
|
+
|
|
11
|
+
catalog只包含必须由已打开Unity Editor或development Player提供的项目内自动化。auth、Unity Hub、Editor安装或打开、Cloud、License和proxy配置由系统或官方控制面工具负责;`unitycli`不会把这些操作包装成Tool、相似名称映射或额外顶层命令。
|
|
12
|
+
|
|
13
|
+
## 实例状态
|
|
14
|
+
|
|
15
|
+
| 状态 | Discovery 与执行 |
|
|
16
|
+
|------|------------------|
|
|
17
|
+
| `ready` | 返回当前实例完整Tool catalog;session/listener与近期主线程pulse均已证明 |
|
|
18
|
+
| `transitioning` | supervisor在同一deadline内等待lifecycle与listener generation交接 |
|
|
19
|
+
| `blocked` | 返回blocker error;`editor.state` / `editor.dialogs`提供独立只读恢复路径 |
|
|
20
|
+
| `unresponsive` | transport存在但主线程不可响应;返回`E_UNITY_UNRESPONSIVE` |
|
|
21
|
+
| `unverifiable` | ownership证据不完整;返回`E_INSTANCE_UNVERIFIABLE`,不得误报duplicate |
|
|
22
|
+
| `offline` | 不返回capability catalog;返回`E_INSTANCE_NOT_RUNNING` |
|
|
23
|
+
| `conflict` | 至少两个verified live claim;返回`E_INSTANCE_CONFLICT` |
|
|
24
|
+
|
|
25
|
+
没有 selector 且 CWD 不在 Unity 项目中时返回 `E_INSTANCE_REQUIRED`。静态 snapshot 不作为公开 fallback。
|
|
26
|
+
|
|
27
|
+
## Package 与 Extension
|
|
28
|
+
|
|
29
|
+
依赖特定 Unity Package 的能力仍出现在实例目录中。descriptor 使用以下字段表达当前可执行性:
|
|
30
|
+
|
|
31
|
+
```json
|
|
32
|
+
{
|
|
33
|
+
"name": "probuilder.create-shape",
|
|
34
|
+
"source": "extension",
|
|
35
|
+
"requiresPackages": ["com.unity.probuilder"],
|
|
36
|
+
"available": false,
|
|
37
|
+
"unavailableReason": "E_EXTENSION_DEPENDENCY_MISSING: ..."
|
|
38
|
+
}
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`source` 只用于说明和审计,不影响 visibility、describe、execution 或公开路由。安装 Package/Extension 后重新运行原 discovery 命令。
|
|
42
|
+
|
|
43
|
+
## 项目注册能力
|
|
44
|
+
|
|
45
|
+
项目通过 `IUnityCliTool<TReq,TRes>` 注册的能力,与 package 内置和 Extension 能力使用相同入口:
|
|
46
|
+
|
|
47
|
+
```powershell
|
|
48
|
+
unitycli tools group
|
|
49
|
+
unitycli tools group list <group>
|
|
50
|
+
unitycli tools describe <tool>
|
|
51
|
+
unitycli tools run <tool> --input '<json>'
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
不同实例可以注册不同名称和分组;不需要额外来源参数,也不存在来源专用能力入口。official attribute Tool固定使用`UnityPipeline_<原名>`和`UnityPipeline`group,可由`command <原名>`选择。
|
|
55
|
+
|
|
56
|
+
## EditMode 与 PlayMode
|
|
57
|
+
|
|
58
|
+
Editor 与 Runtime 能力在两种模式中都保持可发现。`available`、`unavailableReason`、`target`、`availabilityScope` 和 `playModeSupport` 表达当前状态:
|
|
59
|
+
|
|
60
|
+
| 当前模式 | `target: editor` | `target: runtime` |
|
|
61
|
+
|---------|------------------|-------------------|
|
|
62
|
+
| EditMode | 通常可执行 | 显示但通常 `available:false`;执行返回 `E_RUNTIME_NOT_READY` |
|
|
63
|
+
| PlayMode | 依据 `playModeSupport` 执行或拒绝 | 可执行;结果通常限于当前 PlayMode session |
|
|
64
|
+
|
|
65
|
+
进入 PlayMode 的标准步骤:
|
|
66
|
+
|
|
67
|
+
1. `unitycli tools run editor.play --input '{}'`
|
|
68
|
+
2. `unitycli tools run editor.state --input '{}'`
|
|
69
|
+
3. 重新 `tools describe <runtime-tool>` 或直接按 `nextActions` 调用
|
|
70
|
+
|
|
71
|
+
Editor-only Tool 在 PlayMode 中同样保持可见,但执行继续返回准确错误。
|
|
72
|
+
|
|
73
|
+
## Unity 版本差异
|
|
74
|
+
|
|
75
|
+
Unity API版本门禁不从major版本猜测。Tool仍在当前实例catalog中,`available:false`与`unavailableReason`说明当前编译API surface。
|
|
76
|
+
|
|
77
|
+
`screenshot.editor-element`只在Unity6000.7+可执行,因为它唯一使用该版本公开的UI Toolkit `VisualElement.CaptureToRenderTexture`。更早版本仍可discover/describe,但actual与framework dry-run都在render、artifact write和effect barrier之前返回`E_EDITOR_ELEMENT_CAPTURE_UNAVAILABLE`。
|
|
78
|
+
|
|
79
|
+
`editor.autotick.set`会在当前Editor没有可调用的`EditorApplication.SignalTick`时返回`E_EDITOR_AUTOTICK_UNAVAILABLE`,不会注册替代update owner或持久化fallback。
|
|
80
|
+
|
|
81
|
+
## Domain Reload
|
|
82
|
+
|
|
83
|
+
Domain reload期间,Registry v3 lifecycle将实例归约为`transitioning`,listener generation随后交接;Health v3中该generation的首个Unity主线程pulse才允许归约为`ready`。系统不读取固定三分钟或其他deadline marker。session supervisor只在同一`editorSessionId`内续接完全相同的请求;首次mutation POST后若session改变,不向新session重投,并返回`E_EXECUTION_TIMEOUT`与outcome unknown。调用方先读取业务状态,再决定是否提交全新请求。
|
|
84
|
+
|
|
85
|
+
## AI Agent 处理方式
|
|
86
|
+
|
|
87
|
+
1. 显式传 `--instance <id|projectPath|alias>`,或从目标 Unity 项目 CWD 调用。
|
|
88
|
+
2. 先 discovery,再 describe;不要从 source 或工具名推断参数。
|
|
89
|
+
3. 对 `available:false` 读取 `unavailableReason`、`requiresPackages` 和 `nextActions`。
|
|
90
|
+
4. Package、Extension、项目代码、domain reload 或 PlayMode 变化后重新 discovery。
|
|
91
|
+
5. 即时状态使用 `tools run editor.state --input '{}'`。
|
|
92
|
+
|
|
93
|
+
## 交叉引用
|
|
94
|
+
|
|
95
|
+
- [Target 与 Instance](./target-and-instance.md)
|
|
96
|
+
- [工具发现](./tool-discovery.md)
|
|
97
|
+
- [错误码](./error-codes.md)
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# Command执行
|
|
2
|
+
|
|
3
|
+
`command`是唯一Tool catalog的schema参数调用入口。它不复制descriptor、registry、dispatcher、security、completion或JSON envelope;同一Tool也可由`tools run <tool> --input <json>`调用。
|
|
4
|
+
|
|
5
|
+
## 发现与选择
|
|
6
|
+
|
|
7
|
+
省略name时读取选定实例的完整live catalog,并返回command-name投影:
|
|
8
|
+
|
|
9
|
+
```powershell
|
|
10
|
+
unitycli command --project-path C:\path\MyProject
|
|
11
|
+
unitycli command --instance <id|projectPath|alias>
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
名称选择是exact且确定的:
|
|
15
|
+
|
|
16
|
+
1. native Tool完整精确名优先。
|
|
17
|
+
2. 没有native精确名时,`command <name>`可选择实际注册的`UnityPipeline_<name>` official attribute Tool。
|
|
18
|
+
3. `command UnityPipeline_<name>`显式选择该attribute Tool。
|
|
19
|
+
4. 不做snake_case、camelCase、dotted name、相似能力或语义映射;未注册名称返回`E_TOOL_NOT_FOUND_FOR_TARGET`。
|
|
20
|
+
|
|
21
|
+
`[CliCommand("test")]`在`tools`目录中只显示为`UnityPipeline_test`,group固定为`UnityPipeline`。两个attribute方法使用同一原名,或native Tool占用`UnityPipeline_`前缀/`UnityPipeline` group,会使整个live registry fail closed。
|
|
22
|
+
|
|
23
|
+
## Official Attribute Profile
|
|
24
|
+
|
|
25
|
+
registry按完整类型名识别Unity官方`[CliCommand]`、`[CliArg]`和`IStructuredCommandInput`,core package不建立对`com.unity.pipeline`的编译依赖。method声明assembly属于exact Package ID `com.unity.pipeline`时,该provider已由native能力吸收并在注册前整体抑制;项目与其他Package中的attribute方法不受影响。过滤不使用命令名、namespace、assembly名称或attribute定义assembly。attributed method必须是static、非泛型,并且只接受以下返回形态:
|
|
26
|
+
|
|
27
|
+
- 同步`void`或同步结果值。
|
|
28
|
+
- `Task`或`Task<T>`;`async void`和其他自定义awaitable使整个registry fail closed。
|
|
29
|
+
- `RuntimeOnly=true`固定投影为runtime-only;其余attribute Tool投影为editor target。
|
|
30
|
+
|
|
31
|
+
每个method参数按`[CliArg]`名称、描述、`Required`和CLR默认值生成schema。schema default和生成example表示合法默认行为与调用形状,不代表调用方当前任务意图;任务明确指定业务值时,第一次执行必须使用任务值,不能先以default/example做连通性或probe调用。实现`IStructuredCommandInput`的具体DTO按public writable member递归生成封闭object schema,未知字段、缺少required member、递归类型和重复投影名在effect前失败。scalar、enum、date-time、UUID、dictionary和array保持typed schema;`object`、Json.NET `JToken`族与其他无法静态派生的值显式使用`x-unityCliAnyJson`,不会猜测字符串格式或静默套用默认值。
|
|
32
|
+
|
|
33
|
+
attribute Tool统一声明保守的`official-attribute` contract profile、`arbitrary-method-invocation` side effect、`execute-user-code` permission和`supportsDryRun:false`。调用在参数转换完成后只跨一次effect barrier;`Task`超时不声称取消底层method,只有可信method return才能形成成功terminal。
|
|
34
|
+
|
|
35
|
+
## 业务参数
|
|
36
|
+
|
|
37
|
+
command name确定后,CLI按该Tool当前`inputSchema.properties`逐字匹配字段并构造typed input:
|
|
38
|
+
|
|
39
|
+
```powershell
|
|
40
|
+
# named value
|
|
41
|
+
unitycli command UnityPipeline_test --mode EditMode --category Editor
|
|
42
|
+
|
|
43
|
+
# attached value与boolean裸开关
|
|
44
|
+
unitycli command UnityPipeline_project_reload_data --path Assets/GameData.json --force --timeout_ms=30000
|
|
45
|
+
|
|
46
|
+
# positional按live schema的声明顺序绑定
|
|
47
|
+
unitycli command eval "return 2 + 2;"
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
支持:
|
|
51
|
+
|
|
52
|
+
- `--field value`
|
|
53
|
+
- `--field=value`
|
|
54
|
+
- boolean裸开关`--field`,等价于该业务字段为`true`
|
|
55
|
+
- boolean显式`true`/`false`
|
|
56
|
+
- 按`properties`声明顺序绑定的positional
|
|
57
|
+
- string、boolean、integer、number、object、array、null和`x-unityCliAnyJson`
|
|
58
|
+
|
|
59
|
+
object、array和任意JSON值必须是有效JSON。字段大小写和下划线原样匹配;未知字段、缺值、重复字段、类型错误和positional溢出都在effect前失败。业务值本身以`--`开头时,使用attached形式或`--`结束option解析。
|
|
60
|
+
|
|
61
|
+
## Command级控制项
|
|
62
|
+
|
|
63
|
+
```powershell
|
|
64
|
+
unitycli command --project-path C:\path\MyProject <name> ...
|
|
65
|
+
unitycli command --timeout 120 <name> ...
|
|
66
|
+
unitycli command <name> ... --timeout-ms 120000 --dry-run
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
- `--project-path <path>`绑定现有canonical项目实例,不直连endpoint,也不写入active target。
|
|
70
|
+
- `--timeout <seconds>`位于name前;`--timeout-ms <milliseconds>`使用本项目执行控制语义。
|
|
71
|
+
- `--dry-run`、`--runtime`、`--artifact-dir`和`--instance`仍是执行/选择控制项,不进入Tool business input。
|
|
72
|
+
- `--raw`只改变同一JSON envelope的排版。
|
|
73
|
+
|
|
74
|
+
## 等价性
|
|
75
|
+
|
|
76
|
+
以下两种调用在typed input相同的前提下选择同一实际Tool并返回同一业务结果:
|
|
77
|
+
|
|
78
|
+
```powershell
|
|
79
|
+
unitycli tools run UnityPipeline_test --input '{"mode":"EditMode"}'
|
|
80
|
+
unitycli command test --mode EditMode
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
两种语法共享instance选择、availability、schema终检、risk metadata、dry-run、timeout、descriptor fingerprint、completion contract、Bridge执行和错误码。command语法兼容不承诺补齐当前catalog中不存在的官方命令,也不改变本项目JSON输出格式。
|
|
84
|
+
|
|
85
|
+
## Pipeline与Bridge启动
|
|
86
|
+
|
|
87
|
+
本package首次在项目中检测到`com.unity.pipeline`时,会把Pipeline Editor `AutoStart`持久设为false、停止其当前server并清理由该server启用的autotick。只有全部结果验证成功后才写入项目级一次性接管标记;此后reload、Editor重启、package更新以及用户手动重新开启Pipeline都不会再次覆盖或停服。
|
|
88
|
+
|
|
89
|
+
本Bridge使用`Project Settings > UnityCLI > Bridge Auto Start`项目级开关,默认开启。该值只在下一次Domain Reload或Editor启动时读取:关闭不会现场中断已接受请求,生效后不启动listener也不写instance registry。该设置不控制development Player runtime server。
|