@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
|
@@ -32,6 +32,7 @@ export interface ExtensionStatusCheck {
|
|
|
32
32
|
extensionId: ExtensionId;
|
|
33
33
|
name: string;
|
|
34
34
|
status: ExtensionInstallStatus;
|
|
35
|
+
integrity: "shallow" | "target" | "full";
|
|
35
36
|
dependencyInstalled: boolean;
|
|
36
37
|
installed: boolean;
|
|
37
38
|
outdated: boolean;
|
|
@@ -42,10 +43,25 @@ export interface ExtensionStatusCheck {
|
|
|
42
43
|
missingPackageIds: string[];
|
|
43
44
|
nextActions: string[];
|
|
44
45
|
}
|
|
46
|
+
/** 一次公开调用冻结的 package/install 输入,后续检查不得重新读取。 */
|
|
47
|
+
export interface ExtensionStateSnapshot {
|
|
48
|
+
projectPath: string;
|
|
49
|
+
installedPackages: ReadonlyMap<string, string>;
|
|
50
|
+
installManifest: ExtensionInstallManifest;
|
|
51
|
+
}
|
|
52
|
+
export interface ExtensionCheckOptions {
|
|
53
|
+
snapshot?: ExtensionStateSnapshot;
|
|
54
|
+
absoluteDeadlineMs?: number;
|
|
55
|
+
}
|
|
56
|
+
export type ExtensionFilesystemOperation = "snapshot" | "target-proof" | "managed-file-hash" | "source-proof" | "source-file-hash" | "source-tree-entry" | "unknown-tree-entry";
|
|
45
57
|
/** 仅测试使用:在 source projection 复制后强制制造交错。 */
|
|
46
58
|
export declare function setAfterProjectionCopyForTest(hook: (() => Promise<void>) | undefined): void;
|
|
47
59
|
/** 仅测试使用:把可变 source 夹具隔离到临时目录。 */
|
|
48
60
|
export declare function setExtensionSourceRootForTest(resolver: ((extensionId: ExtensionId) => string) | undefined): void;
|
|
61
|
+
/** 仅测试使用:计数 discovery 的语义文件系统操作,不暴露到公开结果。 */
|
|
62
|
+
export declare function setExtensionFilesystemOperationObserverForTest(observer: ((operation: ExtensionFilesystemOperation, extensionId?: ExtensionId) => void) | undefined): void;
|
|
63
|
+
/** 仅测试使用:以确定时钟证明大目录扫描在deadline内中止。 */
|
|
64
|
+
export declare function setExtensionFilesystemClockForTest(clock: (() => number) | undefined): void;
|
|
49
65
|
/** 返回 extension 源码目录。 */
|
|
50
66
|
export declare function extensionSourceRoot(extensionId: ExtensionId): string;
|
|
51
67
|
/** 返回 extension Unity 安装投影使用的默认相对路径。 */
|
|
@@ -65,13 +81,14 @@ export declare function resolveInstallAvailability(manifest: ExtensionManifest,
|
|
|
65
81
|
export declare function installExtensionBundleUnchecked(projectPath: string, manifest: ExtensionManifest, installedStatus?: "installed" | "already_installed"): Promise<ExtensionInstallResult>;
|
|
66
82
|
/** 按 manifest 删除一个 extension 目录复制过的文件。 */
|
|
67
83
|
export declare function removeExtensionBundle(projectPath: string, extensionId: ExtensionId): Promise<ExtensionInstallResult>;
|
|
68
|
-
/**
|
|
69
|
-
export declare function
|
|
70
|
-
/**
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
84
|
+
/** package lock 与安装 manifest 每次 invocation 只读取一次。 */
|
|
85
|
+
export declare function readExtensionStateSnapshot(projectPath: string): Promise<ExtensionStateSnapshot>;
|
|
86
|
+
/** list 使用 manifest/version/root 的浅状态,不做 source 或 managed-file hash。 */
|
|
87
|
+
export declare function listExtensionBundles(projectPath: string, snapshot?: ExtensionStateSnapshot): Promise<ExtensionStatusCheck[]>;
|
|
88
|
+
/** 普通 discovery/执行只证明一个 selected extension 的 target 投影,不读取 source tree。 */
|
|
89
|
+
export declare function checkSelectedExtensionBundle(projectPath: string, extensionId: ExtensionId, options?: ExtensionCheckOptions): Promise<ExtensionStatusCheck | undefined>;
|
|
90
|
+
/** extensions doctor 独占全 extension source/managed-file 深 hash。 */
|
|
91
|
+
export declare function checkExtensionBundles(projectPath: string, options?: ExtensionCheckOptions): Promise<ExtensionStatusCheck[]>;
|
|
75
92
|
export declare class ExtensionInstallerError extends Error {
|
|
76
93
|
readonly code: string;
|
|
77
94
|
readonly nextActions: string[];
|
|
@@ -5,6 +5,7 @@ import { basename, dirname, join, relative, resolve, sep } from "node:path";
|
|
|
5
5
|
import { fileURLToPath } from "node:url";
|
|
6
6
|
import { readInstalledUnityPackages } from "./project-resolver.js";
|
|
7
7
|
import { ExtensionRegistry, resolveExtensionAvailability } from "./registry.js";
|
|
8
|
+
import { EXTENSION_STATE_MAX_ENTRIES, ExtensionStateContractError, isValidExtensionId, readBoundedExtensionStateFile, } from "./state-contract.js";
|
|
8
9
|
import { stripBom } from "../util.js";
|
|
9
10
|
const packageName = "com.alpsckr.unitycli";
|
|
10
11
|
const manifestFileName = "unitycli.extensions.manifest.json";
|
|
@@ -12,6 +13,8 @@ const manifestLockTimeoutMs = 15_000;
|
|
|
12
13
|
const processStartIdentity = new Date(Date.now() - Math.floor(process.uptime() * 1_000)).toISOString();
|
|
13
14
|
let afterProjectionCopyForTest;
|
|
14
15
|
let sourceRootForTest;
|
|
16
|
+
let filesystemOperationObserverForTest;
|
|
17
|
+
let extensionFilesystemNow = Date.now;
|
|
15
18
|
/** 仅测试使用:在 source projection 复制后强制制造交错。 */
|
|
16
19
|
export function setAfterProjectionCopyForTest(hook) {
|
|
17
20
|
afterProjectionCopyForTest = hook;
|
|
@@ -20,6 +23,14 @@ export function setAfterProjectionCopyForTest(hook) {
|
|
|
20
23
|
export function setExtensionSourceRootForTest(resolver) {
|
|
21
24
|
sourceRootForTest = resolver;
|
|
22
25
|
}
|
|
26
|
+
/** 仅测试使用:计数 discovery 的语义文件系统操作,不暴露到公开结果。 */
|
|
27
|
+
export function setExtensionFilesystemOperationObserverForTest(observer) {
|
|
28
|
+
filesystemOperationObserverForTest = observer;
|
|
29
|
+
}
|
|
30
|
+
/** 仅测试使用:以确定时钟证明大目录扫描在deadline内中止。 */
|
|
31
|
+
export function setExtensionFilesystemClockForTest(clock) {
|
|
32
|
+
extensionFilesystemNow = clock ?? Date.now;
|
|
33
|
+
}
|
|
23
34
|
/** 返回 extension 源码目录。 */
|
|
24
35
|
export function extensionSourceRoot(extensionId) {
|
|
25
36
|
return resolve(fileURLToPath(new URL(`../../extensions/${extensionId}`, import.meta.url)));
|
|
@@ -38,20 +49,23 @@ export function extensionInstallManifestPath(projectPath) {
|
|
|
38
49
|
}
|
|
39
50
|
/** 读取 extension 安装 manifest;仅缺失文件代表空状态,损坏状态必须阻断变更。 */
|
|
40
51
|
export async function readExtensionInstallManifest(projectPath) {
|
|
41
|
-
const path = extensionInstallManifestPath(projectPath);
|
|
42
52
|
let content;
|
|
43
53
|
try {
|
|
44
|
-
content = await
|
|
54
|
+
content = await readBoundedExtensionStateFile(extensionInstallManifestPath(projectPath));
|
|
45
55
|
}
|
|
46
56
|
catch (error) {
|
|
47
|
-
if (error
|
|
48
|
-
|
|
57
|
+
if (error instanceof ExtensionStateContractError)
|
|
58
|
+
throw invalidInstallManifest(projectPath, error.message);
|
|
49
59
|
throw error;
|
|
50
60
|
}
|
|
61
|
+
if (content === undefined)
|
|
62
|
+
return emptyManifest();
|
|
51
63
|
try {
|
|
52
64
|
const parsed = JSON.parse(stripBom(content));
|
|
53
|
-
if (parsed.version !== 1 || !Array.isArray(parsed.extensions)
|
|
54
|
-
|
|
65
|
+
if (parsed.version !== 1 || !Array.isArray(parsed.extensions)
|
|
66
|
+
|| parsed.extensions.length > EXTENSION_STATE_MAX_ENTRIES
|
|
67
|
+
|| !parsed.extensions.every(isInstalledEntry)) {
|
|
68
|
+
throw invalidInstallManifest(projectPath, `Expected version 1 and at most ${EXTENSION_STATE_MAX_ENTRIES} valid extension entries.`);
|
|
55
69
|
}
|
|
56
70
|
if (new Set(parsed.extensions.map((entry) => entry.extensionId)).size !== parsed.extensions.length) {
|
|
57
71
|
throw invalidInstallManifest(projectPath, "Extension entries must have unique extensionId values.");
|
|
@@ -66,6 +80,11 @@ export async function readExtensionInstallManifest(projectPath) {
|
|
|
66
80
|
}
|
|
67
81
|
/** 原子写入 extension 安装 manifest,读取方不会观察到半写文件。 */
|
|
68
82
|
export async function writeExtensionInstallManifest(projectPath, manifest) {
|
|
83
|
+
if (manifest.extensions.length > EXTENSION_STATE_MAX_ENTRIES
|
|
84
|
+
|| !manifest.extensions.every(isInstalledEntry)
|
|
85
|
+
|| new Set(manifest.extensions.map((entry) => entry.extensionId)).size !== manifest.extensions.length) {
|
|
86
|
+
throw invalidInstallManifest(projectPath, `Expected at most ${EXTENSION_STATE_MAX_ENTRIES} unique valid extension entries.`);
|
|
87
|
+
}
|
|
69
88
|
const manifestPath = extensionInstallManifestPath(projectPath);
|
|
70
89
|
const temporaryPath = `${manifestPath}.${process.pid}.${randomUUID()}.tmp`;
|
|
71
90
|
await mkdir(dirname(manifestPath), { recursive: true });
|
|
@@ -199,50 +218,94 @@ export async function removeExtensionBundle(projectPath, extensionId) {
|
|
|
199
218
|
};
|
|
200
219
|
});
|
|
201
220
|
}
|
|
202
|
-
/**
|
|
203
|
-
export async function
|
|
221
|
+
/** package lock 与安装 manifest 每次 invocation 只读取一次。 */
|
|
222
|
+
export async function readExtensionStateSnapshot(projectPath) {
|
|
223
|
+
filesystemOperationObserverForTest?.("snapshot");
|
|
224
|
+
const canonicalProjectPath = resolve(projectPath);
|
|
225
|
+
const [installedPackages, installManifest] = await Promise.all([
|
|
226
|
+
readInstalledUnityPackages(canonicalProjectPath),
|
|
227
|
+
readExtensionInstallManifest(canonicalProjectPath),
|
|
228
|
+
]);
|
|
229
|
+
return { projectPath: canonicalProjectPath, installedPackages, installManifest };
|
|
230
|
+
}
|
|
231
|
+
/** list 使用 manifest/version/root 的浅状态,不做 source 或 managed-file hash。 */
|
|
232
|
+
export async function listExtensionBundles(projectPath, snapshot) {
|
|
233
|
+
const frozen = snapshot ?? await readExtensionStateSnapshot(projectPath);
|
|
204
234
|
const registry = new ExtensionRegistry();
|
|
205
|
-
|
|
206
|
-
|
|
235
|
+
return registry.extensionIds().map((extensionId) => {
|
|
236
|
+
const extension = registry.getExtension(extensionId);
|
|
237
|
+
const availability = resolveInstallAvailability(extension.manifest, frozen.installedPackages);
|
|
238
|
+
const entry = frozen.installManifest.extensions.find((item) => item.extensionId === extensionId);
|
|
239
|
+
const targetPresent = existsSync(extensionInstallRoot(frozen.projectPath, extensionId));
|
|
240
|
+
const outdated = Boolean(entry && (entry.version !== extension.manifest.version || !targetPresent));
|
|
241
|
+
const status = resolvePhysicalStatus(availability, entry !== undefined, outdated, [], [], []);
|
|
242
|
+
return extensionStatus(extension.manifest, availability, status, "shallow", Boolean(entry && targetPresent && !outdated), outdated, {
|
|
243
|
+
missingFiles: [], changedFiles: [], unknownFiles: [],
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
/** 普通 discovery/执行只证明一个 selected extension 的 target 投影,不读取 source tree。 */
|
|
248
|
+
export async function checkSelectedExtensionBundle(projectPath, extensionId, options = {}) {
|
|
249
|
+
const registry = new ExtensionRegistry();
|
|
250
|
+
const extension = registry.getExtension(extensionId);
|
|
251
|
+
if (!extension)
|
|
252
|
+
return undefined;
|
|
253
|
+
const snapshot = options.snapshot ?? await readExtensionStateSnapshot(projectPath);
|
|
254
|
+
const availability = resolveInstallAvailability(extension.manifest, snapshot.installedPackages);
|
|
255
|
+
const entry = snapshot.installManifest.extensions.find((item) => item.extensionId === extensionId);
|
|
256
|
+
const targetRoot = extensionInstallRoot(snapshot.projectPath, extensionId);
|
|
257
|
+
filesystemOperationObserverForTest?.("target-proof", extensionId);
|
|
258
|
+
const fileCheck = entry
|
|
259
|
+
? await checkManagedFiles(targetRoot, entry.files, options.absoluteDeadlineMs, extensionId)
|
|
260
|
+
: { missingFiles: [], changedFiles: [], unknownFiles: [] };
|
|
261
|
+
const outdated = Boolean(entry && entry.version !== extension.manifest.version);
|
|
262
|
+
const installed = Boolean(entry && !outdated && fileCheck.missingFiles.length === 0 && fileCheck.changedFiles.length === 0 && fileCheck.unknownFiles.length === 0);
|
|
263
|
+
const status = resolvePhysicalStatus(availability, entry !== undefined, outdated, fileCheck.missingFiles, fileCheck.changedFiles, fileCheck.unknownFiles);
|
|
264
|
+
return extensionStatus(extension.manifest, availability, status, "target", installed, outdated, fileCheck);
|
|
265
|
+
}
|
|
266
|
+
/** extensions doctor 独占全 extension source/managed-file 深 hash。 */
|
|
267
|
+
export async function checkExtensionBundles(projectPath, options = {}) {
|
|
268
|
+
const registry = new ExtensionRegistry();
|
|
269
|
+
const snapshot = options.snapshot ?? await readExtensionStateSnapshot(projectPath);
|
|
207
270
|
const checks = [];
|
|
208
271
|
for (const extensionId of registry.extensionIds()) {
|
|
272
|
+
requireExtensionScanDeadline(options.absoluteDeadlineMs);
|
|
209
273
|
const extension = registry.getExtension(extensionId);
|
|
210
|
-
const
|
|
211
|
-
const entry = installManifest.extensions.find((item) => item.extensionId === extensionId);
|
|
212
|
-
const targetRoot = extensionInstallRoot(projectPath, extensionId);
|
|
274
|
+
const availability = resolveInstallAvailability(extension.manifest, snapshot.installedPackages);
|
|
275
|
+
const entry = snapshot.installManifest.extensions.find((item) => item.extensionId === extensionId);
|
|
276
|
+
const targetRoot = extensionInstallRoot(snapshot.projectPath, extensionId);
|
|
213
277
|
const sourceRoot = extensionSourceRoot(extensionId);
|
|
214
278
|
const includes = extensionUnityInstallIncludes(extension.manifest);
|
|
215
279
|
const sourceProjectionComplete = existsSync(sourceRoot) && includes.every((include) => existsSync(safeSourcePath(sourceRoot, include)));
|
|
216
|
-
|
|
217
|
-
const
|
|
218
|
-
|
|
280
|
+
filesystemOperationObserverForTest?.("source-proof", extensionId);
|
|
281
|
+
const sourceHash = sourceProjectionComplete ? await hashBundleProjection(sourceRoot, includes, options.absoluteDeadlineMs, extensionId) : undefined;
|
|
282
|
+
filesystemOperationObserverForTest?.("target-proof", extensionId);
|
|
283
|
+
const fileCheck = entry
|
|
284
|
+
? await checkManagedFiles(targetRoot, entry.files, options.absoluteDeadlineMs, extensionId)
|
|
285
|
+
: { missingFiles: [], changedFiles: [], unknownFiles: await listUnknownFiles(targetRoot, [], options.absoluteDeadlineMs, extensionId) };
|
|
219
286
|
const outdated = Boolean(entry && (!sourceProjectionComplete || !sourceHash || entry.sourceHash !== sourceHash || entry.version !== extension.manifest.version));
|
|
220
|
-
const
|
|
221
|
-
const
|
|
222
|
-
|
|
223
|
-
checks.push({
|
|
224
|
-
extensionId,
|
|
225
|
-
name: extension.manifest.name,
|
|
226
|
-
status,
|
|
227
|
-
dependencyInstalled: bundleAvailability.status === "available",
|
|
228
|
-
installed,
|
|
229
|
-
outdated,
|
|
230
|
-
unknownFiles: fileCheck.unknownFiles,
|
|
231
|
-
missingFiles: fileCheck.missingFiles,
|
|
232
|
-
changedFiles: fileCheck.changedFiles,
|
|
233
|
-
providedTools: extension.manifest.contributions.tools?.map((tool) => tool.name) ?? [],
|
|
234
|
-
missingPackageIds: bundleAvailability.missingPackageIds,
|
|
235
|
-
nextActions: nextActionsForStatus(extension.manifest, bundleAvailability, status)
|
|
236
|
-
});
|
|
287
|
+
const installed = Boolean(entry && fileCheck.missingFiles.length === 0 && fileCheck.changedFiles.length === 0 && !outdated && fileCheck.unknownFiles.length === 0);
|
|
288
|
+
const status = resolvePhysicalStatus(availability, entry !== undefined, outdated, fileCheck.missingFiles, fileCheck.changedFiles, fileCheck.unknownFiles);
|
|
289
|
+
checks.push(extensionStatus(extension.manifest, availability, status, "full", installed, outdated, fileCheck));
|
|
237
290
|
}
|
|
238
291
|
return checks;
|
|
239
292
|
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
293
|
+
function extensionStatus(manifest, availability, status, integrity, installed, outdated, files) {
|
|
294
|
+
return {
|
|
295
|
+
extensionId: manifest.id,
|
|
296
|
+
name: manifest.name,
|
|
297
|
+
status,
|
|
298
|
+
integrity,
|
|
299
|
+
dependencyInstalled: availability.status === "available",
|
|
300
|
+
installed,
|
|
301
|
+
outdated,
|
|
302
|
+
unknownFiles: files.unknownFiles,
|
|
303
|
+
missingFiles: files.missingFiles,
|
|
304
|
+
changedFiles: files.changedFiles,
|
|
305
|
+
providedTools: manifest.contributions.tools?.map((tool) => tool.name) ?? [],
|
|
306
|
+
missingPackageIds: availability.missingPackageIds,
|
|
307
|
+
nextActions: nextActionsForStatus(manifest, availability, status),
|
|
308
|
+
};
|
|
246
309
|
}
|
|
247
310
|
/** 跨进程序列化同一项目的 extension 文件与 manifest 变更;活 owner 与损坏锁一律不按时间抢占。 */
|
|
248
311
|
async function withExtensionManifestLock(projectPath, action) {
|
|
@@ -386,46 +449,48 @@ async function removeManagedFiles(targetRoot, files) {
|
|
|
386
449
|
await rm(safeManagedPath(targetRoot, file.path), { force: true });
|
|
387
450
|
}
|
|
388
451
|
}
|
|
389
|
-
async function checkManagedFiles(targetRoot, files) {
|
|
452
|
+
async function checkManagedFiles(targetRoot, files, absoluteDeadlineMs, extensionId) {
|
|
390
453
|
const missingFiles = [];
|
|
391
454
|
const changedFiles = [];
|
|
392
455
|
const managed = new Set(files.map((file) => file.path));
|
|
393
456
|
for (const file of files) {
|
|
457
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
394
458
|
const fullPath = safeManagedPath(targetRoot, file.path);
|
|
395
459
|
if (!existsSync(fullPath)) {
|
|
396
460
|
missingFiles.push(file.path);
|
|
397
461
|
continue;
|
|
398
462
|
}
|
|
399
|
-
|
|
400
|
-
|
|
463
|
+
filesystemOperationObserverForTest?.("managed-file-hash", extensionId);
|
|
464
|
+
const actualHash = await hashFile(fullPath, absoluteDeadlineMs);
|
|
465
|
+
if (actualHash !== file.sha256)
|
|
401
466
|
changedFiles.push(file.path);
|
|
402
|
-
}
|
|
403
467
|
}
|
|
404
|
-
const unknownFiles = await listUnknownFiles(targetRoot, managed);
|
|
468
|
+
const unknownFiles = await listUnknownFiles(targetRoot, managed, absoluteDeadlineMs, extensionId);
|
|
405
469
|
return { missingFiles, changedFiles, unknownFiles };
|
|
406
470
|
}
|
|
407
|
-
async function listUnknownFiles(targetRoot, managed) {
|
|
408
|
-
|
|
471
|
+
async function listUnknownFiles(targetRoot, managed, absoluteDeadlineMs, extensionId) {
|
|
472
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
473
|
+
if (!existsSync(targetRoot))
|
|
409
474
|
return [];
|
|
410
|
-
}
|
|
411
475
|
const managedSet = new Set(managed);
|
|
412
|
-
const allFiles = await listFiles(targetRoot);
|
|
476
|
+
const allFiles = await listFiles(targetRoot, targetRoot, absoluteDeadlineMs, extensionId);
|
|
413
477
|
return allFiles.filter((file) => !managedSet.has(file) && !isUnityGeneratedMetaFile(file)).sort();
|
|
414
478
|
}
|
|
415
479
|
function isUnityGeneratedMetaFile(path) {
|
|
416
480
|
return path.endsWith(".meta");
|
|
417
481
|
}
|
|
418
|
-
async function listFiles(root, current = root) {
|
|
482
|
+
async function listFiles(root, current = root, absoluteDeadlineMs, extensionId) {
|
|
483
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
419
484
|
const entries = await readdir(current, { withFileTypes: true });
|
|
420
485
|
const files = [];
|
|
421
486
|
for (const entry of entries) {
|
|
487
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
488
|
+
filesystemOperationObserverForTest?.("unknown-tree-entry", extensionId);
|
|
422
489
|
const fullPath = join(current, entry.name);
|
|
423
|
-
if (entry.isDirectory())
|
|
424
|
-
files.push(...await listFiles(root, fullPath));
|
|
425
|
-
|
|
426
|
-
else if (entry.isFile()) {
|
|
490
|
+
if (entry.isDirectory())
|
|
491
|
+
files.push(...await listFiles(root, fullPath, absoluteDeadlineMs, extensionId));
|
|
492
|
+
else if (entry.isFile())
|
|
427
493
|
files.push(normalizePath(relative(root, fullPath)));
|
|
428
|
-
}
|
|
429
494
|
}
|
|
430
495
|
return files;
|
|
431
496
|
}
|
|
@@ -452,43 +517,54 @@ async function hashManagedProjection(root, files) {
|
|
|
452
517
|
}
|
|
453
518
|
return hash.digest("hex");
|
|
454
519
|
}
|
|
455
|
-
async function hashBundleProjection(sourceRoot, includes) {
|
|
520
|
+
async function hashBundleProjection(sourceRoot, includes, absoluteDeadlineMs, extensionId) {
|
|
456
521
|
const files = [];
|
|
457
522
|
for (const includePath of includes.map(normalizePath).sort()) {
|
|
523
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
458
524
|
const sourcePath = safeSourcePath(sourceRoot, includePath);
|
|
459
525
|
if (!existsSync(sourcePath))
|
|
460
526
|
continue;
|
|
461
527
|
const targetRelativeRoot = projectionTargetRoot(includePath);
|
|
462
|
-
if ((await stat(sourcePath)).isDirectory())
|
|
463
|
-
await collectProjectionFiles(sourcePath, sourcePath, targetRelativeRoot, files);
|
|
464
|
-
|
|
465
|
-
else {
|
|
528
|
+
if ((await stat(sourcePath)).isDirectory())
|
|
529
|
+
await collectProjectionFiles(sourcePath, sourcePath, targetRelativeRoot, files, absoluteDeadlineMs, extensionId);
|
|
530
|
+
else
|
|
466
531
|
files.push({ path: targetRelativeRoot, sourcePath });
|
|
467
|
-
}
|
|
468
532
|
}
|
|
469
533
|
const hash = createHash("sha256");
|
|
470
534
|
for (const file of files.sort((left, right) => left.path.localeCompare(right.path))) {
|
|
535
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
471
536
|
hash.update(`file:${file.path}\n`);
|
|
537
|
+
filesystemOperationObserverForTest?.("source-file-hash", extensionId);
|
|
472
538
|
hash.update(await readFile(file.sourcePath));
|
|
473
539
|
hash.update("\n");
|
|
474
540
|
}
|
|
475
541
|
return hash.digest("hex");
|
|
476
542
|
}
|
|
477
|
-
async function collectProjectionFiles(dir, root, targetPrefix, files) {
|
|
543
|
+
async function collectProjectionFiles(dir, root, targetPrefix, files, absoluteDeadlineMs, extensionId) {
|
|
544
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
478
545
|
for (const entry of (await readdir(dir, { withFileTypes: true })).sort((left, right) => left.name.localeCompare(right.name))) {
|
|
546
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
547
|
+
filesystemOperationObserverForTest?.("source-tree-entry", extensionId);
|
|
479
548
|
const sourcePath = join(dir, entry.name);
|
|
480
|
-
if (entry.isDirectory())
|
|
481
|
-
await collectProjectionFiles(sourcePath, root, targetPrefix, files);
|
|
482
|
-
}
|
|
549
|
+
if (entry.isDirectory())
|
|
550
|
+
await collectProjectionFiles(sourcePath, root, targetPrefix, files, absoluteDeadlineMs, extensionId);
|
|
483
551
|
else if (entry.isFile()) {
|
|
484
552
|
const relativePath = normalizePath(relative(root, sourcePath));
|
|
485
553
|
files.push({ path: normalizePath(targetPrefix ? `${targetPrefix}/${relativePath}` : relativePath), sourcePath });
|
|
486
554
|
}
|
|
487
555
|
}
|
|
488
556
|
}
|
|
489
|
-
async function hashFile(path) {
|
|
557
|
+
async function hashFile(path, absoluteDeadlineMs) {
|
|
558
|
+
requireExtensionScanDeadline(absoluteDeadlineMs);
|
|
490
559
|
return createHash("sha256").update(await readFile(path)).digest("hex");
|
|
491
560
|
}
|
|
561
|
+
function requireExtensionScanDeadline(absoluteDeadlineMs) {
|
|
562
|
+
if (absoluteDeadlineMs !== undefined && extensionFilesystemNow() >= absoluteDeadlineMs) {
|
|
563
|
+
throw new ExtensionInstallerError("E_EXTENSION_SCAN_TIMEOUT", "Extension filesystem inspection exceeded the immutable command deadline.", [
|
|
564
|
+
"Remove unexpected files or retry extensions doctor with a larger --timeout-ms after filesystem activity settles."
|
|
565
|
+
]);
|
|
566
|
+
}
|
|
567
|
+
}
|
|
492
568
|
function resolvePhysicalStatus(availability, hasEntry, outdated, missingFiles, changedFiles, unknownFiles) {
|
|
493
569
|
if (availability.status !== "available")
|
|
494
570
|
return "missing_dependency";
|
|
@@ -564,7 +640,7 @@ function invalidInstallManifest(projectPath, reason) {
|
|
|
564
640
|
}
|
|
565
641
|
function isInstalledEntry(value) {
|
|
566
642
|
const entry = value;
|
|
567
|
-
return
|
|
643
|
+
return isValidExtensionId(entry?.extensionId)
|
|
568
644
|
&& typeof entry.version === "string" && entry.version.length > 0
|
|
569
645
|
&& typeof entry.installedAt === "string" && !Number.isNaN(Date.parse(entry.installedAt))
|
|
570
646
|
&& typeof entry.sourceHash === "string" && /^[a-f0-9]{64}$/i.test(entry.sourceHash)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/extensions/installer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/extensions/installer.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* knows about and whether they are available in a given project.
|
|
7
7
|
*/
|
|
8
8
|
import { BUILTIN_EXTENSION_MANIFESTS } from "./.generated-registry-data.js";
|
|
9
|
+
import { EXTENSION_ID_MAX_UTF8_BYTES, isValidExtensionId } from "./state-contract.js";
|
|
9
10
|
/**
|
|
10
11
|
* Extension registry — discovers and resolves CLI extensions.
|
|
11
12
|
*
|
|
@@ -205,11 +206,8 @@ function buildNextActions(manifest, missingPackageIds) {
|
|
|
205
206
|
* Validate an extension manifest for required fields and constraints.
|
|
206
207
|
*/
|
|
207
208
|
export function validateManifest(manifest) {
|
|
208
|
-
if (!manifest.id
|
|
209
|
-
throw new ExtensionRegistryError("INVALID_MANIFEST",
|
|
210
|
-
}
|
|
211
|
-
if (!/^[a-z][a-z0-9]*(-[a-z0-9]+)*$/.test(manifest.id)) {
|
|
212
|
-
throw new ExtensionRegistryError("INVALID_MANIFEST", `Extension ID must be kebab-case (lowercase letters, digits, hyphens): ${manifest.id}`, ["Use a format like 'probuilder', 'vfx-graph', 'urp'."]);
|
|
209
|
+
if (!isValidExtensionId(manifest.id)) {
|
|
210
|
+
throw new ExtensionRegistryError("INVALID_MANIFEST", `Extension ID must be kebab-case (lowercase letters, digits, hyphens) and fit ${EXTENSION_ID_MAX_UTF8_BYTES} UTF-8 bytes: ${manifest.id ?? "<missing>"}`, ["Use a format like 'probuilder', 'vfx-graph', 'urp'."]);
|
|
213
211
|
}
|
|
214
212
|
if (!manifest.name || typeof manifest.name !== "string") {
|
|
215
213
|
throw new ExtensionRegistryError("INVALID_MANIFEST", `Extension '${manifest.id}' requires a non-empty 'name' field.`, ["Provide a human-readable name, e.g. 'ProBuilder'."]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/extensions/registry.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/extensions/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ExtensionId } from "./types.js";
|
|
2
|
+
export declare const EXTENSION_ID_MAX_UTF8_BYTES = 128;
|
|
3
|
+
export declare const EXTENSION_STATE_MAX_ENTRIES = 256;
|
|
4
|
+
export declare const EXTENSION_STATE_MAX_UTF8_BYTES: number;
|
|
5
|
+
export declare const EXTENSION_DIAGNOSTIC_SAMPLE_LIMIT = 32;
|
|
6
|
+
/** extension 状态中的 ID 使用统一 kebab-case 语法和单值 UTF-8 上限。 */
|
|
7
|
+
export declare function isValidExtensionId(value: unknown): value is ExtensionId;
|
|
8
|
+
/** 在固定字节预算内读取状态文件;返回 undefined 仅表示文件不存在。 */
|
|
9
|
+
export declare function readBoundedExtensionStateFile(path: string): Promise<string | undefined>;
|
|
10
|
+
export declare class ExtensionStateContractError extends Error {
|
|
11
|
+
}
|