unity-open-mcp 0.7.0 → 0.8.3
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/dist/batch-spawn.d.ts +12 -0
- package/dist/batch-spawn.js +106 -10
- package/dist/batch-spawn.js.map +1 -1
- package/dist/bridge-tools-cache.d.ts +46 -0
- package/dist/bridge-tools-cache.js +83 -0
- package/dist/bridge-tools-cache.js.map +1 -0
- package/dist/capabilities/build-capabilities.d.ts +34 -0
- package/dist/capabilities/build-capabilities.js +188 -450
- package/dist/capabilities/build-capabilities.js.map +1 -1
- package/dist/capabilities/intent-groups.d.ts +99 -0
- package/dist/capabilities/intent-groups.js +518 -0
- package/dist/capabilities/intent-groups.js.map +1 -0
- package/dist/capabilities/list-rules.js +12 -20
- package/dist/capabilities/list-rules.js.map +1 -1
- package/dist/capabilities/rule-catalog.d.ts +22 -1
- package/dist/capabilities/rule-catalog.js +53 -20
- package/dist/capabilities/rule-catalog.js.map +1 -1
- package/dist/capabilities/tool-groups.d.ts +8 -4
- package/dist/capabilities/tool-groups.js +36 -9
- package/dist/capabilities/tool-groups.js.map +1 -1
- package/dist/cli/cli.js +65 -8
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/commands.d.ts +20 -0
- package/dist/cli/commands.js +142 -73
- package/dist/cli/commands.js.map +1 -1
- package/dist/cli/help-text.d.ts +2 -0
- package/dist/cli/help-text.js +77 -0
- package/dist/cli/help-text.js.map +1 -0
- package/dist/cli/ping-poller.d.ts +7 -5
- package/dist/cli/ping-poller.js +16 -15
- package/dist/cli/ping-poller.js.map +1 -1
- package/dist/compressible-router.d.ts +9 -2
- package/dist/compressible-router.js +64 -7
- package/dist/compressible-router.js.map +1 -1
- package/dist/compression/compact.d.ts +1 -0
- package/dist/compression/compact.js +82 -14
- package/dist/compression/compact.js.map +1 -1
- package/dist/constants.d.ts +6 -5
- package/dist/constants.js +6 -5
- package/dist/constants.js.map +1 -1
- package/dist/dialog-dismiss.d.ts +10 -0
- package/dist/dialog-dismiss.js +110 -10
- package/dist/dialog-dismiss.js.map +1 -1
- package/dist/editor-process-control.d.ts +68 -0
- package/dist/editor-process-control.js +249 -0
- package/dist/editor-process-control.js.map +1 -0
- package/dist/event-stream.d.ts +2 -1
- package/dist/event-stream.js +43 -8
- package/dist/event-stream.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +18 -140
- package/dist/index.js.map +1 -1
- package/dist/live-client.d.ts +52 -10
- package/dist/live-client.js +399 -42
- package/dist/live-client.js.map +1 -1
- package/dist/offline/api.js +333 -91
- package/dist/offline/api.js.map +1 -1
- package/dist/offline/hierarchy.js +100 -3
- package/dist/offline/hierarchy.js.map +1 -1
- package/dist/offline/index-builders.d.ts +120 -2
- package/dist/offline/index-builders.js +374 -35
- package/dist/offline/index-builders.js.map +1 -1
- package/dist/offline/overrides.js +5 -1
- package/dist/offline/overrides.js.map +1 -1
- package/dist/offline/parse.js +21 -9
- package/dist/offline/parse.js.map +1 -1
- package/dist/offline/paths.d.ts +32 -0
- package/dist/offline/paths.js +71 -2
- package/dist/offline/paths.js.map +1 -1
- package/dist/offline/primitives.d.ts +15 -0
- package/dist/offline/primitives.js +130 -6
- package/dist/offline/primitives.js.map +1 -1
- package/dist/offline/types.d.ts +29 -0
- package/dist/offline/types.js.map +1 -1
- package/dist/ping-cache.d.ts +35 -0
- package/dist/ping-cache.js +70 -0
- package/dist/ping-cache.js.map +1 -1
- package/dist/process-diagnostics.d.ts +146 -0
- package/dist/process-diagnostics.js +333 -0
- package/dist/process-diagnostics.js.map +1 -0
- package/dist/schema-defaults.d.ts +11 -0
- package/dist/schema-defaults.js +32 -1
- package/dist/schema-defaults.js.map +1 -1
- package/dist/server-instructions.js +7 -2
- package/dist/server-instructions.js.map +1 -1
- package/dist/server.d.ts +17 -0
- package/dist/server.js +195 -0
- package/dist/server.js.map +1 -0
- package/dist/skill/client-paths.d.ts +23 -0
- package/dist/skill/client-paths.js +46 -1
- package/dist/skill/client-paths.js.map +1 -1
- package/dist/tool-router.d.ts +54 -0
- package/dist/tool-router.js +689 -51
- package/dist/tool-router.js.map +1 -1
- package/dist/tool-session-state.d.ts +82 -10
- package/dist/tool-session-state.js +116 -13
- package/dist/tool-session-state.js.map +1 -1
- package/dist/tools/agent-capabilities.d.ts +40 -2
- package/dist/tools/agent-capabilities.js +16 -21
- package/dist/tools/agent-capabilities.js.map +1 -1
- package/dist/tools/animation-create.d.ts +40 -2
- package/dist/tools/animation-create.js +17 -26
- package/dist/tools/animation-create.js.map +1 -1
- package/dist/tools/animation-get-data.d.ts +40 -2
- package/dist/tools/animation-get-data.js +13 -18
- package/dist/tools/animation-get-data.js.map +1 -1
- package/dist/tools/animation-modify.d.ts +40 -2
- package/dist/tools/animation-modify.js +31 -40
- package/dist/tools/animation-modify.js.map +1 -1
- package/dist/tools/animator-create.d.ts +40 -2
- package/dist/tools/animator-create.js +17 -26
- package/dist/tools/animator-create.js.map +1 -1
- package/dist/tools/animator-get-data.d.ts +40 -2
- package/dist/tools/animator-get-data.js +13 -18
- package/dist/tools/animator-get-data.js.map +1 -1
- package/dist/tools/animator-modify.d.ts +40 -2
- package/dist/tools/animator-modify.js +37 -46
- package/dist/tools/animator-modify.js.map +1 -1
- package/dist/tools/apply-fix.d.ts +40 -2
- package/dist/tools/apply-fix.js +41 -57
- package/dist/tools/apply-fix.js.map +1 -1
- package/dist/tools/asmdef-create.d.ts +40 -2
- package/dist/tools/asmdef-create.js +82 -100
- package/dist/tools/asmdef-create.js.map +1 -1
- package/dist/tools/asmdef-get.d.ts +40 -2
- package/dist/tools/asmdef-get.js +14 -19
- package/dist/tools/asmdef-get.js.map +1 -1
- package/dist/tools/asmdef-list.d.ts +40 -2
- package/dist/tools/asmdef-list.js +25 -30
- package/dist/tools/asmdef-list.js.map +1 -1
- package/dist/tools/asmdef-modify.d.ts +40 -2
- package/dist/tools/asmdef-modify.js +76 -94
- package/dist/tools/asmdef-modify.js.map +1 -1
- package/dist/tools/assets-copy.d.ts +40 -2
- package/dist/tools/assets-copy.js +26 -38
- package/dist/tools/assets-copy.js.map +1 -1
- package/dist/tools/assets-create-folder.d.ts +40 -2
- package/dist/tools/assets-create-folder.js +28 -41
- package/dist/tools/assets-create-folder.js.map +1 -1
- package/dist/tools/assets-delete.d.ts +40 -2
- package/dist/tools/assets-delete.js +16 -28
- package/dist/tools/assets-delete.js.map +1 -1
- package/dist/tools/assets-move.d.ts +40 -2
- package/dist/tools/assets-move.js +27 -39
- package/dist/tools/assets-move.js.map +1 -1
- package/dist/tools/assets-refresh.d.ts +40 -2
- package/dist/tools/assets-refresh.js +16 -28
- package/dist/tools/assets-refresh.js.map +1 -1
- package/dist/tools/audio-listener-get.d.ts +40 -2
- package/dist/tools/audio-listener-get.js +8 -13
- package/dist/tools/audio-listener-get.js.map +1 -1
- package/dist/tools/audio-mixer-get-parameter.d.ts +40 -2
- package/dist/tools/audio-mixer-get-parameter.js +15 -20
- package/dist/tools/audio-mixer-get-parameter.js.map +1 -1
- package/dist/tools/audio-mixer-set-parameter.d.ts +40 -2
- package/dist/tools/audio-mixer-set-parameter.js +29 -38
- package/dist/tools/audio-mixer-set-parameter.js.map +1 -1
- package/dist/tools/audio-source-add.d.ts +40 -2
- package/dist/tools/audio-source-add.js +58 -70
- package/dist/tools/audio-source-add.js.map +1 -1
- package/dist/tools/audio-source-modify.d.ts +40 -2
- package/dist/tools/audio-source-modify.js +36 -46
- package/dist/tools/audio-source-modify.js.map +1 -1
- package/dist/tools/baseline-create.d.ts +40 -2
- package/dist/tools/baseline-create.js +12 -17
- package/dist/tools/baseline-create.js.map +1 -1
- package/dist/tools/batch-execute.d.ts +40 -2
- package/dist/tools/batch-execute.js +64 -74
- package/dist/tools/batch-execute.js.map +1 -1
- package/dist/tools/bridge-status.d.ts +40 -2
- package/dist/tools/bridge-status.js +33 -38
- package/dist/tools/bridge-status.js.map +1 -1
- package/dist/tools/build-get-active-target.d.ts +40 -2
- package/dist/tools/build-get-active-target.js +7 -12
- package/dist/tools/build-get-active-target.js.map +1 -1
- package/dist/tools/build-get-defines.d.ts +40 -2
- package/dist/tools/build-get-defines.js +7 -12
- package/dist/tools/build-get-defines.js.map +1 -1
- package/dist/tools/build-get-scenes.d.ts +40 -2
- package/dist/tools/build-get-scenes.js +7 -12
- package/dist/tools/build-get-scenes.js.map +1 -1
- package/dist/tools/build-get-targets.d.ts +40 -2
- package/dist/tools/build-get-targets.js +8 -13
- package/dist/tools/build-get-targets.js.map +1 -1
- package/dist/tools/build-set-defines.d.ts +40 -2
- package/dist/tools/build-set-defines.js +22 -40
- package/dist/tools/build-set-defines.js.map +1 -1
- package/dist/tools/build-set-scenes.d.ts +40 -2
- package/dist/tools/build-set-scenes.js +36 -49
- package/dist/tools/build-set-scenes.js.map +1 -1
- package/dist/tools/build-set-target.d.ts +40 -2
- package/dist/tools/build-set-target.js +17 -38
- package/dist/tools/build-set-target.js.map +1 -1
- package/dist/tools/build-start.d.ts +40 -2
- package/dist/tools/build-start.js +34 -50
- package/dist/tools/build-start.js.map +1 -1
- package/dist/tools/capture-inline.d.ts +40 -2
- package/dist/tools/capture-inline.js +43 -48
- package/dist/tools/capture-inline.js.map +1 -1
- package/dist/tools/checkpoint-create.d.ts +40 -2
- package/dist/tools/checkpoint-create.js +13 -14
- package/dist/tools/checkpoint-create.js.map +1 -1
- package/dist/tools/cinemachine-brain-ensure.d.ts +40 -2
- package/dist/tools/cinemachine-brain-ensure.js +14 -23
- package/dist/tools/cinemachine-brain-ensure.js.map +1 -1
- package/dist/tools/cinemachine-camera-list.d.ts +40 -2
- package/dist/tools/cinemachine-camera-list.js +6 -11
- package/dist/tools/cinemachine-camera-list.js.map +1 -1
- package/dist/tools/cinemachine-create-camera.d.ts +40 -2
- package/dist/tools/cinemachine-create-camera.js +38 -47
- package/dist/tools/cinemachine-create-camera.js.map +1 -1
- package/dist/tools/cinemachine-set-body.d.ts +40 -2
- package/dist/tools/cinemachine-set-body.js +20 -29
- package/dist/tools/cinemachine-set-body.js.map +1 -1
- package/dist/tools/cinemachine-set-lens.d.ts +40 -2
- package/dist/tools/cinemachine-set-lens.js +28 -37
- package/dist/tools/cinemachine-set-lens.js.map +1 -1
- package/dist/tools/cinemachine-set-noise.d.ts +40 -2
- package/dist/tools/cinemachine-set-noise.js +18 -27
- package/dist/tools/cinemachine-set-noise.js.map +1 -1
- package/dist/tools/cinemachine-set-targets.d.ts +40 -2
- package/dist/tools/cinemachine-set-targets.js +17 -26
- package/dist/tools/cinemachine-set-targets.js.map +1 -1
- package/dist/tools/compile-check.d.ts +40 -2
- package/dist/tools/compile-check.js +18 -23
- package/dist/tools/compile-check.js.map +1 -1
- package/dist/tools/component-add.d.ts +40 -2
- package/dist/tools/component-add.js +30 -42
- package/dist/tools/component-add.js.map +1 -1
- package/dist/tools/component-destroy.d.ts +40 -2
- package/dist/tools/component-destroy.js +29 -41
- package/dist/tools/component-destroy.js.map +1 -1
- package/dist/tools/component-get.d.ts +40 -2
- package/dist/tools/component-get.js +77 -82
- package/dist/tools/component-get.js.map +1 -1
- package/dist/tools/component-list-all.d.ts +40 -2
- package/dist/tools/component-list-all.js +29 -34
- package/dist/tools/component-list-all.js.map +1 -1
- package/dist/tools/component-modify.d.ts +40 -2
- package/dist/tools/component-modify.js +60 -72
- package/dist/tools/component-modify.js.map +1 -1
- package/dist/tools/console-clear.d.ts +40 -2
- package/dist/tools/console-clear.js +9 -14
- package/dist/tools/console-clear.js.map +1 -1
- package/dist/tools/console-log.d.ts +40 -2
- package/dist/tools/console-log.js +34 -39
- package/dist/tools/console-log.js.map +1 -1
- package/dist/tools/constraint-add.d.ts +40 -2
- package/dist/tools/constraint-add.js +49 -61
- package/dist/tools/constraint-add.js.map +1 -1
- package/dist/tools/delta.d.ts +40 -2
- package/dist/tools/delta.js +10 -15
- package/dist/tools/delta.js.map +1 -1
- package/dist/tools/dependencies.d.ts +40 -2
- package/dist/tools/dependencies.js +55 -60
- package/dist/tools/dependencies.js.map +1 -1
- package/dist/tools/editor-add-layer.d.ts +40 -2
- package/dist/tools/editor-add-layer.js +30 -43
- package/dist/tools/editor-add-layer.js.map +1 -1
- package/dist/tools/editor-add-tag.d.ts +40 -2
- package/dist/tools/editor-add-tag.js +20 -33
- package/dist/tools/editor-add-tag.js.map +1 -1
- package/dist/tools/editor-clear-history.d.ts +40 -2
- package/dist/tools/editor-clear-history.js +9 -21
- package/dist/tools/editor-clear-history.js.map +1 -1
- package/dist/tools/editor-get-layers.d.ts +40 -2
- package/dist/tools/editor-get-layers.js +12 -17
- package/dist/tools/editor-get-layers.js.map +1 -1
- package/dist/tools/editor-get-tags.d.ts +40 -2
- package/dist/tools/editor-get-tags.js +10 -15
- package/dist/tools/editor-get-tags.js.map +1 -1
- package/dist/tools/editor-redo.d.ts +40 -2
- package/dist/tools/editor-redo.js +15 -20
- package/dist/tools/editor-redo.js.map +1 -1
- package/dist/tools/editor-set-state.d.ts +40 -2
- package/dist/tools/editor-set-state.js +33 -42
- package/dist/tools/editor-set-state.js.map +1 -1
- package/dist/tools/editor-status.d.ts +40 -2
- package/dist/tools/editor-status.js +9 -14
- package/dist/tools/editor-status.js.map +1 -1
- package/dist/tools/editor-undo-history.d.ts +40 -2
- package/dist/tools/editor-undo-history.js +11 -16
- package/dist/tools/editor-undo-history.js.map +1 -1
- package/dist/tools/editor-undo.d.ts +40 -2
- package/dist/tools/editor-undo.js +17 -22
- package/dist/tools/editor-undo.js.map +1 -1
- package/dist/tools/editorprefs-delete.d.ts +40 -2
- package/dist/tools/editorprefs-delete.js +12 -17
- package/dist/tools/editorprefs-delete.js.map +1 -1
- package/dist/tools/editorprefs-get.d.ts +40 -2
- package/dist/tools/editorprefs-get.js +17 -22
- package/dist/tools/editorprefs-get.js.map +1 -1
- package/dist/tools/editorprefs-set.d.ts +40 -2
- package/dist/tools/editorprefs-set.js +22 -27
- package/dist/tools/editorprefs-set.js.map +1 -1
- package/dist/tools/execute-csharp.d.ts +40 -2
- package/dist/tools/execute-csharp.js +44 -71
- package/dist/tools/execute-csharp.js.map +1 -1
- package/dist/tools/execute-menu.d.ts +40 -2
- package/dist/tools/execute-menu.js +12 -37
- package/dist/tools/execute-menu.js.map +1 -1
- package/dist/tools/find-members.d.ts +40 -2
- package/dist/tools/find-members.js +41 -46
- package/dist/tools/find-members.js.map +1 -1
- package/dist/tools/find-references.d.ts +40 -2
- package/dist/tools/find-references.js +48 -53
- package/dist/tools/find-references.js.map +1 -1
- package/dist/tools/frame-debugger.d.ts +40 -2
- package/dist/tools/frame-debugger.js +27 -32
- package/dist/tools/frame-debugger.js.map +1 -1
- package/dist/tools/gameobject-create.d.ts +40 -2
- package/dist/tools/gameobject-create.js +44 -56
- package/dist/tools/gameobject-create.js.map +1 -1
- package/dist/tools/gameobject-destroy.d.ts +40 -2
- package/dist/tools/gameobject-destroy.js +21 -33
- package/dist/tools/gameobject-destroy.js.map +1 -1
- package/dist/tools/gameobject-duplicate.d.ts +40 -2
- package/dist/tools/gameobject-duplicate.js +23 -35
- package/dist/tools/gameobject-duplicate.js.map +1 -1
- package/dist/tools/gameobject-find.d.ts +40 -2
- package/dist/tools/gameobject-find.js +49 -54
- package/dist/tools/gameobject-find.js.map +1 -1
- package/dist/tools/gameobject-modify.d.ts +40 -2
- package/dist/tools/gameobject-modify.js +101 -113
- package/dist/tools/gameobject-modify.js.map +1 -1
- package/dist/tools/gameobject-set-parent.d.ts +40 -2
- package/dist/tools/gameobject-set-parent.js +42 -50
- package/dist/tools/gameobject-set-parent.js.map +1 -1
- package/dist/tools/gate-budget-estimate.d.ts +40 -2
- package/dist/tools/gate-budget-estimate.js +35 -40
- package/dist/tools/gate-budget-estimate.js.map +1 -1
- package/dist/tools/generate-skill.d.ts +40 -2
- package/dist/tools/generate-skill.js +30 -35
- package/dist/tools/generate-skill.js.map +1 -1
- package/dist/tools/hub-available-releases.d.ts +40 -2
- package/dist/tools/hub-available-releases.js +12 -17
- package/dist/tools/hub-available-releases.js.map +1 -1
- package/dist/tools/hub-get-install-path.d.ts +40 -2
- package/dist/tools/hub-get-install-path.js +11 -16
- package/dist/tools/hub-get-install-path.js.map +1 -1
- package/dist/tools/hub-install-editor.d.ts +40 -2
- package/dist/tools/hub-install-editor.js +29 -34
- package/dist/tools/hub-install-editor.js.map +1 -1
- package/dist/tools/hub-install-modules.d.ts +40 -2
- package/dist/tools/hub-install-modules.js +31 -36
- package/dist/tools/hub-install-modules.js.map +1 -1
- package/dist/tools/hub-list-editors.d.ts +40 -2
- package/dist/tools/hub-list-editors.js +14 -19
- package/dist/tools/hub-list-editors.js.map +1 -1
- package/dist/tools/hub-set-install-path.d.ts +40 -2
- package/dist/tools/hub-set-install-path.js +18 -23
- package/dist/tools/hub-set-install-path.js.map +1 -1
- package/dist/tools/impact-preview.d.ts +40 -2
- package/dist/tools/impact-preview.js +31 -36
- package/dist/tools/impact-preview.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.js +17 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/inputsystem-action-add.d.ts +40 -2
- package/dist/tools/inputsystem-action-add.js +48 -57
- package/dist/tools/inputsystem-action-add.js.map +1 -1
- package/dist/tools/inputsystem-actionmap-add.d.ts +40 -2
- package/dist/tools/inputsystem-actionmap-add.js +17 -26
- package/dist/tools/inputsystem-actionmap-add.js.map +1 -1
- package/dist/tools/inputsystem-asset-create.d.ts +40 -2
- package/dist/tools/inputsystem-asset-create.js +19 -28
- package/dist/tools/inputsystem-asset-create.js.map +1 -1
- package/dist/tools/inputsystem-binding-add.d.ts +40 -2
- package/dist/tools/inputsystem-binding-add.js +34 -43
- package/dist/tools/inputsystem-binding-add.js.map +1 -1
- package/dist/tools/inputsystem-binding-composite-add.d.ts +40 -2
- package/dist/tools/inputsystem-binding-composite-add.js +37 -46
- package/dist/tools/inputsystem-binding-composite-add.js.map +1 -1
- package/dist/tools/inputsystem-controlscheme-add.d.ts +40 -2
- package/dist/tools/inputsystem-controlscheme-add.js +29 -38
- package/dist/tools/inputsystem-controlscheme-add.js.map +1 -1
- package/dist/tools/inputsystem-get.d.ts +40 -2
- package/dist/tools/inputsystem-get.js +12 -17
- package/dist/tools/inputsystem-get.js.map +1 -1
- package/dist/tools/invoke-method.d.ts +40 -2
- package/dist/tools/invoke-method.js +73 -91
- package/dist/tools/invoke-method.js.map +1 -1
- package/dist/tools/light-add.d.ts +40 -2
- package/dist/tools/light-add.js +38 -50
- package/dist/tools/light-add.js.map +1 -1
- package/dist/tools/light-modify.d.ts +40 -2
- package/dist/tools/light-modify.js +22 -31
- package/dist/tools/light-modify.js.map +1 -1
- package/dist/tools/light-set.d.ts +40 -2
- package/dist/tools/light-set.js +40 -49
- package/dist/tools/light-set.js.map +1 -1
- package/dist/tools/list-assets-of-type.d.ts +40 -2
- package/dist/tools/list-assets-of-type.js +37 -42
- package/dist/tools/list-assets-of-type.js.map +1 -1
- package/dist/tools/list-assets.d.ts +40 -2
- package/dist/tools/list-assets.js +19 -24
- package/dist/tools/list-assets.js.map +1 -1
- package/dist/tools/list-rules.d.ts +40 -2
- package/dist/tools/list-rules.js +19 -24
- package/dist/tools/list-rules.js.map +1 -1
- package/dist/tools/lod-add-level.d.ts +40 -2
- package/dist/tools/lod-add-level.js +31 -43
- package/dist/tools/lod-add-level.js.map +1 -1
- package/dist/tools/lod-group-configure.d.ts +40 -2
- package/dist/tools/lod-group-configure.js +30 -42
- package/dist/tools/lod-group-configure.js.map +1 -1
- package/dist/tools/manage-tools.d.ts +40 -2
- package/dist/tools/manage-tools.js +70 -36
- package/dist/tools/manage-tools.js.map +1 -1
- package/dist/tools/material-create.d.ts +40 -2
- package/dist/tools/material-create.js +30 -31
- package/dist/tools/material-create.js.map +1 -1
- package/dist/tools/material-get-keywords.d.ts +40 -2
- package/dist/tools/material-get-keywords.js +14 -19
- package/dist/tools/material-get-keywords.js.map +1 -1
- package/dist/tools/material-get-properties.d.ts +40 -2
- package/dist/tools/material-get-properties.js +21 -26
- package/dist/tools/material-get-properties.js.map +1 -1
- package/dist/tools/material-set-keyword.d.ts +40 -2
- package/dist/tools/material-set-keyword.js +26 -38
- package/dist/tools/material-set-keyword.js.map +1 -1
- package/dist/tools/material-set-property.d.ts +40 -2
- package/dist/tools/material-set-property.js +35 -47
- package/dist/tools/material-set-property.js.map +1 -1
- package/dist/tools/material-set-shader.d.ts +40 -2
- package/dist/tools/material-set-shader.js +23 -35
- package/dist/tools/material-set-shader.js.map +1 -1
- package/dist/tools/memory-snapshot-capture.d.ts +40 -2
- package/dist/tools/memory-snapshot-capture.js +37 -42
- package/dist/tools/memory-snapshot-capture.js.map +1 -1
- package/dist/tools/mutation-explain.d.ts +40 -2
- package/dist/tools/mutation-explain.js +19 -24
- package/dist/tools/mutation-explain.js.map +1 -1
- package/dist/tools/navigation-agent-add.d.ts +40 -2
- package/dist/tools/navigation-agent-add.js +24 -33
- package/dist/tools/navigation-agent-add.js.map +1 -1
- package/dist/tools/navigation-agent-set-destination.d.ts +40 -2
- package/dist/tools/navigation-agent-set-destination.js +18 -27
- package/dist/tools/navigation-agent-set-destination.js.map +1 -1
- package/dist/tools/navigation-get.d.ts +40 -2
- package/dist/tools/navigation-get.js +11 -16
- package/dist/tools/navigation-get.js.map +1 -1
- package/dist/tools/navigation-link-add.d.ts +40 -2
- package/dist/tools/navigation-link-add.js +43 -52
- package/dist/tools/navigation-link-add.js.map +1 -1
- package/dist/tools/navigation-list.d.ts +40 -2
- package/dist/tools/navigation-list.js +8 -13
- package/dist/tools/navigation-list.js.map +1 -1
- package/dist/tools/navigation-modifier-add.d.ts +40 -2
- package/dist/tools/navigation-modifier-add.js +28 -37
- package/dist/tools/navigation-modifier-add.js.map +1 -1
- package/dist/tools/navigation-modifier-volume-add.d.ts +40 -2
- package/dist/tools/navigation-modifier-volume-add.js +27 -36
- package/dist/tools/navigation-modifier-volume-add.js.map +1 -1
- package/dist/tools/navigation-modify.d.ts +40 -2
- package/dist/tools/navigation-modify.js +33 -42
- package/dist/tools/navigation-modify.js.map +1 -1
- package/dist/tools/navigation-set-bake-settings.d.ts +40 -2
- package/dist/tools/navigation-set-bake-settings.js +27 -36
- package/dist/tools/navigation-set-bake-settings.js.map +1 -1
- package/dist/tools/navigation-surface-add.d.ts +40 -2
- package/dist/tools/navigation-surface-add.js +27 -39
- package/dist/tools/navigation-surface-add.js.map +1 -1
- package/dist/tools/navigation-surface-bake.d.ts +40 -2
- package/dist/tools/navigation-surface-bake.js +15 -24
- package/dist/tools/navigation-surface-bake.js.map +1 -1
- package/dist/tools/object-get-data.d.ts +40 -2
- package/dist/tools/object-get-data.js +44 -49
- package/dist/tools/object-get-data.js.map +1 -1
- package/dist/tools/object-modify.d.ts +40 -2
- package/dist/tools/object-modify.js +48 -60
- package/dist/tools/object-modify.js.map +1 -1
- package/dist/tools/package-add.d.ts +40 -2
- package/dist/tools/package-add.js +20 -35
- package/dist/tools/package-add.js.map +1 -1
- package/dist/tools/package-check.d.ts +40 -2
- package/dist/tools/package-check.js +15 -20
- package/dist/tools/package-check.js.map +1 -1
- package/dist/tools/package-get-dependencies.d.ts +40 -2
- package/dist/tools/package-get-dependencies.js +8 -13
- package/dist/tools/package-get-dependencies.js.map +1 -1
- package/dist/tools/package-get-info.d.ts +40 -2
- package/dist/tools/package-get-info.js +21 -26
- package/dist/tools/package-get-info.js.map +1 -1
- package/dist/tools/package-list.d.ts +40 -2
- package/dist/tools/package-list.js +45 -50
- package/dist/tools/package-list.js.map +1 -1
- package/dist/tools/package-remove.d.ts +40 -2
- package/dist/tools/package-remove.js +18 -33
- package/dist/tools/package-remove.js.map +1 -1
- package/dist/tools/package-search.d.ts +40 -2
- package/dist/tools/package-search.js +29 -34
- package/dist/tools/package-search.js.map +1 -1
- package/dist/tools/particle-system-get.d.ts +40 -2
- package/dist/tools/particle-system-get.js +24 -29
- package/dist/tools/particle-system-get.js.map +1 -1
- package/dist/tools/particle-system-modify.d.ts +40 -2
- package/dist/tools/particle-system-modify.js +50 -59
- package/dist/tools/particle-system-modify.js.map +1 -1
- package/dist/tools/ping.d.ts +40 -2
- package/dist/tools/ping.js +4 -9
- package/dist/tools/ping.js.map +1 -1
- package/dist/tools/playerprefs-delete.d.ts +40 -2
- package/dist/tools/playerprefs-delete.js +13 -18
- package/dist/tools/playerprefs-delete.js.map +1 -1
- package/dist/tools/playerprefs-get.d.ts +40 -2
- package/dist/tools/playerprefs-get.js +17 -22
- package/dist/tools/playerprefs-get.js.map +1 -1
- package/dist/tools/playerprefs-set.d.ts +40 -2
- package/dist/tools/playerprefs-set.js +25 -30
- package/dist/tools/playerprefs-set.js.map +1 -1
- package/dist/tools/prefab-apply.d.ts +40 -2
- package/dist/tools/prefab-apply.js +22 -34
- package/dist/tools/prefab-apply.js.map +1 -1
- package/dist/tools/prefab-close.d.ts +40 -2
- package/dist/tools/prefab-close.js +13 -25
- package/dist/tools/prefab-close.js.map +1 -1
- package/dist/tools/prefab-create.d.ts +40 -2
- package/dist/tools/prefab-create.js +35 -47
- package/dist/tools/prefab-create.js.map +1 -1
- package/dist/tools/prefab-get-overrides.d.ts +40 -2
- package/dist/tools/prefab-get-overrides.js +18 -23
- package/dist/tools/prefab-get-overrides.js.map +1 -1
- package/dist/tools/prefab-instantiate.d.ts +40 -2
- package/dist/tools/prefab-instantiate.js +35 -47
- package/dist/tools/prefab-instantiate.js.map +1 -1
- package/dist/tools/prefab-open.d.ts +40 -2
- package/dist/tools/prefab-open.js +12 -24
- package/dist/tools/prefab-open.js.map +1 -1
- package/dist/tools/prefab-revert.d.ts +40 -2
- package/dist/tools/prefab-revert.js +21 -33
- package/dist/tools/prefab-revert.js.map +1 -1
- package/dist/tools/prefab-save.d.ts +40 -2
- package/dist/tools/prefab-save.js +8 -20
- package/dist/tools/prefab-save.js.map +1 -1
- package/dist/tools/prefab-status.d.ts +40 -2
- package/dist/tools/prefab-status.js +18 -23
- package/dist/tools/prefab-status.js.map +1 -1
- package/dist/tools/prefab-unpack.d.ts +40 -2
- package/dist/tools/prefab-unpack.js +27 -39
- package/dist/tools/prefab-unpack.js.map +1 -1
- package/dist/tools/probuilder-create-shape.d.ts +40 -2
- package/dist/tools/probuilder-create-shape.js +24 -33
- package/dist/tools/probuilder-create-shape.js.map +1 -1
- package/dist/tools/probuilder-delete-faces.d.ts +40 -2
- package/dist/tools/probuilder-delete-faces.js +24 -33
- package/dist/tools/probuilder-delete-faces.js.map +1 -1
- package/dist/tools/probuilder-extrude.d.ts +40 -2
- package/dist/tools/probuilder-extrude.js +35 -44
- package/dist/tools/probuilder-extrude.js.map +1 -1
- package/dist/tools/probuilder-get-mesh-info.d.ts +40 -2
- package/dist/tools/probuilder-get-mesh-info.js +12 -17
- package/dist/tools/probuilder-get-mesh-info.js.map +1 -1
- package/dist/tools/probuilder-set-face-material.d.ts +40 -2
- package/dist/tools/probuilder-set-face-material.js +30 -39
- package/dist/tools/probuilder-set-face-material.js.map +1 -1
- package/dist/tools/profiler-capture-frame.d.ts +40 -2
- package/dist/tools/profiler-capture-frame.js +59 -63
- package/dist/tools/profiler-capture-frame.js.map +1 -1
- package/dist/tools/profiler-capture.d.ts +40 -2
- package/dist/tools/profiler-capture.js +76 -81
- package/dist/tools/profiler-capture.js.map +1 -1
- package/dist/tools/profiler-clear-data.d.ts +40 -2
- package/dist/tools/profiler-clear-data.js +9 -14
- package/dist/tools/profiler-clear-data.js.map +1 -1
- package/dist/tools/profiler-enable-module.d.ts +40 -2
- package/dist/tools/profiler-enable-module.js +18 -23
- package/dist/tools/profiler-enable-module.js.map +1 -1
- package/dist/tools/profiler-get-config.d.ts +40 -2
- package/dist/tools/profiler-get-config.js +10 -15
- package/dist/tools/profiler-get-config.js.map +1 -1
- package/dist/tools/profiler-get-script-stats.d.ts +40 -2
- package/dist/tools/profiler-get-script-stats.js +9 -14
- package/dist/tools/profiler-get-script-stats.js.map +1 -1
- package/dist/tools/profiler-get-status.d.ts +40 -2
- package/dist/tools/profiler-get-status.js +10 -15
- package/dist/tools/profiler-get-status.js.map +1 -1
- package/dist/tools/profiler-list-modules.d.ts +40 -2
- package/dist/tools/profiler-list-modules.js +9 -14
- package/dist/tools/profiler-list-modules.js.map +1 -1
- package/dist/tools/profiler-load-data.d.ts +40 -2
- package/dist/tools/profiler-load-data.js +23 -28
- package/dist/tools/profiler-load-data.js.map +1 -1
- package/dist/tools/profiler-memory.d.ts +40 -2
- package/dist/tools/profiler-memory.js +13 -18
- package/dist/tools/profiler-memory.js.map +1 -1
- package/dist/tools/profiler-rendering.d.ts +40 -2
- package/dist/tools/profiler-rendering.js +8 -13
- package/dist/tools/profiler-rendering.js.map +1 -1
- package/dist/tools/profiler-save-data.d.ts +40 -2
- package/dist/tools/profiler-save-data.js +16 -28
- package/dist/tools/profiler-save-data.js.map +1 -1
- package/dist/tools/profiler-set-config.d.ts +40 -2
- package/dist/tools/profiler-set-config.js +58 -63
- package/dist/tools/profiler-set-config.js.map +1 -1
- package/dist/tools/profiler-start.d.ts +40 -2
- package/dist/tools/profiler-start.js +16 -21
- package/dist/tools/profiler-start.js.map +1 -1
- package/dist/tools/profiler-stop.d.ts +40 -2
- package/dist/tools/profiler-stop.js +9 -14
- package/dist/tools/profiler-stop.js.map +1 -1
- package/dist/tools/pull-events.d.ts +40 -2
- package/dist/tools/pull-events.js +23 -28
- package/dist/tools/pull-events.js.map +1 -1
- package/dist/tools/read-asset.d.ts +40 -2
- package/dist/tools/read-asset.js +66 -71
- package/dist/tools/read-asset.js.map +1 -1
- package/dist/tools/read-compile-errors.d.ts +40 -2
- package/dist/tools/read-compile-errors.js +40 -45
- package/dist/tools/read-compile-errors.js.map +1 -1
- package/dist/tools/read-console.d.ts +40 -2
- package/dist/tools/read-console.js +49 -54
- package/dist/tools/read-console.js.map +1 -1
- package/dist/tools/reflection-probe-bake.d.ts +40 -2
- package/dist/tools/reflection-probe-bake.js +30 -40
- package/dist/tools/reflection-probe-bake.js.map +1 -1
- package/dist/tools/reflection-probe-get.d.ts +40 -2
- package/dist/tools/reflection-probe-get.js +10 -15
- package/dist/tools/reflection-probe-get.js.map +1 -1
- package/dist/tools/regression-check.d.ts +40 -2
- package/dist/tools/regression-check.js +28 -33
- package/dist/tools/regression-check.js.map +1 -1
- package/dist/tools/reimport-package.d.ts +40 -2
- package/dist/tools/reimport-package.js +22 -38
- package/dist/tools/reimport-package.js.map +1 -1
- package/dist/tools/reserialize.d.ts +40 -2
- package/dist/tools/reserialize.js +19 -28
- package/dist/tools/reserialize.js.map +1 -1
- package/dist/tools/resource-pressure.d.ts +40 -0
- package/dist/tools/resource-pressure.js +57 -0
- package/dist/tools/resource-pressure.js.map +1 -0
- package/dist/tools/restart-editor.d.ts +40 -0
- package/dist/tools/restart-editor.js +74 -0
- package/dist/tools/restart-editor.js.map +1 -0
- package/dist/tools/run-tests.d.ts +40 -2
- package/dist/tools/run-tests.js +41 -46
- package/dist/tools/run-tests.js.map +1 -1
- package/dist/tools/scan-all.d.ts +40 -2
- package/dist/tools/scan-all.js +17 -22
- package/dist/tools/scan-all.js.map +1 -1
- package/dist/tools/scan-paths.d.ts +40 -2
- package/dist/tools/scan-paths.js +51 -56
- package/dist/tools/scan-paths.js.map +1 -1
- package/dist/tools/scene-create.d.ts +40 -2
- package/dist/tools/scene-create.js +41 -42
- package/dist/tools/scene-create.js.map +1 -1
- package/dist/tools/scene-focus.d.ts +40 -2
- package/dist/tools/scene-focus.js +38 -50
- package/dist/tools/scene-focus.js.map +1 -1
- package/dist/tools/scene-get-data.d.ts +40 -2
- package/dist/tools/scene-get-data.js +66 -71
- package/dist/tools/scene-get-data.js.map +1 -1
- package/dist/tools/scene-get-dirty-summary.d.ts +40 -2
- package/dist/tools/scene-get-dirty-summary.js +9 -14
- package/dist/tools/scene-get-dirty-summary.js.map +1 -1
- package/dist/tools/scene-list-opened.d.ts +40 -2
- package/dist/tools/scene-list-opened.js +8 -13
- package/dist/tools/scene-list-opened.js.map +1 -1
- package/dist/tools/scene-open.d.ts +40 -2
- package/dist/tools/scene-open.js +24 -43
- package/dist/tools/scene-open.js.map +1 -1
- package/dist/tools/scene-save.d.ts +40 -2
- package/dist/tools/scene-save.js +25 -38
- package/dist/tools/scene-save.js.map +1 -1
- package/dist/tools/scene-set-active.d.ts +40 -2
- package/dist/tools/scene-set-active.js +27 -39
- package/dist/tools/scene-set-active.js.map +1 -1
- package/dist/tools/scene-unload.d.ts +40 -2
- package/dist/tools/scene-unload.js +25 -38
- package/dist/tools/scene-unload.js.map +1 -1
- package/dist/tools/sceneview-get-camera.d.ts +40 -2
- package/dist/tools/sceneview-get-camera.js +7 -12
- package/dist/tools/sceneview-get-camera.js.map +1 -1
- package/dist/tools/sceneview-set-camera.d.ts +40 -2
- package/dist/tools/sceneview-set-camera.js +38 -50
- package/dist/tools/sceneview-set-camera.js.map +1 -1
- package/dist/tools/schema-fragments.d.ts +86 -0
- package/dist/tools/schema-fragments.js +119 -0
- package/dist/tools/schema-fragments.js.map +1 -0
- package/dist/tools/screenshot-camera.d.ts +40 -2
- package/dist/tools/screenshot-camera.js +47 -52
- package/dist/tools/screenshot-camera.js.map +1 -1
- package/dist/tools/screenshot-window.d.ts +40 -2
- package/dist/tools/screenshot-window.js +40 -45
- package/dist/tools/screenshot-window.js.map +1 -1
- package/dist/tools/screenshot.d.ts +40 -2
- package/dist/tools/screenshot.js +39 -44
- package/dist/tools/screenshot.js.map +1 -1
- package/dist/tools/script-delete.d.ts +40 -2
- package/dist/tools/script-delete.js +18 -30
- package/dist/tools/script-delete.js.map +1 -1
- package/dist/tools/script-read.d.ts +40 -2
- package/dist/tools/script-read.js +34 -39
- package/dist/tools/script-read.js.map +1 -1
- package/dist/tools/script-write.d.ts +40 -2
- package/dist/tools/script-write.js +37 -49
- package/dist/tools/script-write.js.map +1 -1
- package/dist/tools/scriptableobject-create.d.ts +40 -2
- package/dist/tools/scriptableobject-create.js +56 -68
- package/dist/tools/scriptableobject-create.js.map +1 -1
- package/dist/tools/search-assets.d.ts +40 -2
- package/dist/tools/search-assets.js +55 -60
- package/dist/tools/search-assets.js.map +1 -1
- package/dist/tools/selection-get.d.ts +40 -2
- package/dist/tools/selection-get.js +16 -21
- package/dist/tools/selection-get.js.map +1 -1
- package/dist/tools/selection-set.d.ts +40 -2
- package/dist/tools/selection-set.js +57 -62
- package/dist/tools/selection-set.js.map +1 -1
- package/dist/tools/settings-get-lighting.d.ts +40 -2
- package/dist/tools/settings-get-lighting.js +9 -14
- package/dist/tools/settings-get-lighting.js.map +1 -1
- package/dist/tools/settings-get-physics.d.ts +40 -2
- package/dist/tools/settings-get-physics.js +7 -12
- package/dist/tools/settings-get-physics.js.map +1 -1
- package/dist/tools/settings-get-player.d.ts +40 -2
- package/dist/tools/settings-get-player.js +7 -12
- package/dist/tools/settings-get-player.js.map +1 -1
- package/dist/tools/settings-get-quality.d.ts +40 -2
- package/dist/tools/settings-get-quality.js +7 -12
- package/dist/tools/settings-get-quality.js.map +1 -1
- package/dist/tools/settings-get-render-pipeline.d.ts +40 -2
- package/dist/tools/settings-get-render-pipeline.js +10 -15
- package/dist/tools/settings-get-render-pipeline.js.map +1 -1
- package/dist/tools/settings-get-time.d.ts +40 -2
- package/dist/tools/settings-get-time.js +9 -14
- package/dist/tools/settings-get-time.js.map +1 -1
- package/dist/tools/settings-set-lighting.d.ts +40 -2
- package/dist/tools/settings-set-lighting.js +33 -46
- package/dist/tools/settings-set-lighting.js.map +1 -1
- package/dist/tools/settings-set-physics.d.ts +40 -2
- package/dist/tools/settings-set-physics.js +30 -43
- package/dist/tools/settings-set-physics.js.map +1 -1
- package/dist/tools/settings-set-player.d.ts +40 -2
- package/dist/tools/settings-set-player.js +35 -53
- package/dist/tools/settings-set-player.js.map +1 -1
- package/dist/tools/settings-set-quality-level.d.ts +40 -2
- package/dist/tools/settings-set-quality-level.js +25 -38
- package/dist/tools/settings-set-quality-level.js.map +1 -1
- package/dist/tools/settings-set-quality.d.ts +40 -2
- package/dist/tools/settings-set-quality.js +29 -42
- package/dist/tools/settings-set-quality.js.map +1 -1
- package/dist/tools/settings-set-time.d.ts +40 -2
- package/dist/tools/settings-set-time.js +31 -44
- package/dist/tools/settings-set-time.js.map +1 -1
- package/dist/tools/shader-get-data.d.ts +40 -2
- package/dist/tools/shader-get-data.js +20 -25
- package/dist/tools/shader-get-data.js.map +1 -1
- package/dist/tools/shader-graph-create.d.ts +40 -2
- package/dist/tools/shader-graph-create.js +23 -32
- package/dist/tools/shader-graph-create.js.map +1 -1
- package/dist/tools/shader-graph-node-add.d.ts +40 -2
- package/dist/tools/shader-graph-node-add.js +34 -43
- package/dist/tools/shader-graph-node-add.js.map +1 -1
- package/dist/tools/shader-graph-node-connect.d.ts +40 -2
- package/dist/tools/shader-graph-node-connect.js +44 -53
- package/dist/tools/shader-graph-node-connect.js.map +1 -1
- package/dist/tools/shader-graph-open.d.ts +40 -2
- package/dist/tools/shader-graph-open.js +15 -20
- package/dist/tools/shader-graph-open.js.map +1 -1
- package/dist/tools/shader-list-all.d.ts +40 -2
- package/dist/tools/shader-list-all.js +12 -17
- package/dist/tools/shader-list-all.js.map +1 -1
- package/dist/tools/skybox-get.d.ts +40 -2
- package/dist/tools/skybox-get.js +5 -10
- package/dist/tools/skybox-get.js.map +1 -1
- package/dist/tools/skybox-set.d.ts +40 -2
- package/dist/tools/skybox-set.js +16 -27
- package/dist/tools/skybox-set.js.map +1 -1
- package/dist/tools/spatial-query.d.ts +40 -2
- package/dist/tools/spatial-query.js +110 -115
- package/dist/tools/spatial-query.js.map +1 -1
- package/dist/tools/splines-add-knot.d.ts +40 -2
- package/dist/tools/splines-add-knot.js +29 -38
- package/dist/tools/splines-add-knot.js.map +1 -1
- package/dist/tools/splines-container-create.d.ts +40 -2
- package/dist/tools/splines-container-create.js +23 -32
- package/dist/tools/splines-container-create.js.map +1 -1
- package/dist/tools/splines-evaluate.d.ts +40 -2
- package/dist/tools/splines-evaluate.js +21 -26
- package/dist/tools/splines-evaluate.js.map +1 -1
- package/dist/tools/splines-get-knots.d.ts +40 -2
- package/dist/tools/splines-get-knots.js +15 -20
- package/dist/tools/splines-get-knots.js.map +1 -1
- package/dist/tools/splines-modify.d.ts +40 -2
- package/dist/tools/splines-modify.js +20 -29
- package/dist/tools/splines-modify.js.map +1 -1
- package/dist/tools/splines-set-knot.d.ts +40 -2
- package/dist/tools/splines-set-knot.js +26 -35
- package/dist/tools/splines-set-knot.js.map +1 -1
- package/dist/tools/splines-set-tangent-mode.d.ts +40 -2
- package/dist/tools/splines-set-tangent-mode.js +28 -37
- package/dist/tools/splines-set-tangent-mode.js.map +1 -1
- package/dist/tools/spriteatlas-add-packable.d.ts +40 -2
- package/dist/tools/spriteatlas-add-packable.js +22 -34
- package/dist/tools/spriteatlas-add-packable.js.map +1 -1
- package/dist/tools/spriteatlas-create.d.ts +40 -2
- package/dist/tools/spriteatlas-create.js +22 -34
- package/dist/tools/spriteatlas-create.js.map +1 -1
- package/dist/tools/spriteatlas-delete.d.ts +40 -2
- package/dist/tools/spriteatlas-delete.js +14 -26
- package/dist/tools/spriteatlas-delete.js.map +1 -1
- package/dist/tools/spriteatlas-get.d.ts +40 -2
- package/dist/tools/spriteatlas-get.js +13 -18
- package/dist/tools/spriteatlas-get.js.map +1 -1
- package/dist/tools/spriteatlas-list.d.ts +40 -2
- package/dist/tools/spriteatlas-list.js +10 -15
- package/dist/tools/spriteatlas-list.js.map +1 -1
- package/dist/tools/spriteatlas-modify.d.ts +40 -2
- package/dist/tools/spriteatlas-modify.js +36 -48
- package/dist/tools/spriteatlas-modify.js.map +1 -1
- package/dist/tools/spriteatlas-remove-packable.d.ts +40 -2
- package/dist/tools/spriteatlas-remove-packable.js +21 -33
- package/dist/tools/spriteatlas-remove-packable.js.map +1 -1
- package/dist/tools/terrain-create.d.ts +40 -2
- package/dist/tools/terrain-create.js +48 -62
- package/dist/tools/terrain-create.js.map +1 -1
- package/dist/tools/terrain-paint-layer.d.ts +40 -2
- package/dist/tools/terrain-paint-layer.js +47 -61
- package/dist/tools/terrain-paint-layer.js.map +1 -1
- package/dist/tools/terrain-place-trees.d.ts +40 -2
- package/dist/tools/terrain-place-trees.js +56 -68
- package/dist/tools/terrain-place-trees.js.map +1 -1
- package/dist/tools/terrain-set-heights.d.ts +40 -2
- package/dist/tools/terrain-set-heights.js +31 -43
- package/dist/tools/terrain-set-heights.js.map +1 -1
- package/dist/tools/terrain-set-neighbors.d.ts +40 -2
- package/dist/tools/terrain-set-neighbors.js +22 -34
- package/dist/tools/terrain-set-neighbors.js.map +1 -1
- package/dist/tools/texture-get-importer.d.ts +40 -2
- package/dist/tools/texture-get-importer.js +15 -20
- package/dist/tools/texture-get-importer.js.map +1 -1
- package/dist/tools/texture-get.d.ts +40 -2
- package/dist/tools/texture-get.js +12 -17
- package/dist/tools/texture-get.js.map +1 -1
- package/dist/tools/texture-reimport.d.ts +40 -2
- package/dist/tools/texture-reimport.js +15 -27
- package/dist/tools/texture-reimport.js.map +1 -1
- package/dist/tools/texture-set-import.d.ts +40 -2
- package/dist/tools/texture-set-import.js +32 -44
- package/dist/tools/texture-set-import.js.map +1 -1
- package/dist/tools/tilemap-box-fill.d.ts +40 -2
- package/dist/tools/tilemap-box-fill.js +20 -29
- package/dist/tools/tilemap-box-fill.js.map +1 -1
- package/dist/tools/tilemap-create-rule-tile.d.ts +40 -2
- package/dist/tools/tilemap-create-rule-tile.js +22 -31
- package/dist/tools/tilemap-create-rule-tile.js.map +1 -1
- package/dist/tools/tilemap-create-tile-asset.d.ts +40 -2
- package/dist/tools/tilemap-create-tile-asset.js +21 -30
- package/dist/tools/tilemap-create-tile-asset.js.map +1 -1
- package/dist/tools/tilemap-create.d.ts +40 -2
- package/dist/tools/tilemap-create.js +17 -26
- package/dist/tools/tilemap-create.js.map +1 -1
- package/dist/tools/tilemap-set-tile.d.ts +40 -2
- package/dist/tools/tilemap-set-tile.js +20 -29
- package/dist/tools/tilemap-set-tile.js.map +1 -1
- package/dist/tools/timeline-clip-add.d.ts +40 -2
- package/dist/tools/timeline-clip-add.js +30 -39
- package/dist/tools/timeline-clip-add.js.map +1 -1
- package/dist/tools/timeline-create.d.ts +40 -2
- package/dist/tools/timeline-create.js +17 -26
- package/dist/tools/timeline-create.js.map +1 -1
- package/dist/tools/timeline-director-bind.d.ts +40 -2
- package/dist/tools/timeline-director-bind.js +20 -29
- package/dist/tools/timeline-director-bind.js.map +1 -1
- package/dist/tools/timeline-modify.d.ts +40 -2
- package/dist/tools/timeline-modify.js +30 -39
- package/dist/tools/timeline-modify.js.map +1 -1
- package/dist/tools/timeline-track-add.d.ts +40 -2
- package/dist/tools/timeline-track-add.js +24 -33
- package/dist/tools/timeline-track-add.js.map +1 -1
- package/dist/tools/type-schema.d.ts +40 -2
- package/dist/tools/type-schema.js +47 -52
- package/dist/tools/type-schema.js.map +1 -1
- package/dist/tools/ui-canvas-add.d.ts +40 -2
- package/dist/tools/ui-canvas-add.js +29 -41
- package/dist/tools/ui-canvas-add.js.map +1 -1
- package/dist/tools/ui-element-add.d.ts +40 -2
- package/dist/tools/ui-element-add.js +47 -56
- package/dist/tools/ui-element-add.js.map +1 -1
- package/dist/tools/ui-element-modify.d.ts +40 -2
- package/dist/tools/ui-element-modify.js +41 -50
- package/dist/tools/ui-element-modify.js.map +1 -1
- package/dist/tools/ui-layout-group-add.d.ts +40 -2
- package/dist/tools/ui-layout-group-add.js +64 -73
- package/dist/tools/ui-layout-group-add.js.map +1 -1
- package/dist/tools/validate-edit.d.ts +40 -2
- package/dist/tools/validate-edit.js +56 -61
- package/dist/tools/validate-edit.js.map +1 -1
- package/dist/tools/vfx-block-edit.d.ts +40 -2
- package/dist/tools/vfx-block-edit.js +32 -41
- package/dist/tools/vfx-block-edit.js.map +1 -1
- package/dist/tools/vfx-list.d.ts +40 -2
- package/dist/tools/vfx-list.js +17 -22
- package/dist/tools/vfx-list.js.map +1 -1
- package/dist/tools/vfx-open.d.ts +40 -2
- package/dist/tools/vfx-open.js +14 -19
- package/dist/tools/vfx-open.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mono's internal file-descriptor ceiling — the real trip point for the Bee
|
|
3
|
+
* build-driver fd-exhaustion hang. Mono's IOSelector refuses to register a
|
|
4
|
+
* descriptor whose number crosses this (kqueue/kevent on macOS/BSD, epoll on
|
|
5
|
+
* Linux). The OS `ulimit -n` soft limit is only a loose upper bound and is
|
|
6
|
+
* misleading for a GUI-launched Unity on macOS (it inherits `launchctl limit
|
|
7
|
+
* maxfiles`, not the shell's ulimit). Documented in the tool response via
|
|
8
|
+
* `launchContextCaveat`.
|
|
9
|
+
*/
|
|
10
|
+
export declare const FD_CEILING = 1024;
|
|
11
|
+
/**
|
|
12
|
+
* Headroom fraction (of FD_CEILING) at or below which the state is `warn`:
|
|
13
|
+
* the Editor is approaching the Mono ceiling and an agent should surface the
|
|
14
|
+
* trend so the operator can save + restart before the hang. ≥80% usage.
|
|
15
|
+
*/
|
|
16
|
+
export declare const FD_WARN_RATIO = 0.8;
|
|
17
|
+
/**
|
|
18
|
+
* Headroom fraction at or below which the state is `critical`: the next
|
|
19
|
+
* domain reload is likely to trip the Bee build-driver hang. ≥90% usage.
|
|
20
|
+
*/
|
|
21
|
+
export declare const FD_CRITICAL_RATIO = 0.9;
|
|
22
|
+
/** execFileSync timeout for the macOS `lsof` probe (ms). */
|
|
23
|
+
export declare const FD_PROBE_TIMEOUT_MS = 3000;
|
|
24
|
+
/** OS method used to count file descriptors for a PID. */
|
|
25
|
+
export type FdCountMethod = "lsof" | "proc" | "handle_count";
|
|
26
|
+
/** Successful fd-count probe. */
|
|
27
|
+
export interface FdCountOk {
|
|
28
|
+
/** The raw fd count (or Windows handle count — see `approximate`). */
|
|
29
|
+
count: number;
|
|
30
|
+
method: FdCountMethod;
|
|
31
|
+
/**
|
|
32
|
+
* `true` when the count is a Windows HandleCount approximation rather than
|
|
33
|
+
* a Unix fd count. Windows handles cover more than just fds (kernel +
|
|
34
|
+
* GDI + user objects), so the headroom math is looser there. The response
|
|
35
|
+
* flags this so an agent does not over-react to a naturally-higher number.
|
|
36
|
+
*/
|
|
37
|
+
approximate: boolean;
|
|
38
|
+
}
|
|
39
|
+
/** Failed fd-count probe. The count is unknown — callers must NOT treat
|
|
40
|
+
* this as "low pressure" (it is "unknown pressure"). */
|
|
41
|
+
export interface FdCountFailed {
|
|
42
|
+
count: null;
|
|
43
|
+
method: FdCountMethod;
|
|
44
|
+
/**
|
|
45
|
+
* Machine-readable reason for branching. Each reason is paired with the
|
|
46
|
+
* matching {@link FdCountMethod} — `lsof_failed` only comes from the macOS
|
|
47
|
+
* probe, `proc_unreadable` only from the Linux probe, and
|
|
48
|
+
* `handle_count_failed` only from the Windows probe.
|
|
49
|
+
*/
|
|
50
|
+
reason: "not_found" | "proc_unreadable" | "lsof_failed" | "handle_count_failed" | "unsupported_platform";
|
|
51
|
+
message: string;
|
|
52
|
+
}
|
|
53
|
+
export type FdCountResult = FdCountOk | FdCountFailed;
|
|
54
|
+
/** Coarse pressure state derived from `computeFdHeadroom`. */
|
|
55
|
+
export type FdPressureState = "ok" | "warn" | "critical" | "unknown";
|
|
56
|
+
/** Headroom metric against the Mono fd ceiling. */
|
|
57
|
+
export interface FdHeadroom {
|
|
58
|
+
/** Open fds / FD_CEILING, clamped to [0, 1] when count is known. */
|
|
59
|
+
pressureRatio: number;
|
|
60
|
+
/** FD_CEILING - count, clamped at 0. */
|
|
61
|
+
headroom: number;
|
|
62
|
+
/** The fixed ceiling (Mono ~1024). */
|
|
63
|
+
ceiling: number;
|
|
64
|
+
state: FdPressureState;
|
|
65
|
+
/** `false` when the underlying count was an approximation (Windows). */
|
|
66
|
+
reliable: boolean;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Injectable fd-count probe. Tests swap in a fake via the setter below so no
|
|
70
|
+
* `lsof` / `/proc` / PowerShell I/O runs in unit tests — same seam pattern as
|
|
71
|
+
* `UnityProcessScanner` / `ProcessKiller`.
|
|
72
|
+
*/
|
|
73
|
+
export interface FdProbe {
|
|
74
|
+
count(pid: number): FdCountResult;
|
|
75
|
+
}
|
|
76
|
+
/** Read the active probe. Production callers use this via `countFileDescriptors`. */
|
|
77
|
+
export declare function getFdProbe(): FdProbe;
|
|
78
|
+
/**
|
|
79
|
+
* Install a fake probe for tests. Returns a restore function that re-binds the
|
|
80
|
+
* previous probe. Production code MUST NOT call this.
|
|
81
|
+
*/
|
|
82
|
+
export declare function setFdProbeForTest(fake: FdProbe | null): () => void;
|
|
83
|
+
/**
|
|
84
|
+
* Count the open file descriptors for a live Unity PID. Never throws —
|
|
85
|
+
* failures (process gone, lsof/proc unreadable, unsupported platform) surface
|
|
86
|
+
* as `FdCountFailed`. The result's `method` records how the count was obtained
|
|
87
|
+
* so an agent can interpret the headroom math correctly (Windows
|
|
88
|
+
* `handle_count` is approximate).
|
|
89
|
+
*
|
|
90
|
+
* @param pid the live Unity PID (from `findUnityForProject`).
|
|
91
|
+
*/
|
|
92
|
+
export declare function countFileDescriptors(pid: number): FdCountResult;
|
|
93
|
+
/**
|
|
94
|
+
* Pure headroom math against the fixed Mono fd ceiling. The OS soft limit
|
|
95
|
+
* (`ulimit -n`) is intentionally NOT used — it is a loose upper bound and is
|
|
96
|
+
* misleading for GUI-launched Unity on macOS (inherits `launchctl limit
|
|
97
|
+
* maxfiles`, not the shell ulimit).
|
|
98
|
+
*
|
|
99
|
+
* `null` count (probe failed) → `state: "unknown"` with `reliable: false`. An
|
|
100
|
+
* agent must NOT treat "unknown" as "ok"; it should surface the trend (if any
|
|
101
|
+
* prior samples exist) and tell the operator the live count could not be read.
|
|
102
|
+
*/
|
|
103
|
+
export declare function computeFdHeadroom(count: number | null, approximate?: boolean): FdHeadroom;
|
|
104
|
+
/** One fd sample recorded in the session-scoped ring. */
|
|
105
|
+
export interface FdSample {
|
|
106
|
+
/** Wall-clock timestamp (ms since epoch). */
|
|
107
|
+
ts: number;
|
|
108
|
+
/** The Unity PID the sample was taken against. */
|
|
109
|
+
pid: number;
|
|
110
|
+
/** Open fd count at sample time (`null` when the probe failed). */
|
|
111
|
+
count: number | null;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Trend classification across successive fd samples. A monotonic climb across
|
|
115
|
+
* domain reloads is the leak signature — the agent should warn the operator to
|
|
116
|
+
* save + restart BEFORE the next reload trips the ceiling. Absolute count is
|
|
117
|
+
* NOT enough: a stable 600 fds is healthy; a climb 600 → 800 → 950 across
|
|
118
|
+
* three reloads is a leak in progress.
|
|
119
|
+
*/
|
|
120
|
+
export type FdTrendState = "no_history" | "stable" | "rising" | "leaking" | "unknown";
|
|
121
|
+
export interface FdTrend {
|
|
122
|
+
state: FdTrendState;
|
|
123
|
+
/**
|
|
124
|
+
* First-to-last delta in fd count (negative for a leak — the count grew).
|
|
125
|
+
* `null` when there are fewer than two samples with known counts for the
|
|
126
|
+
* same PID.
|
|
127
|
+
*/
|
|
128
|
+
delta: number | null;
|
|
129
|
+
/** Number of samples used for the trend (same-PID, known-count). */
|
|
130
|
+
sampleCount: number;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Pure trend detector over a sample list. Only considers samples with a known
|
|
134
|
+
* count for the SAME pid (a Unity restart changes the PID; the trend must not
|
|
135
|
+
* mix pre- and post-restart samples). A monotonic climb of ≥10% of the
|
|
136
|
+
* ceiling across ≥3 samples is `leaking`; a non-monotonic climb is `rising`;
|
|
137
|
+
* otherwise `stable`. Fewer than two usable samples → `no_history`.
|
|
138
|
+
*/
|
|
139
|
+
export declare function analyzeFdTrend(samples: readonly FdSample[]): FdTrend;
|
|
140
|
+
/**
|
|
141
|
+
* Caveat string surfaced in the resource_pressure response so an agent (and
|
|
142
|
+
* the operator) understand the launch-context nuance: the Mono ceiling, not
|
|
143
|
+
* the OS soft limit, is the trip point; a GUI-launched Unity inherits
|
|
144
|
+
* `launchctl limit maxfiles` (macOS) rather than the shell's ulimit.
|
|
145
|
+
*/
|
|
146
|
+
export declare const LAUNCH_CONTEXT_CAVEAT: string;
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
// M31 Plan 3 / T31.4 — Editor fd-exhaustion prediction (proactive fd-usage
|
|
2
|
+
// monitoring).
|
|
3
|
+
//
|
|
4
|
+
// Companion to `editor-process-control.ts` (the reactive kill half). Where the
|
|
5
|
+
// kill tool acts AFTER the Editor is hung, this module samples the live Unity
|
|
6
|
+
// process's file-descriptor count BEFORE exhaustion so an agent can warn the
|
|
7
|
+
// operator to save and restart while the bridge is still healthy. The bridge
|
|
8
|
+
// is the thing that dies on fd-exhaustion, so the probe MUST NOT depend on it
|
|
9
|
+
// — it runs server-side against the OS, exactly like the process scan in
|
|
10
|
+
// `running-unity.ts`.
|
|
11
|
+
//
|
|
12
|
+
// Threshold rationale (the plan's "Mono ceiling, not OS soft limit" point):
|
|
13
|
+
//
|
|
14
|
+
// Mono's IOSelector (kqueue/kevent on macOS/BSD, epoll on Linux) refuses to
|
|
15
|
+
// register a descriptor whose number crosses an internal ~1024 ceiling —
|
|
16
|
+
// that is the real trip point for the Bee build-driver hang. The OS
|
|
17
|
+
// `ulimit -n` soft limit is only a loose upper bound and is misleading on
|
|
18
|
+
// macOS: a GUI-launched Unity inherits `launchctl limit maxfiles`, not the
|
|
19
|
+
// MCP server's shell `ulimit`. So we measure headroom against the fixed
|
|
20
|
+
// Mono ceiling (FD_CEILING), not the variable OS limit.
|
|
21
|
+
//
|
|
22
|
+
// Cross-platform probe:
|
|
23
|
+
// - macOS: `lsof -p <pid>` (no /proc on macOS). Bounded execFileSync
|
|
24
|
+
// timeout; line count is the fd total. Heavy — callers cache briefly.
|
|
25
|
+
// - Linux: `readdirSync(/proc/<pid>/fd).length` (no shell-out).
|
|
26
|
+
// - Windows: `Get-Process -Id <pid>.HandleCount` (approximate — Windows
|
|
27
|
+
// handle count is broader than Unix fds; the threshold differs and the
|
|
28
|
+
// result is flagged `approximate: true`).
|
|
29
|
+
import { execFileSync } from "node:child_process";
|
|
30
|
+
import { readdirSync } from "node:fs";
|
|
31
|
+
/**
|
|
32
|
+
* Mono's internal file-descriptor ceiling — the real trip point for the Bee
|
|
33
|
+
* build-driver fd-exhaustion hang. Mono's IOSelector refuses to register a
|
|
34
|
+
* descriptor whose number crosses this (kqueue/kevent on macOS/BSD, epoll on
|
|
35
|
+
* Linux). The OS `ulimit -n` soft limit is only a loose upper bound and is
|
|
36
|
+
* misleading for a GUI-launched Unity on macOS (it inherits `launchctl limit
|
|
37
|
+
* maxfiles`, not the shell's ulimit). Documented in the tool response via
|
|
38
|
+
* `launchContextCaveat`.
|
|
39
|
+
*/
|
|
40
|
+
export const FD_CEILING = 1024;
|
|
41
|
+
/**
|
|
42
|
+
* Headroom fraction (of FD_CEILING) at or below which the state is `warn`:
|
|
43
|
+
* the Editor is approaching the Mono ceiling and an agent should surface the
|
|
44
|
+
* trend so the operator can save + restart before the hang. ≥80% usage.
|
|
45
|
+
*/
|
|
46
|
+
export const FD_WARN_RATIO = 0.8;
|
|
47
|
+
/**
|
|
48
|
+
* Headroom fraction at or below which the state is `critical`: the next
|
|
49
|
+
* domain reload is likely to trip the Bee build-driver hang. ≥90% usage.
|
|
50
|
+
*/
|
|
51
|
+
export const FD_CRITICAL_RATIO = 0.9;
|
|
52
|
+
/** execFileSync timeout for the macOS `lsof` probe (ms). */
|
|
53
|
+
export const FD_PROBE_TIMEOUT_MS = 3_000;
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
// Platform-specific probe implementations.
|
|
56
|
+
// ---------------------------------------------------------------------------
|
|
57
|
+
/** macOS `lsof -p <pid>` scanner. Returns the line count (one line per fd). */
|
|
58
|
+
function probeMacos(pid) {
|
|
59
|
+
let stdout;
|
|
60
|
+
try {
|
|
61
|
+
stdout = execFileSync("lsof", ["-p", String(pid)], {
|
|
62
|
+
encoding: "utf8",
|
|
63
|
+
timeout: FD_PROBE_TIMEOUT_MS,
|
|
64
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
69
|
+
// lsof exits non-zero when the PID is gone. Treat that as not_found.
|
|
70
|
+
if (/no such file|exit code: 1/i.test(message)) {
|
|
71
|
+
return {
|
|
72
|
+
count: null,
|
|
73
|
+
method: "lsof",
|
|
74
|
+
reason: "not_found",
|
|
75
|
+
message: `lsof reported no process for PID ${pid}.`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
count: null,
|
|
80
|
+
method: "lsof",
|
|
81
|
+
reason: "lsof_failed",
|
|
82
|
+
message: `lsof failed for PID ${pid}: ${message}`,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
// `lsof -p <pid>` prints a header line ("COMMAND PID USER FD TYPE ...") then
|
|
86
|
+
// one line per open fd. Subtract the header. An empty/blank stdout means the
|
|
87
|
+
// PID vanished between the spawn and the read — treat as not_found.
|
|
88
|
+
const lines = stdout.split(/\r?\n/).filter((l) => l.length > 0);
|
|
89
|
+
if (lines.length === 0) {
|
|
90
|
+
return {
|
|
91
|
+
count: null,
|
|
92
|
+
method: "lsof",
|
|
93
|
+
reason: "not_found",
|
|
94
|
+
message: `lsof produced no output for PID ${pid}.`,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
// Header is the first line; its FD column says "FD" literally. The rest are
|
|
98
|
+
// per-fd rows. Subtract 1 for the header.
|
|
99
|
+
return {
|
|
100
|
+
count: Math.max(0, lines.length - 1),
|
|
101
|
+
method: "lsof",
|
|
102
|
+
approximate: false,
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
/** Linux `/proc/<pid>/fd` directory entry count (no shell-out). */
|
|
106
|
+
function probeLinux(pid) {
|
|
107
|
+
let entries;
|
|
108
|
+
try {
|
|
109
|
+
entries = readdirSync(`/proc/${pid}/fd`);
|
|
110
|
+
}
|
|
111
|
+
catch (err) {
|
|
112
|
+
const code = err.code;
|
|
113
|
+
if (code === "ENOENT") {
|
|
114
|
+
return {
|
|
115
|
+
count: null,
|
|
116
|
+
method: "proc",
|
|
117
|
+
reason: "not_found",
|
|
118
|
+
message: `No /proc/${pid}/fd (process gone).`,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
return {
|
|
122
|
+
count: null,
|
|
123
|
+
method: "proc",
|
|
124
|
+
reason: "proc_unreadable",
|
|
125
|
+
message: `Could not read /proc/${pid}/fd: ${err instanceof Error ? err.message : String(err)}`,
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
// `/proc/<pid>/fd` contains one entry per open fd (symbolic links). readdir
|
|
129
|
+
// returns the names — the count is the length.
|
|
130
|
+
return {
|
|
131
|
+
count: entries.length,
|
|
132
|
+
method: "proc",
|
|
133
|
+
approximate: false,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/** Windows `Get-Process -Id <pid>.HandleCount` (approximate). */
|
|
137
|
+
function probeWindows(pid) {
|
|
138
|
+
let stdout;
|
|
139
|
+
try {
|
|
140
|
+
stdout = execFileSync("powershell", [
|
|
141
|
+
"-NoProfile",
|
|
142
|
+
"-NonInteractive",
|
|
143
|
+
"-Command",
|
|
144
|
+
`(Get-Process -Id ${pid} -ErrorAction SilentlyContinue).HandleCount`,
|
|
145
|
+
], {
|
|
146
|
+
encoding: "utf8",
|
|
147
|
+
windowsHide: true,
|
|
148
|
+
timeout: FD_PROBE_TIMEOUT_MS,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
catch (err) {
|
|
152
|
+
return {
|
|
153
|
+
count: null,
|
|
154
|
+
method: "handle_count",
|
|
155
|
+
reason: "handle_count_failed",
|
|
156
|
+
message: `PowerShell handle-count probe failed for PID ${pid}: ${err instanceof Error ? err.message : String(err)}`,
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
const trimmed = stdout.trim();
|
|
160
|
+
if (trimmed.length === 0) {
|
|
161
|
+
return {
|
|
162
|
+
count: null,
|
|
163
|
+
method: "handle_count",
|
|
164
|
+
reason: "not_found",
|
|
165
|
+
message: `Get-Process reported no process for PID ${pid}.`,
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
const parsed = Number.parseInt(trimmed, 10);
|
|
169
|
+
if (!Number.isFinite(parsed) || parsed < 0) {
|
|
170
|
+
return {
|
|
171
|
+
count: null,
|
|
172
|
+
method: "handle_count",
|
|
173
|
+
reason: "handle_count_failed",
|
|
174
|
+
message: `Unparseable HandleCount '${trimmed}' for PID ${pid}.`,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
return {
|
|
178
|
+
count: parsed,
|
|
179
|
+
method: "handle_count",
|
|
180
|
+
// Windows HandleCount includes kernel + GDI + user handles — broader
|
|
181
|
+
// than Unix fds. The headroom math still applies as a loose signal.
|
|
182
|
+
approximate: true,
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const realProbe = {
|
|
186
|
+
count(pid) {
|
|
187
|
+
if (!Number.isInteger(pid) || pid <= 0) {
|
|
188
|
+
return {
|
|
189
|
+
count: null,
|
|
190
|
+
method: "lsof",
|
|
191
|
+
reason: "not_found",
|
|
192
|
+
message: `Invalid PID ${pid}.`,
|
|
193
|
+
};
|
|
194
|
+
}
|
|
195
|
+
if (process.platform === "darwin")
|
|
196
|
+
return probeMacos(pid);
|
|
197
|
+
if (process.platform === "linux")
|
|
198
|
+
return probeLinux(pid);
|
|
199
|
+
if (process.platform === "win32")
|
|
200
|
+
return probeWindows(pid);
|
|
201
|
+
return {
|
|
202
|
+
count: null,
|
|
203
|
+
method: "lsof",
|
|
204
|
+
reason: "unsupported_platform",
|
|
205
|
+
message: `fd-count probe is not implemented for platform '${process.platform}'.`,
|
|
206
|
+
};
|
|
207
|
+
},
|
|
208
|
+
};
|
|
209
|
+
// Mutable binding so tests can swap in a fake probe.
|
|
210
|
+
let currentProbe = realProbe;
|
|
211
|
+
/** Read the active probe. Production callers use this via `countFileDescriptors`. */
|
|
212
|
+
export function getFdProbe() {
|
|
213
|
+
return currentProbe;
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* Install a fake probe for tests. Returns a restore function that re-binds the
|
|
217
|
+
* previous probe. Production code MUST NOT call this.
|
|
218
|
+
*/
|
|
219
|
+
export function setFdProbeForTest(fake) {
|
|
220
|
+
const prev = currentProbe;
|
|
221
|
+
currentProbe = fake ?? realProbe;
|
|
222
|
+
return () => {
|
|
223
|
+
currentProbe = prev;
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Count the open file descriptors for a live Unity PID. Never throws —
|
|
228
|
+
* failures (process gone, lsof/proc unreadable, unsupported platform) surface
|
|
229
|
+
* as `FdCountFailed`. The result's `method` records how the count was obtained
|
|
230
|
+
* so an agent can interpret the headroom math correctly (Windows
|
|
231
|
+
* `handle_count` is approximate).
|
|
232
|
+
*
|
|
233
|
+
* @param pid the live Unity PID (from `findUnityForProject`).
|
|
234
|
+
*/
|
|
235
|
+
export function countFileDescriptors(pid) {
|
|
236
|
+
return currentProbe.count(pid);
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Pure headroom math against the fixed Mono fd ceiling. The OS soft limit
|
|
240
|
+
* (`ulimit -n`) is intentionally NOT used — it is a loose upper bound and is
|
|
241
|
+
* misleading for GUI-launched Unity on macOS (inherits `launchctl limit
|
|
242
|
+
* maxfiles`, not the shell ulimit).
|
|
243
|
+
*
|
|
244
|
+
* `null` count (probe failed) → `state: "unknown"` with `reliable: false`. An
|
|
245
|
+
* agent must NOT treat "unknown" as "ok"; it should surface the trend (if any
|
|
246
|
+
* prior samples exist) and tell the operator the live count could not be read.
|
|
247
|
+
*/
|
|
248
|
+
export function computeFdHeadroom(count, approximate = false) {
|
|
249
|
+
if (count === null || !Number.isFinite(count)) {
|
|
250
|
+
return {
|
|
251
|
+
pressureRatio: 0,
|
|
252
|
+
headroom: FD_CEILING,
|
|
253
|
+
ceiling: FD_CEILING,
|
|
254
|
+
state: "unknown",
|
|
255
|
+
reliable: false,
|
|
256
|
+
};
|
|
257
|
+
}
|
|
258
|
+
const clamped = Math.max(0, count);
|
|
259
|
+
const pressureRatio = Math.min(1, clamped / FD_CEILING);
|
|
260
|
+
const headroom = Math.max(0, FD_CEILING - clamped);
|
|
261
|
+
let state;
|
|
262
|
+
if (approximate) {
|
|
263
|
+
// Windows HandleCount is naturally higher than Unix fds — only flag
|
|
264
|
+
// critical, never warn, so an agent does not over-react.
|
|
265
|
+
state = pressureRatio >= FD_CRITICAL_RATIO ? "critical" : "ok";
|
|
266
|
+
}
|
|
267
|
+
else if (pressureRatio >= FD_CRITICAL_RATIO) {
|
|
268
|
+
state = "critical";
|
|
269
|
+
}
|
|
270
|
+
else if (pressureRatio >= FD_WARN_RATIO) {
|
|
271
|
+
state = "warn";
|
|
272
|
+
}
|
|
273
|
+
else {
|
|
274
|
+
state = "ok";
|
|
275
|
+
}
|
|
276
|
+
return {
|
|
277
|
+
pressureRatio,
|
|
278
|
+
headroom,
|
|
279
|
+
ceiling: FD_CEILING,
|
|
280
|
+
state,
|
|
281
|
+
reliable: !approximate,
|
|
282
|
+
};
|
|
283
|
+
}
|
|
284
|
+
/**
|
|
285
|
+
* Pure trend detector over a sample list. Only considers samples with a known
|
|
286
|
+
* count for the SAME pid (a Unity restart changes the PID; the trend must not
|
|
287
|
+
* mix pre- and post-restart samples). A monotonic climb of ≥10% of the
|
|
288
|
+
* ceiling across ≥3 samples is `leaking`; a non-monotonic climb is `rising`;
|
|
289
|
+
* otherwise `stable`. Fewer than two usable samples → `no_history`.
|
|
290
|
+
*/
|
|
291
|
+
export function analyzeFdTrend(samples) {
|
|
292
|
+
if (samples.length === 0) {
|
|
293
|
+
return { state: "no_history", delta: null, sampleCount: 0 };
|
|
294
|
+
}
|
|
295
|
+
// Take the tail for the most-recent PID (a restart changes the PID).
|
|
296
|
+
const lastPid = samples[samples.length - 1].pid;
|
|
297
|
+
const usable = samples.filter((s) => s.pid === lastPid && s.count !== null && Number.isFinite(s.count));
|
|
298
|
+
if (usable.length < 2) {
|
|
299
|
+
return { state: "no_history", delta: null, sampleCount: usable.length };
|
|
300
|
+
}
|
|
301
|
+
const first = usable[0].count;
|
|
302
|
+
const last = usable[usable.length - 1].count;
|
|
303
|
+
const delta = last - first;
|
|
304
|
+
// `rising` = strictly non-decreasing across all usable samples (each step
|
|
305
|
+
// ≥ the previous). `leaking` = rising AND the total climb is ≥10% of the
|
|
306
|
+
// Mono ceiling (a meaningful leak, not measurement noise).
|
|
307
|
+
let monotonic = true;
|
|
308
|
+
for (let i = 1; i < usable.length; i++) {
|
|
309
|
+
if (usable[i].count < usable[i - 1].count) {
|
|
310
|
+
monotonic = false;
|
|
311
|
+
break;
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
if (monotonic && delta >= FD_CEILING * 0.1) {
|
|
315
|
+
return { state: "leaking", delta, sampleCount: usable.length };
|
|
316
|
+
}
|
|
317
|
+
if (delta > 0) {
|
|
318
|
+
return { state: "rising", delta, sampleCount: usable.length };
|
|
319
|
+
}
|
|
320
|
+
return { state: "stable", delta, sampleCount: usable.length };
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Caveat string surfaced in the resource_pressure response so an agent (and
|
|
324
|
+
* the operator) understand the launch-context nuance: the Mono ceiling, not
|
|
325
|
+
* the OS soft limit, is the trip point; a GUI-launched Unity inherits
|
|
326
|
+
* `launchctl limit maxfiles` (macOS) rather than the shell's ulimit.
|
|
327
|
+
*/
|
|
328
|
+
export const LAUNCH_CONTEXT_CAVEAT = "Headroom is measured against Mono's internal ~1024 file-descriptor ceiling " +
|
|
329
|
+
"(the real trip point for the Bee build-driver hang), NOT the OS soft limit " +
|
|
330
|
+
"(ulimit -n / launchctl limit maxfiles). A GUI-launched Unity inherits the " +
|
|
331
|
+
"desktop environment's file limit, not the MCP server's shell limit, so the " +
|
|
332
|
+
"OS soft limit is only a loose upper bound.";
|
|
333
|
+
//# sourceMappingURL=process-diagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-diagnostics.js","sourceRoot":"","sources":["../src/process-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,3 +8,14 @@ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
|
8
8
|
* are preserved verbatim, including `undefined`/`null`.
|
|
9
9
|
*/
|
|
10
10
|
export declare function withSchemaDefaults(tool: Tool, args: Record<string, unknown>): Record<string, unknown>;
|
|
11
|
+
/**
|
|
12
|
+
* M15 — validate that every field in the tool's `inputSchema.required` array is
|
|
13
|
+
* present (and not `undefined`/`null`) in `args`. The MCP SDK does not enforce
|
|
14
|
+
* `required`, so without this a missing required argument flows downstream as
|
|
15
|
+
* the literal `undefined` (e.g. `regression_check` without `baseline_path`
|
|
16
|
+
* spawns Unity with `--baseline-path undefined`).
|
|
17
|
+
*
|
|
18
|
+
* @returns the list of missing required field names (empty when all present).
|
|
19
|
+
* The caller decides how to surface the error.
|
|
20
|
+
*/
|
|
21
|
+
export declare function missingRequiredArgs(tool: Tool, args: Record<string, unknown>): string[];
|
package/dist/schema-defaults.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Schema-default injection.
|
|
1
|
+
// Schema-default injection + required-argument validation.
|
|
2
2
|
//
|
|
3
3
|
// MCP JSON-Schema documents advertise per-property `default` values (e.g.
|
|
4
4
|
// `run_tests` documents `timeout_ms` default 60000). Those defaults are advisory:
|
|
@@ -13,6 +13,13 @@
|
|
|
13
13
|
// any missing top-level argument whose property declares a scalar `default`
|
|
14
14
|
// before dispatching. This keeps client-supplied values authoritative and only
|
|
15
15
|
// ever adds missing fields.
|
|
16
|
+
//
|
|
17
|
+
// M15 — the MCP SDK does NOT validate `inputSchema.required`: an agent can call
|
|
18
|
+
// `regression_check` without `baseline_path` (declared required) and the value
|
|
19
|
+
// reaches the bridge / batch spawn as the literal `undefined`, e.g. Unity is
|
|
20
|
+
// spawned with `--baseline-path undefined`. validateRequiredArgs closes that
|
|
21
|
+
// gap by checking the schema's `required` array up front and returning a stable
|
|
22
|
+
// `missing_required_argument` error listing every missing field.
|
|
16
23
|
function isScalarDefault(value) {
|
|
17
24
|
return (typeof value === "number" ||
|
|
18
25
|
typeof value === "boolean" ||
|
|
@@ -40,4 +47,28 @@ export function withSchemaDefaults(tool, args) {
|
|
|
40
47
|
}
|
|
41
48
|
return out;
|
|
42
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* M15 — validate that every field in the tool's `inputSchema.required` array is
|
|
52
|
+
* present (and not `undefined`/`null`) in `args`. The MCP SDK does not enforce
|
|
53
|
+
* `required`, so without this a missing required argument flows downstream as
|
|
54
|
+
* the literal `undefined` (e.g. `regression_check` without `baseline_path`
|
|
55
|
+
* spawns Unity with `--baseline-path undefined`).
|
|
56
|
+
*
|
|
57
|
+
* @returns the list of missing required field names (empty when all present).
|
|
58
|
+
* The caller decides how to surface the error.
|
|
59
|
+
*/
|
|
60
|
+
export function missingRequiredArgs(tool, args) {
|
|
61
|
+
const required = tool.inputSchema?.required;
|
|
62
|
+
if (!Array.isArray(required) || required.length === 0)
|
|
63
|
+
return [];
|
|
64
|
+
const missing = [];
|
|
65
|
+
for (const field of required) {
|
|
66
|
+
if (typeof field !== "string")
|
|
67
|
+
continue;
|
|
68
|
+
const v = args[field];
|
|
69
|
+
if (v === undefined || v === null)
|
|
70
|
+
missing.push(field);
|
|
71
|
+
}
|
|
72
|
+
return missing;
|
|
73
|
+
}
|
|
43
74
|
//# sourceMappingURL=schema-defaults.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-defaults.js","sourceRoot":"","sources":["../src/schema-defaults.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"schema-defaults.js","sourceRoot":"","sources":["../src/schema-defaults.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,EAAE;AACF,0EAA0E;AAC1E,kFAAkF;AAClF,8EAA8E;AAC9E,8EAA8E;AAC9E,0EAA0E;AAC1E,0EAA0E;AAC1E,oEAAoE;AACpE,6CAA6C;AAC7C,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,+EAA+E;AAC/E,4BAA4B;AAC5B,EAAE;AACF,gFAAgF;AAChF,+EAA+E;AAC/E,6EAA6E;AAC7E,6EAA6E;AAC7E,gFAAgF;AAChF,iEAAiE;AAYjE,SAAS,eAAe,CAAC,KAAc;IACrC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS;QAC1B,OAAO,KAAK,KAAK,QAAQ,CAC1B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,IAA6B;IAE7B,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,UAExB,CAAC;IACd,IAAI,CAAC,UAAU;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,CAAC;IAEpC,MAAM,GAAG,GAA4B,EAAE,GAAG,IAAI,EAAE,CAAC;IACjD,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACvD,IAAI,GAAG,IAAI,GAAG;YAAE,SAAS;QACzB,MAAM,GAAG,GAAG,MAAM,EAAE,OAAO,CAAC;QAC5B,IAAI,eAAe,CAAC,GAAG,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;IAC3C,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAU,EACV,IAA6B;IAE7B,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IACjE,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ;YAAE,SAAS;QACxC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -51,8 +51,13 @@ export function buildServerInstructions() {
|
|
|
51
51
|
"`unity_open_mcp_*` tools route through the live bridge (or fall back to a",
|
|
52
52
|
"headless batch Unity / offline disk parsers); `unity_senses_*` tools are",
|
|
53
53
|
"live-only and never batch. Call `unity_open_mcp_capabilities` first to",
|
|
54
|
-
"learn the full surface, then
|
|
55
|
-
"
|
|
54
|
+
"learn the full surface, then activate the tools you need. Prefer the",
|
|
55
|
+
"intent path `unity_open_mcp_manage_tools(action=\"activate_for\",",
|
|
56
|
+
"intent=\"…\")` over hand-picking group ids — state what you are about to",
|
|
57
|
+
"do and the server brings the right groups online in one call (use",
|
|
58
|
+
"action=\"suggest\" with the same intent/tags to preview without changing",
|
|
59
|
+
"state). `action=\"list_groups\"` lists every group with its active flag,",
|
|
60
|
+
"compiled-state availability, and tool roster.",
|
|
56
61
|
"",
|
|
57
62
|
"PAYLOAD SIZING & PAGING (avoid flooding context)",
|
|
58
63
|
"- The heavy tools (`read_asset`, `search_assets`, `scene_get_data`,",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,8EAA8E;AAC9E,gDAAgD;AAChD,EAAE;AACF,6EAA6E;AAC7E,6EAA6E;AAC7E,uEAAuE;AACvE,wEAAwE;AACxE,2EAA2E;AAC3E,yEAAyE;AACzE,6EAA6E;AAC7E,sEAAsE;AACtE,EAAE;AACF,sEAAsE;AACtE,8EAA8E;AAC9E,+EAA+E;AAC/E,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,4DAA4D;AAE5D,6EAA6E;AAC7E,wEAAwE;AACxE,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,+DAA+D;AAC/D,MAAM,2BAA2B,GAAa;IAC5C,kBAAkB,EAAE,uBAAuB;IAC3C,oBAAoB,EAAE,qBAAqB;IAC3C,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,oBAAoB;IACpB,gBAAgB;IAChB,qBAAqB;IACrB,aAAa;IACb,SAAS;CACV,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,oEAAoE;QACpE,2EAA2E;QAC3E,0EAA0E;QAC1E,wEAAwE;QACxE,
|
|
1
|
+
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../src/server-instructions.ts"],"names":[],"mappings":"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"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
|
+
/**
|
|
3
|
+
* Resolve env for the MCP server. UNITY_PROJECT_PATH is mandatory. The port
|
|
4
|
+
* uses M13 T4.3 instance discovery:
|
|
5
|
+
* 1. UNITY_OPEN_MCP_BRIDGE_PORT env var (override wins; users who pin a
|
|
6
|
+
* port keep working as before)
|
|
7
|
+
* 2. ~/.unity-open-mcp/instances/<hash>.json lock file (when its pid is alive)
|
|
8
|
+
* 3. deterministic hash of the project path (20000 + sha256 % 10000)
|
|
9
|
+
* The resolved port is logged so users can see which bridge was picked.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getEnv(): {
|
|
12
|
+
projectPath: string;
|
|
13
|
+
port: number;
|
|
14
|
+
authToken?: string;
|
|
15
|
+
envPort?: number;
|
|
16
|
+
};
|
|
17
|
+
export declare function createServer(projectPath: string, port: number, authToken?: string, envPort?: number): Server;
|