@alpsckr/unitycli 0.4.2 → 0.4.4
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 +5 -5
- package/contracts/command-contract.json +109 -217
- package/contracts/package-files.json +374 -294
- package/contracts/stable-session/direct-call-semantics.json +8 -2
- package/contracts/tool-completion-contract.json +148 -672
- package/dist/bridge/admission.d.ts +17 -1
- package/dist/bridge/admission.js +2 -0
- package/dist/bridge/admission.js.map +1 -1
- package/dist/bridge/domains/asset.js +3 -1
- package/dist/bridge/domains/asset.js.map +1 -1
- package/dist/bridge/domains/camera.js +39 -7
- package/dist/bridge/domains/camera.js.map +1 -1
- package/dist/bridge/domains/console.js +2 -1
- package/dist/bridge/domains/console.js.map +1 -1
- package/dist/bridge/domains/doctor.d.ts +3 -0
- package/dist/bridge/domains/doctor.js +8 -0
- package/dist/bridge/domains/doctor.js.map +1 -0
- package/dist/bridge/domains/editor.js +0 -4
- package/dist/bridge/domains/editor.js.map +1 -1
- package/dist/bridge/domains/game-object.js +4 -12
- package/dist/bridge/domains/game-object.js.map +1 -1
- package/dist/bridge/domains/graphics.js +1 -16
- package/dist/bridge/domains/graphics.js.map +1 -1
- package/dist/bridge/domains/object.js +3 -0
- package/dist/bridge/domains/object.js.map +1 -1
- package/dist/bridge/domains/physics.js +1 -2
- package/dist/bridge/domains/physics.js.map +1 -1
- package/dist/bridge/domains/profiler.js +18 -7
- package/dist/bridge/domains/profiler.js.map +1 -1
- package/dist/bridge/domains/project-tool.js +4 -0
- package/dist/bridge/domains/project-tool.js.map +1 -1
- package/dist/bridge/domains/reflection.js +10 -2
- package/dist/bridge/domains/reflection.js.map +1 -1
- package/dist/bridge/domains/runtime-tool.js +3 -0
- package/dist/bridge/domains/runtime-tool.js.map +1 -1
- package/dist/bridge/domains/scene.js +3 -8
- package/dist/bridge/domains/scene.js.map +1 -1
- package/dist/bridge/domains/screenshot.js +30 -6
- package/dist/bridge/domains/screenshot.js.map +1 -1
- package/dist/bridge/domains/ui.js +3 -1
- package/dist/bridge/domains/ui.js.map +1 -1
- package/dist/bridge/index.d.ts +5 -5
- package/dist/bridge/index.js +6 -9
- package/dist/bridge/index.js.map +1 -1
- package/dist/bridge/registry.js +3 -5
- package/dist/bridge/registry.js.map +1 -1
- package/dist/bridge/session-supervisor.d.ts +6 -3
- package/dist/bridge/session-supervisor.js +122 -34
- package/dist/bridge/session-supervisor.js.map +1 -1
- package/dist/bridge/types.d.ts +6 -5
- package/dist/bridge/types.js +16 -2
- package/dist/bridge/types.js.map +1 -1
- package/dist/catalog-protocol.d.ts +64 -0
- package/dist/catalog-protocol.js +460 -0
- package/dist/catalog-protocol.js.map +1 -0
- package/dist/cli-commands/command.js +84 -61
- package/dist/cli-commands/command.js.map +1 -1
- package/dist/cli-commands/extensions.js +70 -50
- package/dist/cli-commands/extensions.js.map +1 -1
- package/dist/cli-commands/instances.js +1 -1
- package/dist/cli-commands/instances.js.map +1 -1
- package/dist/cli-process-owners.d.ts +6 -0
- package/dist/cli-process-owners.js +27 -0
- package/dist/cli-process-owners.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +20 -5
- package/dist/cli.js.map +1 -1
- package/dist/contracts/command-contract.js +14 -4
- package/dist/contracts/command-contract.js.map +1 -1
- package/dist/doctor.d.ts +4 -6
- package/dist/doctor.js +429 -398
- package/dist/doctor.js.map +1 -1
- package/dist/editor-blocker-observer.d.ts +2 -1
- package/dist/editor-blocker-observer.js +40 -13
- package/dist/editor-blocker-observer.js.map +1 -1
- package/dist/extension-availability.d.ts +27 -9
- package/dist/extension-availability.js +96 -56
- package/dist/extension-availability.js.map +1 -1
- package/dist/extensions/descriptor-loader.d.ts +2 -2
- package/dist/extensions/descriptor-loader.js +3 -4
- package/dist/extensions/descriptor-loader.js.map +1 -1
- package/dist/extensions/index.d.ts +1 -1
- package/dist/extensions/index.js +1 -1
- package/dist/extensions/index.js.map +1 -1
- package/dist/extensions/installer.d.ts +24 -7
- package/dist/extensions/installer.js +142 -66
- package/dist/extensions/installer.js.map +1 -1
- package/dist/extensions/registry.js +3 -5
- package/dist/extensions/registry.js.map +1 -1
- package/dist/extensions/state-contract.d.ts +11 -0
- package/dist/extensions/state-contract.js +50 -0
- package/dist/extensions/state-contract.js.map +1 -0
- package/dist/instances.d.ts +13 -1
- package/dist/instances.js +26 -0
- package/dist/instances.js.map +1 -1
- package/dist/package-manager.d.ts +0 -24
- package/dist/package-manager.js +5 -58
- package/dist/package-manager.js.map +1 -1
- package/dist/project-tool-discovery.d.ts +5 -2
- package/dist/project-tool-discovery.js +22 -18
- package/dist/project-tool-discovery.js.map +1 -1
- package/dist/runtime-code.js +1 -1
- package/dist/runtime-code.js.map +1 -1
- package/dist/tool-name.d.ts +4 -0
- package/dist/tool-name.js +15 -0
- package/dist/tool-name.js.map +1 -0
- package/dist/tools/.generated-completion-registry.d.ts +2 -0
- package/dist/tools/.generated-completion-registry.js +763 -325
- package/dist/tools/.generated-completion-registry.js.map +1 -1
- package/dist/tools/.generated-registry.d.ts +6 -11
- package/dist/tools/.generated-registry.js +6 -11
- package/dist/tools/.generated-registry.js.map +1 -1
- package/dist/tools/.generated-schemas.js +11 -16
- package/dist/tools/.generated-schemas.js.map +1 -1
- package/dist/tools/asset/refresh-status.d.ts +3 -0
- package/dist/tools/asset/refresh-status.js +12 -0
- package/dist/tools/asset/refresh-status.js.map +1 -0
- package/dist/tools/asset/refresh.js +7 -3
- package/dist/tools/asset/refresh.js.map +1 -1
- package/dist/tools/build/player-status.d.ts +3 -0
- package/dist/tools/build/player-status.js +12 -0
- package/dist/tools/build/player-status.js.map +1 -0
- package/dist/tools/build/run.js +1 -1
- package/dist/tools/build/run.js.map +1 -1
- package/dist/tools/catalog-control.d.ts +22 -0
- package/dist/tools/catalog-control.js +335 -0
- package/dist/tools/catalog-control.js.map +1 -0
- package/dist/tools/catalog.d.ts +7 -9
- package/dist/tools/catalog.js +66 -45
- package/dist/tools/catalog.js.map +1 -1
- package/dist/tools/commands.d.ts +1 -1
- package/dist/tools/commands.js +44 -11
- package/dist/tools/commands.js.map +1 -1
- package/dist/tools/define.js +3 -2
- package/dist/tools/define.js.map +1 -1
- package/dist/tools/dispatcher.d.ts +53 -6
- package/dist/tools/dispatcher.js +277 -108
- package/dist/tools/dispatcher.js.map +1 -1
- package/dist/tools/editor/compile.js +1 -1
- package/dist/tools/editor/compile.js.map +1 -1
- package/dist/tools/editor/play-mode-status.d.ts +3 -0
- package/dist/tools/editor/play-mode-status.js +12 -0
- package/dist/tools/editor/play-mode-status.js.map +1 -0
- package/dist/tools/editor/readiness.d.ts +0 -1
- package/dist/tools/editor/readiness.js +0 -1
- package/dist/tools/editor/readiness.js.map +1 -1
- package/dist/tools/editor/refresh.d.ts +7 -3
- package/dist/tools/editor/refresh.js +20 -15
- package/dist/tools/editor/refresh.js.map +1 -1
- package/dist/tools/editor/state.d.ts +2 -2
- package/dist/tools/editor/state.js +13 -12
- package/dist/tools/editor/state.js.map +1 -1
- package/dist/tools/metadata/derived.js +1 -7
- package/dist/tools/metadata/derived.js.map +1 -1
- package/dist/tools/metadata/status.js +1 -12
- package/dist/tools/metadata/status.js.map +1 -1
- package/dist/tools/metadata/types.d.ts +0 -2
- package/dist/tools/navmesh/live.js +1 -1
- package/dist/tools/navmesh/live.js.map +1 -1
- package/dist/tools/occlusion/live.js +1 -1
- package/dist/tools/occlusion/live.js.map +1 -1
- package/dist/tools/package/deploy.js +2 -2
- package/dist/tools/package/deploy.js.map +1 -1
- package/dist/tools/package/embed.js +1 -1
- package/dist/tools/package/embed.js.map +1 -1
- package/dist/tools/package/install-status.d.ts +3 -0
- package/dist/tools/package/install-status.js +12 -0
- package/dist/tools/package/install-status.js.map +1 -0
- package/dist/tools/package/install.js +3 -3
- package/dist/tools/package/install.js.map +1 -1
- package/dist/tools/package/live-resolve.js +45 -12
- package/dist/tools/package/live-resolve.js.map +1 -1
- package/dist/tools/package/registry-clear.js.map +1 -1
- package/dist/tools/package/registry-set.js.map +1 -1
- package/dist/tools/package/remove-status.d.ts +3 -0
- package/dist/tools/package/remove-status.js +12 -0
- package/dist/tools/package/remove-status.js.map +1 -0
- package/dist/tools/package/remove.js +3 -3
- package/dist/tools/package/remove.js.map +1 -1
- package/dist/tools/package/resolve.js +3 -3
- package/dist/tools/package/resolve.js.map +1 -1
- package/dist/tools/package/restore.js +2 -2
- package/dist/tools/package/restore.js.map +1 -1
- package/dist/tools/package/scoped-registry-add.js.map +1 -1
- package/dist/tools/status/support.d.ts +13 -0
- package/dist/tools/status/support.js +28 -0
- package/dist/tools/status/support.js.map +1 -0
- package/dist/tools/test/cancel.js +2 -2
- package/dist/tools/test/cancel.js.map +1 -1
- package/dist/tools/test/run-status.d.ts +3 -0
- package/dist/tools/test/run-status.js +12 -0
- package/dist/tools/test/run-status.js.map +1 -0
- package/dist/tools/test/run.js +7 -4
- package/dist/tools/test/run.js.map +1 -1
- package/dist/tools/tools/group-summaries.js +10 -14
- package/dist/tools/tools/group-summaries.js.map +1 -1
- package/docs/architecture.md +4 -4
- package/docs/availability-differences.md +4 -4
- package/docs/command-execution.md +4 -3
- package/docs/error-codes.md +13 -5
- package/docs/extensions.md +1 -7
- package/docs/risk-and-side-effects.md +4 -3
- package/docs/safety-boundaries.md +3 -1
- package/docs/target-and-instance.md +1 -1
- package/docs/tool-discovery.md +17 -10
- package/docs/tool-execution.md +18 -7
- package/extensions/cinemachine/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/hdrp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/probuilder/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/urp/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/extensions/vfx-graph/unitypkg/Editor/UnityCliExtensionAssembly.cs +3 -0
- package/package.json +2 -4
- package/skills/unitycli/SKILL.md +35 -42
- package/skills/unitycli/manifest.json +1 -1
- package/skills/unitycli/references/operation-protocol.md +3 -3
- package/unitypkg/Editor/AssemblyInfo.cs +5 -0
- package/unitypkg/Editor/Bridge/BridgeCommandRegistry.cs +49 -14
- package/unitypkg/Editor/Bridge/BridgeHttpServer.cs +9 -35
- package/unitypkg/Editor/Bridge/BridgeQueueState.cs +672 -0
- package/unitypkg/Editor/Bridge/BridgeWorkQueue.cs +970 -120
- package/unitypkg/Editor/BridgeStartupStateMachine.cs +59 -1
- package/unitypkg/Editor/Commands/ProjectToolCommands.cs +4 -0
- package/unitypkg/Editor/Commands/RuntimeToolCommands.cs +3 -0
- package/unitypkg/Editor/Generated/UnityCliToolCompletionRegistry.g.cs +379 -14
- package/unitypkg/Editor/Infrastructure/CodeExecSupport.cs +28 -13
- package/unitypkg/Editor/Infrastructure/RegistryOwnershipResolver.cs +132 -105
- package/unitypkg/Editor/Infrastructure/UnityCliActiveOperation.cs +138 -29
- package/unitypkg/Editor/Infrastructure/UnityCliAdmission.cs +1856 -237
- package/unitypkg/Editor/Infrastructure/UnityCliDoctorDiagnostics.cs +220 -0
- package/unitypkg/Editor/Infrastructure/UnityCliDurableStatusCoordinator.cs +118 -0
- package/unitypkg/Editor/Infrastructure/UnityCliEditorStateSnapshot.cs +2 -1
- package/unitypkg/Editor/Infrastructure/UnityCliHierarchyPager.cs +203 -0
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceCleanup.cs +2 -1
- package/unitypkg/Editor/Infrastructure/UnityCliInstanceRegistry.cs +201 -63
- package/unitypkg/Editor/Infrastructure/UnityCliJson.cs +2 -3
- package/unitypkg/Editor/Infrastructure/UnityCliLiveBuildCoordinator.cs +289 -46
- package/unitypkg/Editor/Infrastructure/UnityCliLiveRefreshCoordinator.cs +87 -53
- package/unitypkg/Editor/Infrastructure/UnityCliNavMeshBakeCoordinator.cs +4 -4
- package/unitypkg/Editor/Infrastructure/UnityCliObjectRef.cs +128 -25
- package/unitypkg/Editor/Infrastructure/UnityCliObjectSerializer.cs +435 -327
- package/unitypkg/Editor/Infrastructure/UnityCliOcclusionBakeCoordinator.cs +4 -4
- package/unitypkg/Editor/Infrastructure/UnityCliOperationCoordinator.cs +351 -53
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveCoordinator.cs +118 -18
- package/unitypkg/Editor/Infrastructure/UnityCliPackageResolveState.cs +20 -1
- package/unitypkg/Editor/Infrastructure/UnityCliReadGeneration.cs +97 -0
- package/unitypkg/Editor/Infrastructure/UnityCliReflection.cs +644 -133
- package/unitypkg/Editor/Infrastructure/UnityCliReloadOperation.cs +128 -41
- package/unitypkg/Editor/Infrastructure/UnityCliRuntimeExecutor.cs +14 -84
- package/unitypkg/Editor/Infrastructure/UnityCliSerializer.cs +220 -0
- package/unitypkg/Editor/Infrastructure/UnityCliSessionMutationLease.cs +69 -29
- package/unitypkg/Editor/Infrastructure/UnityCliTestRunCoordinator.cs +440 -54
- package/unitypkg/Editor/Infrastructure/UnityCliWaiter.cs +128 -35
- package/unitypkg/Editor/ProjectTools/IUnityCliTool.cs +9 -1
- package/unitypkg/Editor/ProjectTools/OfficialAttributeToolRegistry.cs +32 -31
- package/unitypkg/Editor/ProjectTools/ProjectToolRegistry.cs +607 -458
- package/unitypkg/Editor/ProjectTools/ProjectToolSchemaValidator.cs +35 -7
- package/unitypkg/Editor/ProjectTools/RegisteredTool.cs +501 -60
- package/unitypkg/Editor/ProjectTools/UnityCliProjectToolContext.cs +21 -0
- package/unitypkg/Editor/ProjectTools/UnityCliSchemaDeriver.cs +36 -7
- package/unitypkg/Editor/ProjectTools/UnityCliToolName.cs +30 -0
- package/unitypkg/Editor/Properties/AssemblyInfo.cs +3 -0
- package/unitypkg/Editor/Tools/asset/get-data.cs +16 -7
- package/unitypkg/Editor/Tools/build/BuildSceneStateTool.cs +23 -3
- package/unitypkg/Editor/Tools/build/BuildToolDtos.cs +2 -1
- package/unitypkg/Editor/Tools/build/scene/add.cs +6 -3
- package/unitypkg/Editor/Tools/build/scene/disable.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/enable.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/list.cs +1 -1
- package/unitypkg/Editor/Tools/build/scene/remove.cs +13 -3
- package/unitypkg/Editor/Tools/camera/CameraToolSupport.cs +38 -38
- package/unitypkg/Editor/Tools/camera/multiview.cs +13 -6
- package/unitypkg/Editor/Tools/camera/screenshot.cs +14 -7
- package/unitypkg/Editor/Tools/component/get.cs +16 -9
- package/unitypkg/Editor/Tools/component/modify.cs +6 -4
- package/unitypkg/Editor/Tools/console/clear.cs +7 -6
- package/unitypkg/Editor/Tools/console/get.cs +48 -16
- package/unitypkg/Editor/Tools/editor/EditorToolSupport.cs +143 -28
- package/unitypkg/Editor/Tools/editor/menu-items.cs +1 -1
- package/unitypkg/Editor/Tools/editor/play.cs +2 -11
- package/unitypkg/Editor/Tools/editor/selection.cs +1 -1
- package/unitypkg/Editor/Tools/editor/stop.cs +2 -11
- package/unitypkg/Editor/Tools/editor/windows.cs +1 -1
- package/unitypkg/Editor/Tools/go/GameObjectToolSupport.cs +54 -4
- package/unitypkg/Editor/Tools/go/delete.cs +1 -1
- package/unitypkg/Editor/Tools/go/find.cs +167 -70
- package/unitypkg/Editor/Tools/graphics/GraphicsToolSupport.cs +25 -0
- package/unitypkg/Editor/Tools/graphics/light-probe-group.cs +9 -3
- package/unitypkg/Editor/Tools/graphics/pipeline-info.cs +1 -1
- package/unitypkg/Editor/Tools/graphics/pipeline-settings.cs +1 -1
- package/unitypkg/Editor/Tools/graphics/quality.cs +2 -2
- package/unitypkg/Editor/Tools/graphics/reflection-probe.cs +3 -3
- package/unitypkg/Editor/Tools/graphics/stats.cs +1 -1
- package/unitypkg/Editor/Tools/object/ObjectToolSupport.cs +4 -4
- package/unitypkg/Editor/Tools/object/get-data.cs +9 -7
- package/unitypkg/Editor/Tools/object/modify.cs +7 -5
- package/unitypkg/Editor/Tools/physics/raycast.cs +24 -6
- package/unitypkg/Editor/Tools/prefab/stage.cs +1 -1
- package/unitypkg/Editor/Tools/profiler/ProfilerFrameDebuggerSupport.cs +94 -21
- package/unitypkg/Editor/Tools/profiler/ProfilerMemorySnapshotSupport.cs +397 -10
- package/unitypkg/Editor/Tools/profiler/ProfilerToolSupport.cs +18 -4
- package/unitypkg/Editor/Tools/profiler/frame-debugger/enable.cs +1 -1
- package/unitypkg/Editor/Tools/profiler/frame-debugger/events.cs +88 -87
- package/unitypkg/Editor/Tools/profiler/hierarchy.cs +278 -112
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/compare.cs +9 -5
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/list.cs +37 -35
- package/unitypkg/Editor/Tools/profiler/memory-snapshot/take.cs +99 -97
- package/unitypkg/Editor/Tools/project/info.cs +1 -1
- package/unitypkg/Editor/Tools/project/layers.cs +1 -1
- package/unitypkg/Editor/Tools/project/tags.cs +1 -1
- package/unitypkg/Editor/Tools/reflection/method/call.cs +9 -7
- package/unitypkg/Editor/Tools/reflection/method/find.cs +27 -37
- package/unitypkg/Editor/Tools/reflection/type/schema.cs +24 -28
- package/unitypkg/Editor/Tools/scene/gameobject/component.cs +8 -5
- package/unitypkg/Editor/Tools/scene/gameobject/components.cs +10 -7
- package/unitypkg/Editor/Tools/scene/gameobject-support.cs +104 -8
- package/unitypkg/Editor/Tools/scene/gameobject.cs +37 -16
- package/unitypkg/Editor/Tools/scene/hierarchy.cs +146 -142
- package/unitypkg/Editor/Tools/screenshot/EditorElementCaptureToolSupport.cs +77 -25
- package/unitypkg/Editor/Tools/screenshot/ScreenshotToolSupport.cs +315 -95
- package/unitypkg/Editor/Tools/screenshot/editor-element.cs +7 -5
- package/unitypkg/Editor/Tools/screenshot/game-view.cs +35 -21
- package/unitypkg/Editor/Tools/screenshot/isolated-object.cs +29 -23
- package/unitypkg/Editor/Tools/screenshot/orbit.cs +37 -25
- package/unitypkg/Editor/Tools/screenshot/scene-view.cs +25 -18
- package/unitypkg/Editor/Tools/screenshot/screen.cs +177 -17
- package/unitypkg/Editor/Tools/screenshot/surround.cs +83 -79
- package/unitypkg/Editor/Tools/ui/render-preview.cs +16 -11
- package/unitypkg/Editor/UnityCliBridge.cs +97 -34
- package/unitypkg/Runtime/Infrastructure/UnityCliRuntimeBridge.cs +753 -122
- package/unitypkg/Runtime/Properties/AssemblyInfo.cs +5 -0
- package/unitypkg/Runtime/UnityCli.Runtime.asmdef +1 -1
- package/unitypkg/Shared/AssemblyInfo.cs +4 -0
- package/unitypkg/Shared/UnityCliAdmissionPool.cs +265 -75
- package/unitypkg/Shared/UnityCliBridgeQueuePolicy.cs +410 -0
- package/unitypkg/Shared/UnityCliBridgeWorkItemState.cs +47 -0
- package/unitypkg/Shared/UnityCliExceptionProjection.cs +151 -0
- package/unitypkg/Shared/UnityCliQueuePublication.cs +30 -0
- package/unitypkg/Shared/UnityCliRequestBudget.cs +352 -0
- package/unitypkg/Shared/UnityCliRuntimeRequestPublication.cs +107 -0
- package/unitypkg/Tests/Editor/UnityCli.Editor.Tests.asmdef +2 -2
- package/unitypkg/Tests/Editor/UnityCliAdmissionCoordinatorIntegrationTests.cs +1329 -0
- package/unitypkg/Tests/Editor/UnityCliAdmissionPoolTests.cs +311 -114
- package/unitypkg/Tests/Editor/UnityCliAdmissionRepairStateTests.cs +94 -0
- package/unitypkg/Tests/Editor/UnityCliBridgeAdmissionIntegrationTests.cs +1229 -0
- package/unitypkg/Tests/Editor/UnityCliBridgeQueuePolicyTests.cs +412 -0
- package/unitypkg/Tests/Editor/UnityCliContinuationIntegrationTests.cs +292 -0
- package/unitypkg/Tests/Editor/UnityCliDiagnosticBoundaryTests.cs +120 -0
- package/unitypkg/Tests/Editor/UnityCliDurableStatusTests.cs +84 -0
- package/unitypkg/Tests/Editor/UnityCliExceptionProjectionTests.cs +72 -0
- package/unitypkg/Tests/Editor/UnityCliInstancePublicationRetryTests.cs +180 -97
- package/unitypkg/Tests/Editor/UnityCliMemoryReflectionIntegrationTests.cs +434 -0
- package/unitypkg/Tests/Editor/UnityCliRequestBudgetTests.cs +615 -0
- package/unitypkg/Tests/Editor/UnityCliRuntimeBridgeIntegrationTests.cs +520 -0
- package/unitypkg/Tests/Editor/UnityCliToolCatalogTests.cs +562 -0
- package/unitypkg/Tests/Runtime/UnityCli.Runtime.Tests.asmdef +23 -0
- package/unitypkg/Tests/Runtime/UnityCliRuntimeCatalogValidationTests.cs +29 -0
- package/unitypkg/package.json +1 -1
- package/contracts/static-capability-catalog.json +0 -48226
- package/dist/bridge/domains/diagnose.d.ts +0 -2
- package/dist/bridge/domains/diagnose.js +0 -11
- package/dist/bridge/domains/diagnose.js.map +0 -1
- package/dist/bridge/domains/extension.d.ts +0 -8
- package/dist/bridge/domains/extension.js +0 -20
- package/dist/bridge/domains/extension.js.map +0 -1
- package/dist/capabilities.d.ts +0 -5
- package/dist/capabilities.js +0 -84
- package/dist/capabilities.js.map +0 -1
- package/dist/static-capability-catalog.d.ts +0 -13
- package/dist/static-capability-catalog.js +0 -41
- package/dist/static-capability-catalog.js.map +0 -1
- package/dist/tools/diagnose/capabilities.d.ts +0 -13
- package/dist/tools/diagnose/capabilities.js +0 -34
- package/dist/tools/diagnose/capabilities.js.map +0 -1
- package/dist/tools/package/info.d.ts +0 -19
- package/dist/tools/package/info.js +0 -27
- package/dist/tools/package/info.js.map +0 -1
- package/dist/tools/package/list.d.ts +0 -27
- package/dist/tools/package/list.js +0 -21
- package/dist/tools/package/list.js.map +0 -1
- package/dist/tools/package/registry-get.d.ts +0 -10
- package/dist/tools/package/registry-get.js +0 -22
- package/dist/tools/package/registry-get.js.map +0 -1
- package/dist/tools/package/scoped-registry-list.d.ts +0 -14
- package/dist/tools/package/scoped-registry-list.js +0 -22
- package/dist/tools/package/scoped-registry-list.js.map +0 -1
- package/dist/tools/package/search.d.ts +0 -17
- package/dist/tools/package/search.js +0 -39
- package/dist/tools/package/search.js.map +0 -1
- package/dist/tools/package/status.d.ts +0 -21
- package/dist/tools/package/status.js +0 -37
- package/dist/tools/package/status.js.map +0 -1
- package/dist/tools/tools/describe.d.ts +0 -27
- package/dist/tools/tools/describe.js +0 -35
- package/dist/tools/tools/describe.js.map +0 -1
- package/dist/tools/tools/group-list.d.ts +0 -16
- package/dist/tools/tools/group-list.js +0 -38
- package/dist/tools/tools/group-list.js.map +0 -1
- package/dist/tools/tools/group.d.ts +0 -13
- package/dist/tools/tools/group.js +0 -34
- package/dist/tools/tools/group.js.map +0 -1
- package/dist/tools/tools/pagination.d.ts +0 -17
- package/dist/tools/tools/pagination.js +0 -28
- package/dist/tools/tools/pagination.js.map +0 -1
- package/dist/tools/tools/search.d.ts +0 -15
- package/dist/tools/tools/search.js +0 -42
- package/dist/tools/tools/search.js.map +0 -1
- package/unitypkg/Editor/Tools/diagnose/preflight.cs +0 -269
- package/unitypkg/Editor/Tools/editor/console.cs +0 -26
- package/unitypkg/Editor/Tools/extension/status.cs +0 -87
- package/unitypkg/Editor/Tools/go/inspect.cs +0 -49
- package/unitypkg/Editor/Tools/graphics/pipeline-quality.cs +0 -24
- package/unitypkg/Editor/Tools/graphics/probe-positions.cs +0 -58
- package/unitypkg/Editor/Tools/graphics/settings.cs +0 -104
- package/unitypkg/Editor/Tools/graphics/stats-counters.cs +0 -28
- package/unitypkg/Editor/Tools/graphics/stats-memory.cs +0 -21
- package/unitypkg/Editor/Tools/instances/list.cs +0 -71
- package/unitypkg/Editor/Tools/physics/raycast-all.cs +0 -67
- package/unitypkg/Editor/Tools/scene/build-settings.cs +0 -69
- package/unitypkg/Editor/Tools/scene/data.cs +0 -125
- package/unitypkg/Editor/Tools/tests/list.cs +0 -98
|
@@ -37,11 +37,15 @@ namespace UnityCli
|
|
|
37
37
|
{
|
|
38
38
|
Name = "physics.raycast",
|
|
39
39
|
Summary = "Cast a 3D or 2D ray and return the first hit, or all hits with all=true.",
|
|
40
|
-
Description = "Cast a ray from origin along direction up to distance. mode=3d (default) or 2d. all=
|
|
40
|
+
Description = "Cast a ray from origin along direction up to distance in Edit or Play mode. mode=3d (default) or 2d. all=false returns at most the nearest hit; all=true returns every hit sorted by distance. layerMask defaults to DefaultRaycastLayers. The result always includes the normalized query, hit flag, hitCount, and hits.",
|
|
41
41
|
Group = "physics",DestructiveHint = false,
|
|
42
42
|
Target = "editor", PlayModeSupport = "supported",
|
|
43
43
|
DefaultTimeoutMs = 30000, MaxTimeoutMs = 600000,
|
|
44
|
-
Examples = new[]
|
|
44
|
+
Examples = new[]
|
|
45
|
+
{
|
|
46
|
+
new ToolExample { Description = "Return the nearest 3D hit", Input = new Request { OriginY = 1f, DirectionZ = 1f } },
|
|
47
|
+
new ToolExample { Description = "Return all 3D hits", Input = new Request { OriginY = 1f, DirectionZ = 1f, All = true } }
|
|
48
|
+
}
|
|
45
49
|
};
|
|
46
50
|
|
|
47
51
|
public System.Threading.Tasks.ValueTask<Result> ExecuteAsync(Request request, UnityCliProjectToolContext ctx, System.Threading.CancellationToken ct = default)
|
|
@@ -58,7 +62,14 @@ namespace UnityCli
|
|
|
58
62
|
var hits = Physics2D.RaycastAll(origin, direction, distance, layerMask);
|
|
59
63
|
var hitList = new List<RaycastHitInfo>();
|
|
60
64
|
foreach (var h in hits) hitList.Add(PhysicsToolSupport.BuildRaycast2DHit(h));
|
|
61
|
-
return new System.Threading.Tasks.ValueTask<Result>(new Result
|
|
65
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result
|
|
66
|
+
{
|
|
67
|
+
Query = PhysicsToolSupport.BuildRaycast2DQuery(origin, direction, distance, layerMask),
|
|
68
|
+
Hit = hits.Length > 0,
|
|
69
|
+
HitCount = hits.Length,
|
|
70
|
+
Hits = hitList,
|
|
71
|
+
NextActions = hits.Length > 0 ? new List<string>() : new List<string> { "No Physics2D collider matched the ray; adjust origin, direction, distance, or layerMask." }
|
|
72
|
+
});
|
|
62
73
|
}
|
|
63
74
|
var hit = Physics2D.Raycast(origin, direction, distance, layerMask);
|
|
64
75
|
var list = new List<RaycastHitInfo>();
|
|
@@ -67,7 +78,7 @@ namespace UnityCli
|
|
|
67
78
|
{
|
|
68
79
|
Query = PhysicsToolSupport.BuildRaycast2DQuery(origin, direction, distance, layerMask),
|
|
69
80
|
Hit = hit.collider != null, HitCount = hit.collider != null ? 1 : 0, Hits = list,
|
|
70
|
-
NextActions = hit.collider != null ? new List<string>() : new List<string> { "No
|
|
81
|
+
NextActions = hit.collider != null ? new List<string>() : new List<string> { "No Physics2D collider matched the ray; adjust origin, direction, distance, or layerMask." }
|
|
71
82
|
});
|
|
72
83
|
}
|
|
73
84
|
var origin3d = new Vector3(request.OriginX, request.OriginY, request.OriginZ);
|
|
@@ -78,7 +89,14 @@ namespace UnityCli
|
|
|
78
89
|
Array.Sort(hits, (a, b) => a.distance.CompareTo(b.distance));
|
|
79
90
|
var hitList = new List<RaycastHitInfo>();
|
|
80
91
|
foreach (var h in hits) hitList.Add(PhysicsToolSupport.BuildRaycast3DHit(h));
|
|
81
|
-
return new System.Threading.Tasks.ValueTask<Result>(new Result
|
|
92
|
+
return new System.Threading.Tasks.ValueTask<Result>(new Result
|
|
93
|
+
{
|
|
94
|
+
Query = PhysicsToolSupport.BuildRaycast3DQuery(origin3d, direction3d, distance, layerMask),
|
|
95
|
+
Hit = hits.Length > 0,
|
|
96
|
+
HitCount = hits.Length,
|
|
97
|
+
Hits = hitList,
|
|
98
|
+
NextActions = hits.Length > 0 ? new List<string>() : new List<string> { "No Physics collider matched the ray; adjust origin, direction, distance, or layerMask." }
|
|
99
|
+
});
|
|
82
100
|
}
|
|
83
101
|
RaycastHit hit3d;
|
|
84
102
|
var didHit = Physics.Raycast(origin3d, direction3d, out hit3d, distance, layerMask);
|
|
@@ -88,7 +106,7 @@ namespace UnityCli
|
|
|
88
106
|
{
|
|
89
107
|
Query = PhysicsToolSupport.BuildRaycast3DQuery(origin3d, direction3d, distance, layerMask),
|
|
90
108
|
Hit = didHit, HitCount = didHit ? 1 : 0, Hits = list3d,
|
|
91
|
-
NextActions = didHit ? new List<string>() : new List<string> { "No Physics collider matched the ray
|
|
109
|
+
NextActions = didHit ? new List<string>() : new List<string> { "No Physics collider matched the ray; adjust origin, direction, distance, or layerMask." }
|
|
92
110
|
});
|
|
93
111
|
}
|
|
94
112
|
}
|
|
@@ -26,7 +26,7 @@ namespace UnityCli.Tools.Prefab
|
|
|
26
26
|
{
|
|
27
27
|
Name = "prefab.stage", Summary = "Read current Prefab editing stage state: whether a prefab is being edited, its path, and dirty status.",
|
|
28
28
|
Description = "Read current Prefab editing stage state: whether a prefab is being edited, its path, and dirty status. This observes Prefab Stage only and does not open, save, close, or modify it.",
|
|
29
|
-
DestructiveHint = false,
|
|
29
|
+
DestructiveHint = false,
|
|
30
30
|
Group = "prefab",
|
|
31
31
|
Target = "editor",
|
|
32
32
|
PlayModeSupport = "supported",
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
#if UNITY_EDITOR
|
|
2
2
|
using System;
|
|
3
|
-
using System.Collections.Generic;
|
|
4
3
|
using System.Globalization;
|
|
5
|
-
using System.IO;
|
|
6
4
|
using System.Reflection;
|
|
7
|
-
using
|
|
8
|
-
using UnityEngine;
|
|
9
|
-
using UnityEngine.Profiling;
|
|
5
|
+
using System.Threading;
|
|
10
6
|
|
|
11
7
|
namespace UnityCli
|
|
12
8
|
{
|
|
9
|
+
/// <summary>Frame Debugger 的集中反射边界;读取调用显式消费调用方请求预算。</summary>
|
|
13
10
|
internal static class FrameDebuggerReflection
|
|
14
11
|
{
|
|
15
12
|
public static readonly Type UtilityType = ProfilerToolSupport.FindType("UnityEditorInternal.FrameDebuggerInternal.FrameDebuggerUtility, UnityEditor");
|
|
@@ -17,52 +14,128 @@ namespace UnityCli
|
|
|
17
14
|
public static readonly PropertyInfo EventCountProp = UtilityType?.GetProperty("count", BindingFlags.Public | BindingFlags.Static);
|
|
18
15
|
public static readonly PropertyInfo EnabledProp = StateType?.GetProperty("enabled", BindingFlags.Public | BindingFlags.Static);
|
|
19
16
|
public static readonly MethodInfo EnableMethod = UtilityType?.GetMethod("SetEnabled", BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(bool), typeof(int) }, null);
|
|
20
|
-
public static readonly MethodInfo GetEventsMethod = UtilityType?.GetMethod("GetFrameEvents", BindingFlags.Public | BindingFlags.Static);
|
|
21
17
|
public static readonly MethodInfo EventNameMethod = UtilityType?.GetMethod("GetFrameEventInfoName", BindingFlags.Public | BindingFlags.Static);
|
|
22
18
|
public static readonly Type EventDataType = ProfilerToolSupport.FindType("UnityEditorInternal.FrameDebuggerInternal.FrameDebuggerEventData, UnityEditor");
|
|
23
19
|
public static readonly MethodInfo GetEventDataMethod = EventDataType == null
|
|
24
20
|
? null
|
|
25
|
-
: UtilityType?.GetMethod("GetFrameEventData", BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(int), EventDataType }, null)
|
|
21
|
+
: UtilityType?.GetMethod("GetFrameEventData", BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(int), EventDataType.MakeByRefType() }, null)
|
|
22
|
+
?? UtilityType?.GetMethod("GetFrameEventData", BindingFlags.Public | BindingFlags.Static, null, new[] { typeof(int), EventDataType }, null);
|
|
23
|
+
private static long captureGeneration = 1L;
|
|
26
24
|
|
|
27
|
-
|
|
25
|
+
internal static bool? AvailableOverrideForTests;
|
|
26
|
+
internal static Func<bool> EnabledOverrideForTests;
|
|
27
|
+
internal static Action<bool> SetEnabledOverrideForTests;
|
|
28
|
+
internal static Func<int> EventCountOverrideForTests;
|
|
29
|
+
internal static Func<int, string> EventNameOverrideForTests;
|
|
30
|
+
internal static Func<int, object> EventDataOverrideForTests;
|
|
31
|
+
internal static Func<string> GenerationOverrideForTests;
|
|
32
|
+
|
|
33
|
+
public static bool Available => AvailableOverrideForTests ?? (UtilityType != null && StateType != null && EventCountProp != null && EnabledProp != null && EnableMethod != null);
|
|
28
34
|
|
|
29
|
-
// Unity 2022.3 的 SetEnabled(bool,int) 需要显式绑定本地 Editor profiler id=0。
|
|
30
35
|
public static void SetEnabled(bool value)
|
|
31
36
|
{
|
|
32
|
-
|
|
37
|
+
var overrideAction = SetEnabledOverrideForTests;
|
|
38
|
+
if (overrideAction != null) overrideAction(value);
|
|
39
|
+
else EnableMethod.Invoke(null, new object[] { value, 0 });
|
|
40
|
+
Interlocked.Increment(ref captureGeneration);
|
|
33
41
|
}
|
|
34
42
|
|
|
35
43
|
public static bool GetEnabled()
|
|
36
44
|
{
|
|
37
45
|
try
|
|
38
46
|
{
|
|
47
|
+
var overrideGetter = EnabledOverrideForTests;
|
|
48
|
+
if (overrideGetter != null) return overrideGetter();
|
|
39
49
|
if (EnabledProp != null) return (bool)EnabledProp.GetValue(null, null);
|
|
40
50
|
throw new MissingMemberException("Frame Debugger enabled readback is unavailable.");
|
|
41
51
|
}
|
|
42
52
|
catch (Exception exception) { throw new InvalidOperationException("Frame Debugger enabled getter failed.", exception); }
|
|
43
53
|
}
|
|
44
54
|
|
|
45
|
-
public static int GetEventCount()
|
|
55
|
+
public static int GetEventCount(UnityCliRequestBudget budget)
|
|
46
56
|
{
|
|
47
|
-
|
|
57
|
+
if (!budget.TryConsumeGetter() || !budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
58
|
+
var overrideGetter = EventCountOverrideForTests;
|
|
59
|
+
if (overrideGetter != null) return overrideGetter();
|
|
60
|
+
try { return Convert.ToInt32(EventCountProp.GetValue(null, null), CultureInfo.InvariantCulture); }
|
|
48
61
|
catch { return 0; }
|
|
49
62
|
}
|
|
50
63
|
|
|
51
|
-
|
|
52
|
-
|
|
64
|
+
public static string EventName(int index, UnityCliRequestBudget budget)
|
|
65
|
+
{
|
|
66
|
+
if (!budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
67
|
+
var overrideGetter = EventNameOverrideForTests;
|
|
68
|
+
if (overrideGetter != null) return overrideGetter(index);
|
|
69
|
+
if (EventNameMethod == null) return null;
|
|
70
|
+
try { return EventNameMethod.Invoke(null, new object[] { index }) as string; }
|
|
71
|
+
catch { return null; }
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public static object EventData(int index, UnityCliRequestBudget budget)
|
|
53
75
|
{
|
|
76
|
+
if (!budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
77
|
+
var overrideGetter = EventDataOverrideForTests;
|
|
78
|
+
if (overrideGetter != null) return overrideGetter(index);
|
|
79
|
+
if (GetEventDataMethod == null || EventDataType == null) return null;
|
|
54
80
|
try
|
|
55
81
|
{
|
|
56
|
-
var
|
|
57
|
-
var
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
?? type.GetProperty(fieldName, BindingFlags.NonPublic | BindingFlags.Instance);
|
|
61
|
-
object val = field != null ? field.GetValue(obj) : prop != null ? prop.GetValue(obj) : null;
|
|
62
|
-
return val != null ? val.ToString() : null;
|
|
82
|
+
var value = Activator.CreateInstance(EventDataType);
|
|
83
|
+
var args = new object[] { index, value };
|
|
84
|
+
var ok = GetEventDataMethod.Invoke(null, args);
|
|
85
|
+
return ok is true ? args[1] : null;
|
|
63
86
|
}
|
|
64
87
|
catch { return null; }
|
|
65
88
|
}
|
|
89
|
+
|
|
90
|
+
/// <summary>用有界常量工作量绑定当前捕获;CLI 切换、listener、数量或首尾事件变化都会使旧游标失效。</summary>
|
|
91
|
+
internal static string CaptureGeneration(int eventCount, UnityCliRequestBudget budget)
|
|
92
|
+
{
|
|
93
|
+
string sourceIdentity;
|
|
94
|
+
var overrideGetter = GenerationOverrideForTests;
|
|
95
|
+
if (overrideGetter != null) sourceIdentity = overrideGetter();
|
|
96
|
+
else
|
|
97
|
+
{
|
|
98
|
+
if (!budget.TryConsumeGetter() || !budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
99
|
+
var enabled = GetEnabled();
|
|
100
|
+
var first = eventCount > 0 ? EventName(0, budget) : string.Empty;
|
|
101
|
+
var last = eventCount > 1 ? EventName(eventCount - 1, budget) : first;
|
|
102
|
+
sourceIdentity = enabled.ToString(CultureInfo.InvariantCulture) + "\0" + eventCount.ToString(CultureInfo.InvariantCulture)
|
|
103
|
+
+ "\0" + first + "\0" + last + "\0" + Interlocked.Read(ref captureGeneration).ToString(CultureInfo.InvariantCulture);
|
|
104
|
+
}
|
|
105
|
+
return UnityCliContinuationToken.Fingerprint(
|
|
106
|
+
UnityCliReadGeneration.Session("profiler.frame-debugger.events") + "\0" + eventCount.ToString(CultureInfo.InvariantCulture)
|
|
107
|
+
+ "\0" + Interlocked.Read(ref captureGeneration).ToString(CultureInfo.InvariantCulture) + "\0" + sourceIdentity);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
internal static void ResetTestOverrides()
|
|
111
|
+
{
|
|
112
|
+
AvailableOverrideForTests = null;
|
|
113
|
+
EnabledOverrideForTests = null;
|
|
114
|
+
SetEnabledOverrideForTests = null;
|
|
115
|
+
EventCountOverrideForTests = null;
|
|
116
|
+
EventNameOverrideForTests = null;
|
|
117
|
+
EventDataOverrideForTests = null;
|
|
118
|
+
GenerationOverrideForTests = null;
|
|
119
|
+
Interlocked.Increment(ref captureGeneration);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
public static string ReadField(object value, string fieldName, UnityCliRequestBudget budget)
|
|
123
|
+
{
|
|
124
|
+
if (value == null) return null;
|
|
125
|
+
var type = value.GetType();
|
|
126
|
+
if (!budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
127
|
+
var field = type.GetField(fieldName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
|
|
128
|
+
if (field != null)
|
|
129
|
+
{
|
|
130
|
+
if (!budget.TryConsumeGetter() || !budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
131
|
+
try { var result = field.GetValue(value); return result == null ? null : Convert.ToString(result, CultureInfo.InvariantCulture); } catch { return null; }
|
|
132
|
+
}
|
|
133
|
+
if (!budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
134
|
+
var property = type.GetProperty(fieldName, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance);
|
|
135
|
+
if (property == null) return null;
|
|
136
|
+
if (!budget.TryConsumeGetter() || !budget.TryConsumeReflectionCall()) throw new UnityCliRequestBudgetExceededException(budget.ExhaustedDimension);
|
|
137
|
+
try { var result = property.GetValue(value, null); return result == null ? null : Convert.ToString(result, CultureInfo.InvariantCulture); } catch { return null; }
|
|
138
|
+
}
|
|
66
139
|
}
|
|
67
140
|
}
|
|
68
141
|
#endif
|