unity-open-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +145 -0
- package/dist/batch-spawn.d.ts +33 -0
- package/dist/batch-spawn.js +329 -0
- package/dist/batch-spawn.js.map +1 -0
- package/dist/capabilities/build-capabilities.d.ts +155 -0
- package/dist/capabilities/build-capabilities.js +475 -0
- package/dist/capabilities/build-capabilities.js.map +1 -0
- package/dist/capabilities/list-rules.d.ts +45 -0
- package/dist/capabilities/list-rules.js +121 -0
- package/dist/capabilities/list-rules.js.map +1 -0
- package/dist/capabilities/rule-catalog.d.ts +44 -0
- package/dist/capabilities/rule-catalog.js +330 -0
- package/dist/capabilities/rule-catalog.js.map +1 -0
- package/dist/capabilities/tool-groups.d.ts +53 -0
- package/dist/capabilities/tool-groups.js +396 -0
- package/dist/capabilities/tool-groups.js.map +1 -0
- package/dist/cli/args.d.ts +36 -0
- package/dist/cli/args.js +239 -0
- package/dist/cli/args.js.map +1 -0
- package/dist/cli/cli.d.ts +23 -0
- package/dist/cli/cli.js +125 -0
- package/dist/cli/cli.js.map +1 -0
- package/dist/cli/commands.d.ts +37 -0
- package/dist/cli/commands.js +277 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/ping-poller.d.ts +81 -0
- package/dist/cli/ping-poller.js +161 -0
- package/dist/cli/ping-poller.js.map +1 -0
- package/dist/compat.d.ts +32 -0
- package/dist/compat.js +121 -0
- package/dist/compat.js.map +1 -0
- package/dist/compiler-errors.d.ts +31 -0
- package/dist/compiler-errors.js +91 -0
- package/dist/compiler-errors.js.map +1 -0
- package/dist/compressible-router.d.ts +18 -0
- package/dist/compressible-router.js +191 -0
- package/dist/compressible-router.js.map +1 -0
- package/dist/compression/asset-model.d.ts +86 -0
- package/dist/compression/asset-model.js +15 -0
- package/dist/compression/asset-model.js.map +1 -0
- package/dist/compression/compact.d.ts +153 -0
- package/dist/compression/compact.js +501 -0
- package/dist/compression/compact.js.map +1 -0
- package/dist/dialog-dismiss.d.ts +197 -0
- package/dist/dialog-dismiss.js +533 -0
- package/dist/dialog-dismiss.js.map +1 -0
- package/dist/event-stream.d.ts +60 -0
- package/dist/event-stream.js +228 -0
- package/dist/event-stream.js.map +1 -0
- package/dist/gate-error.d.ts +18 -0
- package/dist/gate-error.js +11 -0
- package/dist/gate-error.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +146 -0
- package/dist/index.js.map +1 -0
- package/dist/instance-discovery.d.ts +117 -0
- package/dist/instance-discovery.js +202 -0
- package/dist/instance-discovery.js.map +1 -0
- package/dist/live-client.d.ts +68 -0
- package/dist/live-client.js +583 -0
- package/dist/live-client.js.map +1 -0
- package/dist/offline.d.ts +75 -0
- package/dist/offline.js +1495 -0
- package/dist/offline.js.map +1 -0
- package/dist/package-version.d.ts +8 -0
- package/dist/package-version.js +41 -0
- package/dist/package-version.js.map +1 -0
- package/dist/ping-cache.d.ts +15 -0
- package/dist/ping-cache.js +10 -0
- package/dist/ping-cache.js.map +1 -0
- package/dist/project-health.d.ts +52 -0
- package/dist/project-health.js +177 -0
- package/dist/project-health.js.map +1 -0
- package/dist/resource-router.d.ts +26 -0
- package/dist/resource-router.js +143 -0
- package/dist/resource-router.js.map +1 -0
- package/dist/resources/index.d.ts +6 -0
- package/dist/resources/index.js +40 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/results.d.ts +14 -0
- package/dist/results.js +22 -0
- package/dist/results.js.map +1 -0
- package/dist/router.d.ts +5 -0
- package/dist/router.js +2 -0
- package/dist/router.js.map +1 -0
- package/dist/routers.d.ts +44 -0
- package/dist/routers.js +73 -0
- package/dist/routers.js.map +1 -0
- package/dist/schema-defaults.d.ts +10 -0
- package/dist/schema-defaults.js +43 -0
- package/dist/schema-defaults.js.map +1 -0
- package/dist/skill/client-paths.d.ts +33 -0
- package/dist/skill/client-paths.js +131 -0
- package/dist/skill/client-paths.js.map +1 -0
- package/dist/skill/generate-skill.d.ts +38 -0
- package/dist/skill/generate-skill.js +389 -0
- package/dist/skill/generate-skill.js.map +1 -0
- package/dist/tool-router.d.ts +40 -0
- package/dist/tool-router.js +778 -0
- package/dist/tool-router.js.map +1 -0
- package/dist/tool-session-state.d.ts +55 -0
- package/dist/tool-session-state.js +116 -0
- package/dist/tool-session-state.js.map +1 -0
- package/dist/tools/agent-capabilities.d.ts +2 -0
- package/dist/tools/agent-capabilities.js +24 -0
- package/dist/tools/agent-capabilities.js.map +1 -0
- package/dist/tools/animation-create.d.ts +2 -0
- package/dist/tools/animation-create.js +31 -0
- package/dist/tools/animation-create.js.map +1 -0
- package/dist/tools/animation-get-data.d.ts +2 -0
- package/dist/tools/animation-get-data.js +23 -0
- package/dist/tools/animation-get-data.js.map +1 -0
- package/dist/tools/animation-modify.d.ts +2 -0
- package/dist/tools/animation-modify.js +45 -0
- package/dist/tools/animation-modify.js.map +1 -0
- package/dist/tools/animator-create.d.ts +2 -0
- package/dist/tools/animator-create.js +31 -0
- package/dist/tools/animator-create.js.map +1 -0
- package/dist/tools/animator-get-data.d.ts +2 -0
- package/dist/tools/animator-get-data.js +23 -0
- package/dist/tools/animator-get-data.js.map +1 -0
- package/dist/tools/animator-modify.d.ts +2 -0
- package/dist/tools/animator-modify.js +51 -0
- package/dist/tools/animator-modify.js.map +1 -0
- package/dist/tools/apply-fix.d.ts +2 -0
- package/dist/tools/apply-fix.js +39 -0
- package/dist/tools/apply-fix.js.map +1 -0
- package/dist/tools/assets-copy.d.ts +2 -0
- package/dist/tools/assets-copy.js +50 -0
- package/dist/tools/assets-copy.js.map +1 -0
- package/dist/tools/assets-create-folder.d.ts +2 -0
- package/dist/tools/assets-create-folder.js +53 -0
- package/dist/tools/assets-create-folder.js.map +1 -0
- package/dist/tools/assets-delete.d.ts +2 -0
- package/dist/tools/assets-delete.js +34 -0
- package/dist/tools/assets-delete.js.map +1 -0
- package/dist/tools/assets-move.d.ts +2 -0
- package/dist/tools/assets-move.js +50 -0
- package/dist/tools/assets-move.js.map +1 -0
- package/dist/tools/assets-refresh.d.ts +2 -0
- package/dist/tools/assets-refresh.js +37 -0
- package/dist/tools/assets-refresh.js.map +1 -0
- package/dist/tools/baseline-create.d.ts +2 -0
- package/dist/tools/baseline-create.js +20 -0
- package/dist/tools/baseline-create.js.map +1 -0
- package/dist/tools/bridge-status.d.ts +2 -0
- package/dist/tools/bridge-status.js +44 -0
- package/dist/tools/bridge-status.js.map +1 -0
- package/dist/tools/build-get-active-target.d.ts +2 -0
- package/dist/tools/build-get-active-target.js +16 -0
- package/dist/tools/build-get-active-target.js.map +1 -0
- package/dist/tools/build-get-defines.d.ts +2 -0
- package/dist/tools/build-get-defines.js +16 -0
- package/dist/tools/build-get-defines.js.map +1 -0
- package/dist/tools/build-get-scenes.d.ts +2 -0
- package/dist/tools/build-get-scenes.js +16 -0
- package/dist/tools/build-get-scenes.js.map +1 -0
- package/dist/tools/build-get-targets.d.ts +2 -0
- package/dist/tools/build-get-targets.js +18 -0
- package/dist/tools/build-get-targets.js.map +1 -0
- package/dist/tools/build-set-defines.d.ts +2 -0
- package/dist/tools/build-set-defines.js +50 -0
- package/dist/tools/build-set-defines.js.map +1 -0
- package/dist/tools/build-set-scenes.d.ts +2 -0
- package/dist/tools/build-set-scenes.js +60 -0
- package/dist/tools/build-set-scenes.js.map +1 -0
- package/dist/tools/build-set-target.d.ts +2 -0
- package/dist/tools/build-set-target.js +49 -0
- package/dist/tools/build-set-target.js.map +1 -0
- package/dist/tools/build-start.d.ts +2 -0
- package/dist/tools/build-start.js +64 -0
- package/dist/tools/build-start.js.map +1 -0
- package/dist/tools/capture-inline.d.ts +2 -0
- package/dist/tools/capture-inline.js +57 -0
- package/dist/tools/capture-inline.js.map +1 -0
- package/dist/tools/checkpoint-create.d.ts +2 -0
- package/dist/tools/checkpoint-create.js +16 -0
- package/dist/tools/checkpoint-create.js.map +1 -0
- package/dist/tools/compile-check.d.ts +2 -0
- package/dist/tools/compile-check.js +26 -0
- package/dist/tools/compile-check.js.map +1 -0
- package/dist/tools/component-add.d.ts +2 -0
- package/dist/tools/component-add.js +47 -0
- package/dist/tools/component-add.js.map +1 -0
- package/dist/tools/component-destroy.d.ts +2 -0
- package/dist/tools/component-destroy.js +46 -0
- package/dist/tools/component-destroy.js.map +1 -0
- package/dist/tools/component-get.d.ts +2 -0
- package/dist/tools/component-get.js +54 -0
- package/dist/tools/component-get.js.map +1 -0
- package/dist/tools/component-list-all.d.ts +2 -0
- package/dist/tools/component-list-all.js +38 -0
- package/dist/tools/component-list-all.js.map +1 -0
- package/dist/tools/component-modify.d.ts +2 -0
- package/dist/tools/component-modify.js +80 -0
- package/dist/tools/component-modify.js.map +1 -0
- package/dist/tools/console-clear.d.ts +2 -0
- package/dist/tools/console-clear.js +19 -0
- package/dist/tools/console-clear.js.map +1 -0
- package/dist/tools/console-log.d.ts +2 -0
- package/dist/tools/console-log.js +47 -0
- package/dist/tools/console-log.js.map +1 -0
- package/dist/tools/delta.d.ts +2 -0
- package/dist/tools/delta.js +17 -0
- package/dist/tools/delta.js.map +1 -0
- package/dist/tools/editor-add-layer.d.ts +2 -0
- package/dist/tools/editor-add-layer.js +51 -0
- package/dist/tools/editor-add-layer.js.map +1 -0
- package/dist/tools/editor-add-tag.d.ts +2 -0
- package/dist/tools/editor-add-tag.js +41 -0
- package/dist/tools/editor-add-tag.js.map +1 -0
- package/dist/tools/editor-get-layers.d.ts +2 -0
- package/dist/tools/editor-get-layers.js +22 -0
- package/dist/tools/editor-get-layers.js.map +1 -0
- package/dist/tools/editor-get-tags.d.ts +2 -0
- package/dist/tools/editor-get-tags.js +19 -0
- package/dist/tools/editor-get-tags.js.map +1 -0
- package/dist/tools/editor-redo.d.ts +2 -0
- package/dist/tools/editor-redo.js +27 -0
- package/dist/tools/editor-redo.js.map +1 -0
- package/dist/tools/editor-set-state.d.ts +2 -0
- package/dist/tools/editor-set-state.js +57 -0
- package/dist/tools/editor-set-state.js.map +1 -0
- package/dist/tools/editor-status.d.ts +2 -0
- package/dist/tools/editor-status.js +17 -0
- package/dist/tools/editor-status.js.map +1 -0
- package/dist/tools/editor-undo.d.ts +2 -0
- package/dist/tools/editor-undo.js +29 -0
- package/dist/tools/editor-undo.js.map +1 -0
- package/dist/tools/execute-csharp.d.ts +2 -0
- package/dist/tools/execute-csharp.js +74 -0
- package/dist/tools/execute-csharp.js.map +1 -0
- package/dist/tools/execute-menu.d.ts +2 -0
- package/dist/tools/execute-menu.js +40 -0
- package/dist/tools/execute-menu.js.map +1 -0
- package/dist/tools/find-members.d.ts +2 -0
- package/dist/tools/find-members.js +56 -0
- package/dist/tools/find-members.js.map +1 -0
- package/dist/tools/find-references.d.ts +2 -0
- package/dist/tools/find-references.js +29 -0
- package/dist/tools/find-references.js.map +1 -0
- package/dist/tools/gameobject-create.d.ts +2 -0
- package/dist/tools/gameobject-create.js +61 -0
- package/dist/tools/gameobject-create.js.map +1 -0
- package/dist/tools/gameobject-destroy.d.ts +2 -0
- package/dist/tools/gameobject-destroy.js +38 -0
- package/dist/tools/gameobject-destroy.js.map +1 -0
- package/dist/tools/gameobject-duplicate.d.ts +2 -0
- package/dist/tools/gameobject-duplicate.js +40 -0
- package/dist/tools/gameobject-duplicate.js.map +1 -0
- package/dist/tools/gameobject-find.d.ts +2 -0
- package/dist/tools/gameobject-find.js +59 -0
- package/dist/tools/gameobject-find.js.map +1 -0
- package/dist/tools/gameobject-modify.d.ts +2 -0
- package/dist/tools/gameobject-modify.js +76 -0
- package/dist/tools/gameobject-modify.js.map +1 -0
- package/dist/tools/gameobject-set-parent.d.ts +2 -0
- package/dist/tools/gameobject-set-parent.js +55 -0
- package/dist/tools/gameobject-set-parent.js.map +1 -0
- package/dist/tools/gate-budget-estimate.d.ts +2 -0
- package/dist/tools/gate-budget-estimate.js +59 -0
- package/dist/tools/gate-budget-estimate.js.map +1 -0
- package/dist/tools/generate-skill.d.ts +2 -0
- package/dist/tools/generate-skill.js +37 -0
- package/dist/tools/generate-skill.js.map +1 -0
- package/dist/tools/impact-preview.d.ts +2 -0
- package/dist/tools/impact-preview.js +50 -0
- package/dist/tools/impact-preview.js.map +1 -0
- package/dist/tools/index.d.ts +30 -0
- package/dist/tools/index.js +576 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/inputsystem-action-add.d.ts +2 -0
- package/dist/tools/inputsystem-action-add.js +61 -0
- package/dist/tools/inputsystem-action-add.js.map +1 -0
- package/dist/tools/inputsystem-actionmap-add.d.ts +2 -0
- package/dist/tools/inputsystem-actionmap-add.js +31 -0
- package/dist/tools/inputsystem-actionmap-add.js.map +1 -0
- package/dist/tools/inputsystem-asset-create.d.ts +2 -0
- package/dist/tools/inputsystem-asset-create.js +35 -0
- package/dist/tools/inputsystem-asset-create.js.map +1 -0
- package/dist/tools/inputsystem-binding-add.d.ts +2 -0
- package/dist/tools/inputsystem-binding-add.js +48 -0
- package/dist/tools/inputsystem-binding-add.js.map +1 -0
- package/dist/tools/inputsystem-binding-composite-add.d.ts +2 -0
- package/dist/tools/inputsystem-binding-composite-add.js +51 -0
- package/dist/tools/inputsystem-binding-composite-add.js.map +1 -0
- package/dist/tools/inputsystem-controlscheme-add.d.ts +2 -0
- package/dist/tools/inputsystem-controlscheme-add.js +43 -0
- package/dist/tools/inputsystem-controlscheme-add.js.map +1 -0
- package/dist/tools/inputsystem-get.d.ts +2 -0
- package/dist/tools/inputsystem-get.js +22 -0
- package/dist/tools/inputsystem-get.js.map +1 -0
- package/dist/tools/invoke-method.d.ts +2 -0
- package/dist/tools/invoke-method.js +104 -0
- package/dist/tools/invoke-method.js.map +1 -0
- package/dist/tools/list-assets.d.ts +2 -0
- package/dist/tools/list-assets.js +30 -0
- package/dist/tools/list-assets.js.map +1 -0
- package/dist/tools/list-rules.d.ts +2 -0
- package/dist/tools/list-rules.js +27 -0
- package/dist/tools/list-rules.js.map +1 -0
- package/dist/tools/manage-tools.d.ts +2 -0
- package/dist/tools/manage-tools.js +47 -0
- package/dist/tools/manage-tools.js.map +1 -0
- package/dist/tools/material-create.d.ts +2 -0
- package/dist/tools/material-create.js +37 -0
- package/dist/tools/material-create.js.map +1 -0
- package/dist/tools/material-get-keywords.d.ts +2 -0
- package/dist/tools/material-get-keywords.js +23 -0
- package/dist/tools/material-get-keywords.js.map +1 -0
- package/dist/tools/material-get-properties.d.ts +2 -0
- package/dist/tools/material-get-properties.js +32 -0
- package/dist/tools/material-get-properties.js.map +1 -0
- package/dist/tools/material-set-keyword.d.ts +2 -0
- package/dist/tools/material-set-keyword.js +42 -0
- package/dist/tools/material-set-keyword.js.map +1 -0
- package/dist/tools/material-set-property.d.ts +2 -0
- package/dist/tools/material-set-property.js +49 -0
- package/dist/tools/material-set-property.js.map +1 -0
- package/dist/tools/material-set-shader.d.ts +2 -0
- package/dist/tools/material-set-shader.js +39 -0
- package/dist/tools/material-set-shader.js.map +1 -0
- package/dist/tools/mutation-explain.d.ts +2 -0
- package/dist/tools/mutation-explain.js +44 -0
- package/dist/tools/mutation-explain.js.map +1 -0
- package/dist/tools/navigation-agent-add.d.ts +2 -0
- package/dist/tools/navigation-agent-add.js +38 -0
- package/dist/tools/navigation-agent-add.js.map +1 -0
- package/dist/tools/navigation-agent-set-destination.d.ts +2 -0
- package/dist/tools/navigation-agent-set-destination.js +33 -0
- package/dist/tools/navigation-agent-set-destination.js.map +1 -0
- package/dist/tools/navigation-get.d.ts +2 -0
- package/dist/tools/navigation-get.js +20 -0
- package/dist/tools/navigation-get.js.map +1 -0
- package/dist/tools/navigation-link-add.d.ts +2 -0
- package/dist/tools/navigation-link-add.js +57 -0
- package/dist/tools/navigation-link-add.js.map +1 -0
- package/dist/tools/navigation-list.d.ts +2 -0
- package/dist/tools/navigation-list.js +16 -0
- package/dist/tools/navigation-list.js.map +1 -0
- package/dist/tools/navigation-modifier-add.d.ts +2 -0
- package/dist/tools/navigation-modifier-add.js +42 -0
- package/dist/tools/navigation-modifier-add.js.map +1 -0
- package/dist/tools/navigation-modifier-volume-add.d.ts +2 -0
- package/dist/tools/navigation-modifier-volume-add.js +41 -0
- package/dist/tools/navigation-modifier-volume-add.js.map +1 -0
- package/dist/tools/navigation-modify.d.ts +2 -0
- package/dist/tools/navigation-modify.js +47 -0
- package/dist/tools/navigation-modify.js.map +1 -0
- package/dist/tools/navigation-set-bake-settings.d.ts +2 -0
- package/dist/tools/navigation-set-bake-settings.js +42 -0
- package/dist/tools/navigation-set-bake-settings.js.map +1 -0
- package/dist/tools/navigation-surface-add.d.ts +2 -0
- package/dist/tools/navigation-surface-add.js +62 -0
- package/dist/tools/navigation-surface-add.js.map +1 -0
- package/dist/tools/navigation-surface-bake.d.ts +2 -0
- package/dist/tools/navigation-surface-bake.js +30 -0
- package/dist/tools/navigation-surface-bake.js.map +1 -0
- package/dist/tools/object-get-data.d.ts +2 -0
- package/dist/tools/object-get-data.js +59 -0
- package/dist/tools/object-get-data.js.map +1 -0
- package/dist/tools/object-modify.d.ts +2 -0
- package/dist/tools/object-modify.js +73 -0
- package/dist/tools/object-modify.js.map +1 -0
- package/dist/tools/package-add.d.ts +2 -0
- package/dist/tools/package-add.js +42 -0
- package/dist/tools/package-add.js.map +1 -0
- package/dist/tools/package-check.d.ts +2 -0
- package/dist/tools/package-check.js +27 -0
- package/dist/tools/package-check.js.map +1 -0
- package/dist/tools/package-get-dependencies.d.ts +2 -0
- package/dist/tools/package-get-dependencies.js +17 -0
- package/dist/tools/package-get-dependencies.js.map +1 -0
- package/dist/tools/package-get-info.d.ts +2 -0
- package/dist/tools/package-get-info.js +33 -0
- package/dist/tools/package-get-info.js.map +1 -0
- package/dist/tools/package-list.d.ts +2 -0
- package/dist/tools/package-list.js +57 -0
- package/dist/tools/package-list.js.map +1 -0
- package/dist/tools/package-remove.d.ts +2 -0
- package/dist/tools/package-remove.js +40 -0
- package/dist/tools/package-remove.js.map +1 -0
- package/dist/tools/package-search.d.ts +2 -0
- package/dist/tools/package-search.js +42 -0
- package/dist/tools/package-search.js.map +1 -0
- package/dist/tools/particle-system-get.d.ts +2 -0
- package/dist/tools/particle-system-get.js +42 -0
- package/dist/tools/particle-system-get.js.map +1 -0
- package/dist/tools/particle-system-modify.d.ts +2 -0
- package/dist/tools/particle-system-modify.js +73 -0
- package/dist/tools/particle-system-modify.js.map +1 -0
- package/dist/tools/ping.d.ts +2 -0
- package/dist/tools/ping.js +10 -0
- package/dist/tools/ping.js.map +1 -0
- package/dist/tools/prefab-apply.d.ts +2 -0
- package/dist/tools/prefab-apply.js +39 -0
- package/dist/tools/prefab-apply.js.map +1 -0
- package/dist/tools/prefab-close.d.ts +2 -0
- package/dist/tools/prefab-close.js +29 -0
- package/dist/tools/prefab-close.js.map +1 -0
- package/dist/tools/prefab-create.d.ts +2 -0
- package/dist/tools/prefab-create.js +52 -0
- package/dist/tools/prefab-create.js.map +1 -0
- package/dist/tools/prefab-get-overrides.d.ts +2 -0
- package/dist/tools/prefab-get-overrides.js +27 -0
- package/dist/tools/prefab-get-overrides.js.map +1 -0
- package/dist/tools/prefab-instantiate.d.ts +2 -0
- package/dist/tools/prefab-instantiate.js +52 -0
- package/dist/tools/prefab-instantiate.js.map +1 -0
- package/dist/tools/prefab-open.d.ts +2 -0
- package/dist/tools/prefab-open.js +30 -0
- package/dist/tools/prefab-open.js.map +1 -0
- package/dist/tools/prefab-revert.d.ts +2 -0
- package/dist/tools/prefab-revert.js +37 -0
- package/dist/tools/prefab-revert.js.map +1 -0
- package/dist/tools/prefab-save.d.ts +2 -0
- package/dist/tools/prefab-save.js +24 -0
- package/dist/tools/prefab-save.js.map +1 -0
- package/dist/tools/prefab-status.d.ts +2 -0
- package/dist/tools/prefab-status.js +29 -0
- package/dist/tools/prefab-status.js.map +1 -0
- package/dist/tools/prefab-unpack.d.ts +2 -0
- package/dist/tools/prefab-unpack.js +43 -0
- package/dist/tools/prefab-unpack.js.map +1 -0
- package/dist/tools/probuilder-create-shape.d.ts +2 -0
- package/dist/tools/probuilder-create-shape.js +40 -0
- package/dist/tools/probuilder-create-shape.js.map +1 -0
- package/dist/tools/probuilder-delete-faces.d.ts +2 -0
- package/dist/tools/probuilder-delete-faces.js +47 -0
- package/dist/tools/probuilder-delete-faces.js.map +1 -0
- package/dist/tools/probuilder-extrude.d.ts +2 -0
- package/dist/tools/probuilder-extrude.js +58 -0
- package/dist/tools/probuilder-extrude.js.map +1 -0
- package/dist/tools/probuilder-get-mesh-info.d.ts +2 -0
- package/dist/tools/probuilder-get-mesh-info.js +21 -0
- package/dist/tools/probuilder-get-mesh-info.js.map +1 -0
- package/dist/tools/probuilder-set-face-material.d.ts +2 -0
- package/dist/tools/probuilder-set-face-material.js +53 -0
- package/dist/tools/probuilder-set-face-material.js.map +1 -0
- package/dist/tools/profiler-capture.d.ts +2 -0
- package/dist/tools/profiler-capture.js +84 -0
- package/dist/tools/profiler-capture.js.map +1 -0
- package/dist/tools/profiler-clear-data.d.ts +2 -0
- package/dist/tools/profiler-clear-data.js +20 -0
- package/dist/tools/profiler-clear-data.js.map +1 -0
- package/dist/tools/profiler-enable-module.d.ts +2 -0
- package/dist/tools/profiler-enable-module.js +32 -0
- package/dist/tools/profiler-enable-module.js.map +1 -0
- package/dist/tools/profiler-get-config.d.ts +2 -0
- package/dist/tools/profiler-get-config.js +21 -0
- package/dist/tools/profiler-get-config.js.map +1 -0
- package/dist/tools/profiler-get-script-stats.d.ts +2 -0
- package/dist/tools/profiler-get-script-stats.js +20 -0
- package/dist/tools/profiler-get-script-stats.js.map +1 -0
- package/dist/tools/profiler-get-status.d.ts +2 -0
- package/dist/tools/profiler-get-status.js +22 -0
- package/dist/tools/profiler-get-status.js.map +1 -0
- package/dist/tools/profiler-list-modules.d.ts +2 -0
- package/dist/tools/profiler-list-modules.js +20 -0
- package/dist/tools/profiler-list-modules.js.map +1 -0
- package/dist/tools/profiler-load-data.d.ts +2 -0
- package/dist/tools/profiler-load-data.js +38 -0
- package/dist/tools/profiler-load-data.js.map +1 -0
- package/dist/tools/profiler-memory.d.ts +2 -0
- package/dist/tools/profiler-memory.js +21 -0
- package/dist/tools/profiler-memory.js.map +1 -0
- package/dist/tools/profiler-rendering.d.ts +2 -0
- package/dist/tools/profiler-rendering.js +14 -0
- package/dist/tools/profiler-rendering.js.map +1 -0
- package/dist/tools/profiler-save-data.d.ts +2 -0
- package/dist/tools/profiler-save-data.js +38 -0
- package/dist/tools/profiler-save-data.js.map +1 -0
- package/dist/tools/profiler-set-config.d.ts +2 -0
- package/dist/tools/profiler-set-config.js +72 -0
- package/dist/tools/profiler-set-config.js.map +1 -0
- package/dist/tools/profiler-start.d.ts +2 -0
- package/dist/tools/profiler-start.js +31 -0
- package/dist/tools/profiler-start.js.map +1 -0
- package/dist/tools/profiler-stop.d.ts +2 -0
- package/dist/tools/profiler-stop.js +20 -0
- package/dist/tools/profiler-stop.js.map +1 -0
- package/dist/tools/pull-events.d.ts +2 -0
- package/dist/tools/pull-events.js +43 -0
- package/dist/tools/pull-events.js.map +1 -0
- package/dist/tools/read-asset.d.ts +2 -0
- package/dist/tools/read-asset.js +62 -0
- package/dist/tools/read-asset.js.map +1 -0
- package/dist/tools/read-compile-errors.d.ts +2 -0
- package/dist/tools/read-compile-errors.js +59 -0
- package/dist/tools/read-compile-errors.js.map +1 -0
- package/dist/tools/read-console.d.ts +2 -0
- package/dist/tools/read-console.js +57 -0
- package/dist/tools/read-console.js.map +1 -0
- package/dist/tools/regression-check.d.ts +2 -0
- package/dist/tools/regression-check.js +36 -0
- package/dist/tools/regression-check.js.map +1 -0
- package/dist/tools/reserialize.d.ts +2 -0
- package/dist/tools/reserialize.js +31 -0
- package/dist/tools/reserialize.js.map +1 -0
- package/dist/tools/run-tests.d.ts +2 -0
- package/dist/tools/run-tests.js +49 -0
- package/dist/tools/run-tests.js.map +1 -0
- package/dist/tools/scan-all.d.ts +2 -0
- package/dist/tools/scan-all.js +25 -0
- package/dist/tools/scan-all.js.map +1 -0
- package/dist/tools/scan-paths.d.ts +2 -0
- package/dist/tools/scan-paths.js +40 -0
- package/dist/tools/scan-paths.js.map +1 -0
- package/dist/tools/scene-create.d.ts +2 -0
- package/dist/tools/scene-create.js +47 -0
- package/dist/tools/scene-create.js.map +1 -0
- package/dist/tools/scene-focus.d.ts +2 -0
- package/dist/tools/scene-focus.js +55 -0
- package/dist/tools/scene-focus.js.map +1 -0
- package/dist/tools/scene-get-data.d.ts +2 -0
- package/dist/tools/scene-get-data.js +52 -0
- package/dist/tools/scene-get-data.js.map +1 -0
- package/dist/tools/scene-get-dirty-summary.d.ts +2 -0
- package/dist/tools/scene-get-dirty-summary.js +17 -0
- package/dist/tools/scene-get-dirty-summary.js.map +1 -0
- package/dist/tools/scene-list-opened.d.ts +2 -0
- package/dist/tools/scene-list-opened.js +16 -0
- package/dist/tools/scene-list-opened.js.map +1 -0
- package/dist/tools/scene-open.d.ts +2 -0
- package/dist/tools/scene-open.js +48 -0
- package/dist/tools/scene-open.js.map +1 -0
- package/dist/tools/scene-save.d.ts +2 -0
- package/dist/tools/scene-save.js +38 -0
- package/dist/tools/scene-save.js.map +1 -0
- package/dist/tools/scene-set-active.d.ts +2 -0
- package/dist/tools/scene-set-active.js +33 -0
- package/dist/tools/scene-set-active.js.map +1 -0
- package/dist/tools/scene-unload.d.ts +2 -0
- package/dist/tools/scene-unload.js +33 -0
- package/dist/tools/scene-unload.js.map +1 -0
- package/dist/tools/screenshot-camera.d.ts +2 -0
- package/dist/tools/screenshot-camera.js +59 -0
- package/dist/tools/screenshot-camera.js.map +1 -0
- package/dist/tools/screenshot-window.d.ts +2 -0
- package/dist/tools/screenshot-window.js +54 -0
- package/dist/tools/screenshot-window.js.map +1 -0
- package/dist/tools/screenshot.d.ts +2 -0
- package/dist/tools/screenshot.js +47 -0
- package/dist/tools/screenshot.js.map +1 -0
- package/dist/tools/script-delete.d.ts +2 -0
- package/dist/tools/script-delete.js +37 -0
- package/dist/tools/script-delete.js.map +1 -0
- package/dist/tools/script-read.d.ts +2 -0
- package/dist/tools/script-read.js +46 -0
- package/dist/tools/script-read.js.map +1 -0
- package/dist/tools/script-write.d.ts +2 -0
- package/dist/tools/script-write.js +56 -0
- package/dist/tools/script-write.js.map +1 -0
- package/dist/tools/search-assets.d.ts +2 -0
- package/dist/tools/search-assets.js +49 -0
- package/dist/tools/search-assets.js.map +1 -0
- package/dist/tools/selection-get.d.ts +2 -0
- package/dist/tools/selection-get.js +28 -0
- package/dist/tools/selection-get.js.map +1 -0
- package/dist/tools/selection-set.d.ts +2 -0
- package/dist/tools/selection-set.js +72 -0
- package/dist/tools/selection-set.js.map +1 -0
- package/dist/tools/settings-get-lighting.d.ts +2 -0
- package/dist/tools/settings-get-lighting.js +21 -0
- package/dist/tools/settings-get-lighting.js.map +1 -0
- package/dist/tools/settings-get-physics.d.ts +2 -0
- package/dist/tools/settings-get-physics.js +17 -0
- package/dist/tools/settings-get-physics.js.map +1 -0
- package/dist/tools/settings-get-player.d.ts +2 -0
- package/dist/tools/settings-get-player.js +16 -0
- package/dist/tools/settings-get-player.js.map +1 -0
- package/dist/tools/settings-get-quality.d.ts +2 -0
- package/dist/tools/settings-get-quality.js +16 -0
- package/dist/tools/settings-get-quality.js.map +1 -0
- package/dist/tools/settings-set-lighting.d.ts +2 -0
- package/dist/tools/settings-set-lighting.js +58 -0
- package/dist/tools/settings-set-lighting.js.map +1 -0
- package/dist/tools/settings-set-physics.d.ts +2 -0
- package/dist/tools/settings-set-physics.js +52 -0
- package/dist/tools/settings-set-physics.js.map +1 -0
- package/dist/tools/settings-set-player.d.ts +2 -0
- package/dist/tools/settings-set-player.js +62 -0
- package/dist/tools/settings-set-player.js.map +1 -0
- package/dist/tools/settings-set-quality.d.ts +2 -0
- package/dist/tools/settings-set-quality.js +51 -0
- package/dist/tools/settings-set-quality.js.map +1 -0
- package/dist/tools/shader-get-data.d.ts +2 -0
- package/dist/tools/shader-get-data.js +31 -0
- package/dist/tools/shader-get-data.js.map +1 -0
- package/dist/tools/shader-list-all.d.ts +2 -0
- package/dist/tools/shader-list-all.js +24 -0
- package/dist/tools/shader-list-all.js.map +1 -0
- package/dist/tools/spatial-query.d.ts +2 -0
- package/dist/tools/spatial-query.js +117 -0
- package/dist/tools/spatial-query.js.map +1 -0
- package/dist/tools/splines-add-knot.d.ts +2 -0
- package/dist/tools/splines-add-knot.js +44 -0
- package/dist/tools/splines-add-knot.js.map +1 -0
- package/dist/tools/splines-container-create.d.ts +2 -0
- package/dist/tools/splines-container-create.js +39 -0
- package/dist/tools/splines-container-create.js.map +1 -0
- package/dist/tools/splines-evaluate.d.ts +2 -0
- package/dist/tools/splines-evaluate.js +31 -0
- package/dist/tools/splines-evaluate.js.map +1 -0
- package/dist/tools/splines-get-knots.d.ts +2 -0
- package/dist/tools/splines-get-knots.js +25 -0
- package/dist/tools/splines-get-knots.js.map +1 -0
- package/dist/tools/splines-modify.d.ts +2 -0
- package/dist/tools/splines-modify.js +35 -0
- package/dist/tools/splines-modify.js.map +1 -0
- package/dist/tools/splines-set-knot.d.ts +2 -0
- package/dist/tools/splines-set-knot.js +41 -0
- package/dist/tools/splines-set-knot.js.map +1 -0
- package/dist/tools/splines-set-tangent-mode.d.ts +2 -0
- package/dist/tools/splines-set-tangent-mode.js +43 -0
- package/dist/tools/splines-set-tangent-mode.js.map +1 -0
- package/dist/tools/type-schema.d.ts +2 -0
- package/dist/tools/type-schema.js +62 -0
- package/dist/tools/type-schema.js.map +1 -0
- package/dist/tools/validate-edit.d.ts +2 -0
- package/dist/tools/validate-edit.js +43 -0
- package/dist/tools/validate-edit.js.map +1 -0
- package/dist/unity-install-discovery.d.ts +79 -0
- package/dist/unity-install-discovery.js +206 -0
- package/dist/unity-install-discovery.js.map +1 -0
- package/dist/unity-log.d.ts +35 -0
- package/dist/unity-log.js +110 -0
- package/dist/unity-log.js.map +1 -0
- package/package.json +54 -0
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
// M18 Plan 2 / T18.2 — canonical tool-group catalog.
|
|
2
|
+
//
|
|
3
|
+
// Single source of truth for the Coplay-style tool-group visibility system.
|
|
4
|
+
// Drives two surfaces:
|
|
5
|
+
//
|
|
6
|
+
// - `unity_open_mcp_manage_tools` meta-tool (session activation state).
|
|
7
|
+
// - `unity_open_mcp_capabilities` `toolGroups` block (compiled-state only).
|
|
8
|
+
//
|
|
9
|
+
// Every registered MCP tool maps to a group id via `groupFor(toolName)`.
|
|
10
|
+
// Tools with no entry map to `null` and are always visible — they are server
|
|
11
|
+
// meta-tools (capabilities, ping, manage_tools itself, etc.).
|
|
12
|
+
//
|
|
13
|
+
// Groups are stable lowercase identifiers. The DEFAULT_ENABLED set is
|
|
14
|
+
// `{ "core" }` only — every other group is hidden from ListTools until the
|
|
15
|
+
// connected MCP session activates it via manage_tools. This matches Coplay's
|
|
16
|
+
// model (see references/unity-mcp-beta-codev/Server/src/services/registry/
|
|
17
|
+
// tool_registry.py: DEFAULT_ENABLED_GROUPS = {"core"}).
|
|
18
|
+
//
|
|
19
|
+
// Domain groups (navigation, input, probuilder, particle-system, animation)
|
|
20
|
+
// carry a `domainDefine` so capabilities can report compiled-state
|
|
21
|
+
// availability — `available: true` when the bridge compiled the domain in
|
|
22
|
+
// (the matching `UNITY_OPEN_MCP_EXT_<DOMAIN>` symbol was defined), `false`
|
|
23
|
+
// when the Unity domain package is absent. Availability is compiled-state
|
|
24
|
+
// only; it does not change per session.
|
|
25
|
+
/**
|
|
26
|
+
* Ordered catalog. Order is preserved in manage_tools / capabilities output
|
|
27
|
+
* so consumers render a stable list.
|
|
28
|
+
*/
|
|
29
|
+
export const TOOL_GROUPS = [
|
|
30
|
+
{
|
|
31
|
+
id: "core",
|
|
32
|
+
description: "Essential editor entry points: ping, execute_csharp, invoke_method, " +
|
|
33
|
+
"find_members, execute_menu, editor_status, compile_check. Always on.",
|
|
34
|
+
defaultEnabled: true,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "gate-and-verify",
|
|
38
|
+
description: "Gate, checkpoint, delta, find_references, scan_paths, apply_fix, " +
|
|
39
|
+
"scan_all, baseline_create, regression_check — the verify surface.",
|
|
40
|
+
defaultEnabled: true,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
id: "asset-intelligence",
|
|
44
|
+
description: "reserialize, read_asset, search_assets, list_assets — offline asset " +
|
|
45
|
+
"reads and reference intelligence.",
|
|
46
|
+
defaultEnabled: true,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
id: "typed-editor",
|
|
50
|
+
description: "Typed editor surface (M16 Plans 1–6, 9): assets, materials, shaders, " +
|
|
51
|
+
"prefabs, GameObjects, components, scenes, packages, console, editor " +
|
|
52
|
+
"state, selection, undo, tags, layers, reflection, scripts, object " +
|
|
53
|
+
"data, build pipeline, project settings.",
|
|
54
|
+
defaultEnabled: true,
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
id: "diagnostics",
|
|
58
|
+
description: "Profiler session control, counters, memory snapshots, and the M10 " +
|
|
59
|
+
"per-frame capture / memory / rendering reads.",
|
|
60
|
+
defaultEnabled: true,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
id: "gate-intelligence",
|
|
64
|
+
description: "Pre/post-mutation intelligence: impact_preview, gate_budget_estimate, " +
|
|
65
|
+
"mutation_explain (read-only compositions of the gate foundations).",
|
|
66
|
+
defaultEnabled: false,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
id: "build-settings",
|
|
70
|
+
description: "Build pipeline + ProjectSettings reads and mutators (build_set_target, " +
|
|
71
|
+
"build_start, settings_set_player, …).",
|
|
72
|
+
defaultEnabled: false,
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
id: "navigation",
|
|
76
|
+
description: "NavMesh (AI Navigation) tools — surfaces, modifiers, links, agents. " +
|
|
77
|
+
"Compile-gated on the com.unity.ai.navigation package.",
|
|
78
|
+
defaultEnabled: false,
|
|
79
|
+
domainDefine: "UNITY_OPEN_MCP_EXT_NAVIGATION",
|
|
80
|
+
unityPackage: "com.unity.ai.navigation",
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
id: "input-system",
|
|
84
|
+
description: "Input System tools — .inputactions asset authoring (action maps, " +
|
|
85
|
+
"actions, bindings, composites, control schemes). Compile-gated on " +
|
|
86
|
+
"com.unity.inputsystem.",
|
|
87
|
+
defaultEnabled: false,
|
|
88
|
+
domainDefine: "UNITY_OPEN_MCP_EXT_INPUTSYSTEM",
|
|
89
|
+
unityPackage: "com.unity.inputsystem",
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
id: "probuilder",
|
|
93
|
+
description: "ProBuilder 3D modeling tools — shapes, mesh info, extrude, face " +
|
|
94
|
+
"delete, face material. Compile-gated on com.unity.probuilder.",
|
|
95
|
+
defaultEnabled: false,
|
|
96
|
+
domainDefine: "UNITY_OPEN_MCP_EXT_PROBUILDER",
|
|
97
|
+
unityPackage: "com.unity.probuilder",
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: "particle-system",
|
|
101
|
+
description: "Particle System tools — per-module reads and field-patch mutator. " +
|
|
102
|
+
"Compile-gated on the built-in ParticleSystemModule.",
|
|
103
|
+
defaultEnabled: false,
|
|
104
|
+
domainDefine: "UNITY_OPEN_MCP_EXT_PARTICLESYSTEM",
|
|
105
|
+
unityPackage: "UnityEngine.ParticleSystemModule",
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
id: "animation",
|
|
109
|
+
description: "AnimationClip + AnimatorController tools — create / read / modify " +
|
|
110
|
+
".anim and .controller assets. Compile-gated on the built-in animation " +
|
|
111
|
+
"module.",
|
|
112
|
+
defaultEnabled: false,
|
|
113
|
+
domainDefine: "UNITY_OPEN_MCP_EXT_ANIMATION",
|
|
114
|
+
unityPackage: "com.unity.modules.animation",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
id: "splines",
|
|
118
|
+
description: "Splines tools — SplineContainer authoring, knots, tangent modes, " +
|
|
119
|
+
"evaluation. Compile-gated on the com.unity.splines package. First " +
|
|
120
|
+
"backlog domain under the embedded + grouped model (M18 Plan 7).",
|
|
121
|
+
defaultEnabled: false,
|
|
122
|
+
domainDefine: "UNITY_OPEN_MCP_EXT_SPLINES",
|
|
123
|
+
unityPackage: "com.unity.splines",
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
id: "agent-senses",
|
|
127
|
+
description: "Agent senses surface (run_tests, screenshot, read_console, profiler " +
|
|
128
|
+
"capture / memory / rendering, spatial_query). Live-only.",
|
|
129
|
+
defaultEnabled: false,
|
|
130
|
+
},
|
|
131
|
+
];
|
|
132
|
+
/**
|
|
133
|
+
* Set of group ids enabled by default for every fresh session.
|
|
134
|
+
* Per the resolved decision (M18 execution-plan.md), this is `core` only.
|
|
135
|
+
*/
|
|
136
|
+
export const DEFAULT_ENABLED_GROUPS = new Set(TOOL_GROUPS.filter((g) => g.defaultEnabled).map((g) => g.id));
|
|
137
|
+
/** All known group ids (validates activate / deactivate input). */
|
|
138
|
+
export const GROUP_IDS = new Set(TOOL_GROUPS.map((g) => g.id));
|
|
139
|
+
const GROUP_BY_ID = new Map(TOOL_GROUPS.map((g) => [g.id, g]));
|
|
140
|
+
export function getGroup(id) {
|
|
141
|
+
return GROUP_BY_ID.get(id);
|
|
142
|
+
}
|
|
143
|
+
// ---------------------------------------------------------------------------
|
|
144
|
+
// Per-tool group assignment — the authoritative mapping from a registered MCP
|
|
145
|
+
// tool name to its group id. Tools not listed here default to `null` (always
|
|
146
|
+
// visible). Mirrors the capability categories in build-capabilities.ts; the
|
|
147
|
+
// group vocabulary is the curated, session-visibility-relevant subset.
|
|
148
|
+
//
|
|
149
|
+
// KEEP THIS TABLE ALIGNED with TOOL_CATEGORY in build-capabilities.ts when
|
|
150
|
+
// adding tools. A tool that gets a non-`core` category in capabilities should
|
|
151
|
+
// map to the matching group id here, and vice versa.
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
const TOOL_GROUP_ASSIGNMENT = {};
|
|
154
|
+
function assign(group, names) {
|
|
155
|
+
for (const name of names)
|
|
156
|
+
TOOL_GROUP_ASSIGNMENT[name] = group;
|
|
157
|
+
}
|
|
158
|
+
// --- core -------------------------------------------------------------------
|
|
159
|
+
assign("core", [
|
|
160
|
+
"unity_open_mcp_ping",
|
|
161
|
+
"unity_open_mcp_execute_csharp",
|
|
162
|
+
"unity_open_mcp_invoke_method",
|
|
163
|
+
"unity_open_mcp_execute_menu",
|
|
164
|
+
"unity_open_mcp_find_members",
|
|
165
|
+
"unity_open_mcp_editor_status",
|
|
166
|
+
]);
|
|
167
|
+
// --- gate-and-verify --------------------------------------------------------
|
|
168
|
+
assign("gate-and-verify", [
|
|
169
|
+
"unity_open_mcp_compile_check",
|
|
170
|
+
"unity_open_mcp_validate_edit",
|
|
171
|
+
"unity_open_mcp_checkpoint_create",
|
|
172
|
+
"unity_open_mcp_delta",
|
|
173
|
+
"unity_open_mcp_find_references",
|
|
174
|
+
"unity_open_mcp_scan_paths",
|
|
175
|
+
"unity_open_mcp_apply_fix",
|
|
176
|
+
"unity_open_mcp_scan_all",
|
|
177
|
+
"unity_open_mcp_baseline_create",
|
|
178
|
+
"unity_open_mcp_regression_check",
|
|
179
|
+
]);
|
|
180
|
+
// --- asset-intelligence -----------------------------------------------------
|
|
181
|
+
assign("asset-intelligence", [
|
|
182
|
+
"unity_open_mcp_reserialize",
|
|
183
|
+
"unity_open_mcp_read_asset",
|
|
184
|
+
"unity_open_mcp_search_assets",
|
|
185
|
+
"unity_open_mcp_list_assets",
|
|
186
|
+
]);
|
|
187
|
+
// --- typed-editor (M16 Plans 1–6, 9) ---------------------------------------
|
|
188
|
+
assign("typed-editor", [
|
|
189
|
+
"assets_create_folder",
|
|
190
|
+
"assets_copy",
|
|
191
|
+
"assets_move",
|
|
192
|
+
"assets_delete",
|
|
193
|
+
"assets_refresh",
|
|
194
|
+
"material_create",
|
|
195
|
+
"material_get_properties",
|
|
196
|
+
"material_set_property",
|
|
197
|
+
"material_get_keywords",
|
|
198
|
+
"material_set_keyword",
|
|
199
|
+
"material_set_shader",
|
|
200
|
+
"shader_list_all",
|
|
201
|
+
"shader_get_data",
|
|
202
|
+
"prefab_instantiate",
|
|
203
|
+
"prefab_create",
|
|
204
|
+
"prefab_open",
|
|
205
|
+
"prefab_close",
|
|
206
|
+
"prefab_save",
|
|
207
|
+
"prefab_apply",
|
|
208
|
+
"prefab_revert",
|
|
209
|
+
"prefab_unpack",
|
|
210
|
+
"prefab_get_overrides",
|
|
211
|
+
"prefab_status",
|
|
212
|
+
"gameobject_create",
|
|
213
|
+
"gameobject_destroy",
|
|
214
|
+
"gameobject_duplicate",
|
|
215
|
+
"gameobject_find",
|
|
216
|
+
"gameobject_modify",
|
|
217
|
+
"gameobject_set_parent",
|
|
218
|
+
"component_add",
|
|
219
|
+
"component_destroy",
|
|
220
|
+
"component_get",
|
|
221
|
+
"component_modify",
|
|
222
|
+
"component_list_all",
|
|
223
|
+
"scene_create",
|
|
224
|
+
"scene_open",
|
|
225
|
+
"scene_save",
|
|
226
|
+
"scene_unload",
|
|
227
|
+
"scene_set_active",
|
|
228
|
+
"scene_list_opened",
|
|
229
|
+
"scene_get_data",
|
|
230
|
+
"scene_get_dirty_summary",
|
|
231
|
+
"scene_focus",
|
|
232
|
+
"package_list",
|
|
233
|
+
"package_search",
|
|
234
|
+
"package_add",
|
|
235
|
+
"package_remove",
|
|
236
|
+
"package_get_info",
|
|
237
|
+
"package_get_dependencies",
|
|
238
|
+
"package_check",
|
|
239
|
+
"console_clear",
|
|
240
|
+
"console_log",
|
|
241
|
+
"editor_set_state",
|
|
242
|
+
"selection_get",
|
|
243
|
+
"selection_set",
|
|
244
|
+
"editor_undo",
|
|
245
|
+
"editor_redo",
|
|
246
|
+
"editor_get_tags",
|
|
247
|
+
"editor_get_layers",
|
|
248
|
+
"editor_add_tag",
|
|
249
|
+
"editor_add_layer",
|
|
250
|
+
"type_schema",
|
|
251
|
+
"script_read",
|
|
252
|
+
"script_write",
|
|
253
|
+
"script_delete",
|
|
254
|
+
"object_get_data",
|
|
255
|
+
"object_modify",
|
|
256
|
+
].map((suffix) => `unity_open_mcp_${suffix}`));
|
|
257
|
+
// --- diagnostics (profiler + per-frame reads) ------------------------------
|
|
258
|
+
assign("diagnostics", [
|
|
259
|
+
"unity_open_mcp_profiler_start",
|
|
260
|
+
"unity_open_mcp_profiler_stop",
|
|
261
|
+
"unity_open_mcp_profiler_get_status",
|
|
262
|
+
"unity_open_mcp_profiler_get_config",
|
|
263
|
+
"unity_open_mcp_profiler_set_config",
|
|
264
|
+
"unity_open_mcp_profiler_list_modules",
|
|
265
|
+
"unity_open_mcp_profiler_enable_module",
|
|
266
|
+
"unity_open_mcp_profiler_clear_data",
|
|
267
|
+
"unity_open_mcp_profiler_save_data",
|
|
268
|
+
"unity_open_mcp_profiler_load_data",
|
|
269
|
+
"unity_open_mcp_profiler_get_script_stats",
|
|
270
|
+
]);
|
|
271
|
+
// --- gate-intelligence ------------------------------------------------------
|
|
272
|
+
assign("gate-intelligence", [
|
|
273
|
+
"unity_open_mcp_impact_preview",
|
|
274
|
+
"unity_open_mcp_gate_budget_estimate",
|
|
275
|
+
"unity_open_mcp_mutation_explain",
|
|
276
|
+
]);
|
|
277
|
+
// --- build-settings ---------------------------------------------------------
|
|
278
|
+
assign("build-settings", [
|
|
279
|
+
"build_get_targets",
|
|
280
|
+
"build_get_active_target",
|
|
281
|
+
"build_set_target",
|
|
282
|
+
"build_get_scenes",
|
|
283
|
+
"build_set_scenes",
|
|
284
|
+
"build_start",
|
|
285
|
+
"build_get_defines",
|
|
286
|
+
"build_set_defines",
|
|
287
|
+
"settings_get_player",
|
|
288
|
+
"settings_set_player",
|
|
289
|
+
"settings_get_quality",
|
|
290
|
+
"settings_set_quality",
|
|
291
|
+
"settings_get_physics",
|
|
292
|
+
"settings_set_physics",
|
|
293
|
+
"settings_get_lighting",
|
|
294
|
+
"settings_set_lighting",
|
|
295
|
+
].map((suffix) => `unity_open_mcp_${suffix}`));
|
|
296
|
+
// --- navigation -------------------------------------------------------------
|
|
297
|
+
assign("navigation", [
|
|
298
|
+
"surface_add",
|
|
299
|
+
"set_bake_settings",
|
|
300
|
+
"surface_bake",
|
|
301
|
+
"modifier_add",
|
|
302
|
+
"modifier_volume_add",
|
|
303
|
+
"link_add",
|
|
304
|
+
"agent_add",
|
|
305
|
+
"agent_set_destination",
|
|
306
|
+
"list",
|
|
307
|
+
"get",
|
|
308
|
+
"modify",
|
|
309
|
+
].map((suffix) => `unity_open_mcp_navigation_${suffix}`));
|
|
310
|
+
// --- input-system -----------------------------------------------------------
|
|
311
|
+
assign("input-system", [
|
|
312
|
+
"asset_create",
|
|
313
|
+
"actionmap_add",
|
|
314
|
+
"action_add",
|
|
315
|
+
"binding_add",
|
|
316
|
+
"binding_composite_add",
|
|
317
|
+
"controlscheme_add",
|
|
318
|
+
"get",
|
|
319
|
+
].map((suffix) => `unity_open_mcp_inputsystem_${suffix}`));
|
|
320
|
+
// --- probuilder -------------------------------------------------------------
|
|
321
|
+
assign("probuilder", [
|
|
322
|
+
"create_shape",
|
|
323
|
+
"get_mesh_info",
|
|
324
|
+
"extrude",
|
|
325
|
+
"delete_faces",
|
|
326
|
+
"set_face_material",
|
|
327
|
+
].map((suffix) => `unity_open_mcp_probuilder_${suffix}`));
|
|
328
|
+
// --- particle-system --------------------------------------------------------
|
|
329
|
+
assign("particle-system", ["get", "modify"].map((suffix) => `unity_open_mcp_particle_system_${suffix}`));
|
|
330
|
+
// --- animation --------------------------------------------------------------
|
|
331
|
+
assign("animation", [
|
|
332
|
+
"animation_create",
|
|
333
|
+
"animation_get_data",
|
|
334
|
+
"animation_modify",
|
|
335
|
+
"animator_create",
|
|
336
|
+
"animator_get_data",
|
|
337
|
+
"animator_modify",
|
|
338
|
+
]);
|
|
339
|
+
// --- splines (M18 Plan 7 / T18.7.3 — first backlog domain) -----------------
|
|
340
|
+
assign("splines", [
|
|
341
|
+
"container_create",
|
|
342
|
+
"add_knot",
|
|
343
|
+
"set_knot",
|
|
344
|
+
"set_tangent_mode",
|
|
345
|
+
"evaluate",
|
|
346
|
+
"get_knots",
|
|
347
|
+
"modify",
|
|
348
|
+
].map((suffix) => `unity_open_mcp_splines_${suffix}`));
|
|
349
|
+
// --- agent-senses (live-only reads) ----------------------------------------
|
|
350
|
+
assign("agent-senses", [
|
|
351
|
+
"unity_senses_run_tests",
|
|
352
|
+
"unity_senses_screenshot",
|
|
353
|
+
// M20 Plan 1 / T20.1.1 — senses parity residual. Arbitrary-pose screenshot
|
|
354
|
+
// + inline-image capture extend the screenshot surface.
|
|
355
|
+
"unity_senses_screenshot_camera",
|
|
356
|
+
"unity_senses_capture_inline",
|
|
357
|
+
// M20 Plan 1 / T20.1.2 — EditorWindow capture.
|
|
358
|
+
"unity_senses_screenshot_window",
|
|
359
|
+
"unity_senses_read_console",
|
|
360
|
+
"unity_senses_profiler_capture",
|
|
361
|
+
"unity_senses_profiler_memory",
|
|
362
|
+
"unity_senses_profiler_rendering",
|
|
363
|
+
"unity_senses_spatial_query",
|
|
364
|
+
]);
|
|
365
|
+
// ---------------------------------------------------------------------------
|
|
366
|
+
// Read API
|
|
367
|
+
// ---------------------------------------------------------------------------
|
|
368
|
+
/**
|
|
369
|
+
* Resolve a tool name to its group id. Returns `null` for tools with no
|
|
370
|
+
* assignment (server meta-tools: capabilities, list_rules, generate_skill,
|
|
371
|
+
* manage_tools, pull_events, read_compile_errors). Null means "always
|
|
372
|
+
* visible" — manage_tools and ListTools never hide a null-group tool.
|
|
373
|
+
*/
|
|
374
|
+
export function groupFor(toolName) {
|
|
375
|
+
return TOOL_GROUP_ASSIGNMENT[toolName] ?? null;
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Inverse map: group id → sorted tool names. Used by manage_tools
|
|
379
|
+
* `list_groups` to enumerate every group with its tool roster. Tools with a
|
|
380
|
+
* null group are intentionally omitted (they are always-visible meta-tools).
|
|
381
|
+
*/
|
|
382
|
+
export function groupToTools() {
|
|
383
|
+
const out = {};
|
|
384
|
+
for (const group of TOOL_GROUPS) {
|
|
385
|
+
out[group.id] = [];
|
|
386
|
+
}
|
|
387
|
+
for (const [tool, group] of Object.entries(TOOL_GROUP_ASSIGNMENT)) {
|
|
388
|
+
if (!out[group])
|
|
389
|
+
out[group] = [];
|
|
390
|
+
out[group].push(tool);
|
|
391
|
+
}
|
|
392
|
+
for (const names of Object.values(out))
|
|
393
|
+
names.sort();
|
|
394
|
+
return out;
|
|
395
|
+
}
|
|
396
|
+
//# sourceMappingURL=tool-groups.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-groups.js","sourceRoot":"","sources":["../../src/capabilities/tool-groups.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,EAAE;AACF,4EAA4E;AAC5E,uBAAuB;AACvB,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,EAAE;AACF,yEAAyE;AACzE,6EAA6E;AAC7E,8DAA8D;AAC9D,EAAE;AACF,sEAAsE;AACtE,2EAA2E;AAC3E,6EAA6E;AAC7E,2EAA2E;AAC3E,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,mEAAmE;AACnE,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,wCAAwC;AA8BxC;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC;QACE,EAAE,EAAE,MAAM;QACV,WAAW,EACT,sEAAsE;YACtE,sEAAsE;QACxE,cAAc,EAAE,IAAI;KACrB;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EACT,mEAAmE;YACnE,mEAAmE;QACrE,cAAc,EAAE,IAAI;KACrB;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,WAAW,EACT,sEAAsE;YACtE,mCAAmC;QACrC,cAAc,EAAE,IAAI;KACrB;IACD;QACE,EAAE,EAAE,cAAc;QAClB,WAAW,EACT,uEAAuE;YACvE,sEAAsE;YACtE,oEAAoE;YACpE,yCAAyC;QAC3C,cAAc,EAAE,IAAI;KACrB;IACD;QACE,EAAE,EAAE,aAAa;QACjB,WAAW,EACT,oEAAoE;YACpE,+CAA+C;QACjD,cAAc,EAAE,IAAI;KACrB;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,WAAW,EACT,wEAAwE;YACxE,oEAAoE;QACtE,cAAc,EAAE,KAAK;KACtB;IACD;QACE,EAAE,EAAE,gBAAgB;QACpB,WAAW,EACT,yEAAyE;YACzE,uCAAuC;QACzC,cAAc,EAAE,KAAK;KACtB;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EACT,sEAAsE;YACtE,uDAAuD;QACzD,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,+BAA+B;QAC7C,YAAY,EAAE,yBAAyB;KACxC;IACD;QACE,EAAE,EAAE,cAAc;QAClB,WAAW,EACT,mEAAmE;YACnE,oEAAoE;YACpE,wBAAwB;QAC1B,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,gCAAgC;QAC9C,YAAY,EAAE,uBAAuB;KACtC;IACD;QACE,EAAE,EAAE,YAAY;QAChB,WAAW,EACT,kEAAkE;YAClE,+DAA+D;QACjE,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,+BAA+B;QAC7C,YAAY,EAAE,sBAAsB;KACrC;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,WAAW,EACT,oEAAoE;YACpE,qDAAqD;QACvD,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,mCAAmC;QACjD,YAAY,EAAE,kCAAkC;KACjD;IACD;QACE,EAAE,EAAE,WAAW;QACf,WAAW,EACT,oEAAoE;YACpE,wEAAwE;YACxE,SAAS;QACX,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,8BAA8B;QAC5C,YAAY,EAAE,6BAA6B;KAC5C;IACD;QACE,EAAE,EAAE,SAAS;QACb,WAAW,EACT,mEAAmE;YACnE,oEAAoE;YACpE,iEAAiE;QACnE,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,4BAA4B;QAC1C,YAAY,EAAE,mBAAmB;KAClC;IACD;QACE,EAAE,EAAE,cAAc;QAClB,WAAW,EACT,sEAAsE;YACtE,0DAA0D;QAC5D,cAAc,EAAE,KAAK;KACtB;CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAChE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7D,CAAC;AAEF,mEAAmE;AACnE,MAAM,CAAC,MAAM,SAAS,GAAwB,IAAI,GAAG,CACnD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC7B,CAAC;AAEF,MAAM,WAAW,GAAmC,IAAI,GAAG,CACzD,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAClC,CAAC;AAEF,MAAM,UAAU,QAAQ,CAAC,EAAU;IACjC,OAAO,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,8EAA8E;AAC9E,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,uEAAuE;AACvE,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,qDAAqD;AACrD,8EAA8E;AAE9E,MAAM,qBAAqB,GAA2B,EAAE,CAAC;AAEzD,SAAS,MAAM,CAAC,KAAa,EAAE,KAAe;IAC5C,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,qBAAqB,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;AAChE,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,MAAM,EAAE;IACb,qBAAqB;IACrB,+BAA+B;IAC/B,8BAA8B;IAC9B,6BAA6B;IAC7B,6BAA6B;IAC7B,8BAA8B;CAC/B,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,iBAAiB,EAAE;IACxB,8BAA8B;IAC9B,8BAA8B;IAC9B,kCAAkC;IAClC,sBAAsB;IACtB,gCAAgC;IAChC,2BAA2B;IAC3B,0BAA0B;IAC1B,yBAAyB;IACzB,gCAAgC;IAChC,iCAAiC;CAClC,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CAAC,oBAAoB,EAAE;IAC3B,4BAA4B;IAC5B,2BAA2B;IAC3B,8BAA8B;IAC9B,4BAA4B;CAC7B,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,CACJ,cAAc,EACd;IACE,sBAAsB;IACtB,aAAa;IACb,aAAa;IACb,eAAe;IACf,gBAAgB;IAChB,iBAAiB;IACjB,yBAAyB;IACzB,uBAAuB;IACvB,uBAAuB;IACvB,sBAAsB;IACtB,qBAAqB;IACrB,iBAAiB;IACjB,iBAAiB;IACjB,oBAAoB;IACpB,eAAe;IACf,aAAa;IACb,cAAc;IACd,aAAa;IACb,cAAc;IACd,eAAe;IACf,eAAe;IACf,sBAAsB;IACtB,eAAe;IACf,mBAAmB;IACnB,oBAAoB;IACpB,sBAAsB;IACtB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,eAAe;IACf,mBAAmB;IACnB,eAAe;IACf,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;IACd,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,kBAAkB;IAClB,mBAAmB;IACnB,gBAAgB;IAChB,yBAAyB;IACzB,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,aAAa;IACb,gBAAgB;IAChB,kBAAkB;IAClB,0BAA0B;IAC1B,eAAe;IACf,eAAe;IACf,aAAa;IACb,kBAAkB;IAClB,eAAe;IACf,eAAe;IACf,aAAa;IACb,aAAa;IACb,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,kBAAkB;IAClB,aAAa;IACb,aAAa;IACb,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,eAAe;CAChB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAC9C,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CACJ,aAAa,EACb;IACE,+BAA+B;IAC/B,8BAA8B;IAC9B,oCAAoC;IACpC,oCAAoC;IACpC,oCAAoC;IACpC,sCAAsC;IACtC,uCAAuC;IACvC,oCAAoC;IACpC,mCAAmC;IACnC,mCAAmC;IACnC,0CAA0C;CAC3C,CACF,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CAAC,mBAAmB,EAAE;IAC1B,+BAA+B;IAC/B,qCAAqC;IACrC,iCAAiC;CAClC,CAAC,CAAC;AAEH,+EAA+E;AAC/E,MAAM,CACJ,gBAAgB,EAChB;IACE,mBAAmB;IACnB,yBAAyB;IACzB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,aAAa;IACb,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,sBAAsB;IACtB,uBAAuB;IACvB,uBAAuB;CACxB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAC9C,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CACJ,YAAY,EACZ;IACE,aAAa;IACb,mBAAmB;IACnB,cAAc;IACd,cAAc;IACd,qBAAqB;IACrB,UAAU;IACV,WAAW;IACX,uBAAuB;IACvB,MAAM;IACN,KAAK;IACL,QAAQ;CACT,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,6BAA6B,MAAM,EAAE,CAAC,CACzD,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CACJ,cAAc,EACd;IACE,cAAc;IACd,eAAe;IACf,YAAY;IACZ,aAAa;IACb,uBAAuB;IACvB,mBAAmB;IACnB,KAAK;CACN,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAC1D,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CACJ,YAAY,EACZ;IACE,cAAc;IACd,eAAe;IACf,SAAS;IACT,cAAc;IACd,mBAAmB;CACpB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,6BAA6B,MAAM,EAAE,CAAC,CACzD,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CACJ,iBAAiB,EACjB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAC9E,CAAC;AAEF,+EAA+E;AAC/E,MAAM,CACJ,WAAW,EACX;IACE,kBAAkB;IAClB,oBAAoB;IACpB,kBAAkB;IAClB,iBAAiB;IACjB,mBAAmB;IACnB,iBAAiB;CAClB,CACF,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CACJ,SAAS,EACT;IACE,kBAAkB;IAClB,UAAU;IACV,UAAU;IACV,kBAAkB;IAClB,UAAU;IACV,WAAW;IACX,QAAQ;CACT,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,0BAA0B,MAAM,EAAE,CAAC,CACtD,CAAC;AAEF,8EAA8E;AAC9E,MAAM,CAAC,cAAc,EAAE;IACrB,wBAAwB;IACxB,yBAAyB;IACzB,2EAA2E;IAC3E,wDAAwD;IACxD,gCAAgC;IAChC,6BAA6B;IAC7B,+CAA+C;IAC/C,gCAAgC;IAChC,2BAA2B;IAC3B,+BAA+B;IAC/B,8BAA8B;IAC9B,iCAAiC;IACjC,4BAA4B;CAC7B,CAAC,CAAC;AAEH,8EAA8E;AAC9E,WAAW;AACX,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,QAAQ,CAAC,QAAgB;IACvC,OAAO,qBAAqB,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,GAAG,GAA6B,EAAE,CAAC;IACzC,KAAK,MAAM,KAAK,IAAI,WAAW,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IACrB,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAClE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,GAAG,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;QACjC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxB,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC;QAAE,KAAK,CAAC,IAAI,EAAE,CAAC;IACrD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export type CliCommand = "ping" | "wait-for-ready" | "status" | "run-tool" | "help" | "version";
|
|
2
|
+
export declare const KNOWN_COMMANDS: readonly string[];
|
|
3
|
+
export interface ParsedCli {
|
|
4
|
+
command: CliCommand | null;
|
|
5
|
+
/** Bare `--json` flag — switches human-readable output to JSON. */
|
|
6
|
+
json: boolean;
|
|
7
|
+
/** Resolved project path (flag wins, else UNITY_PROJECT_PATH env). */
|
|
8
|
+
projectPath: string | undefined;
|
|
9
|
+
/** Resolved bridge port override (flag wins, else UNITY_OPEN_MCP_BRIDGE_PORT env). */
|
|
10
|
+
port: number | undefined;
|
|
11
|
+
/** Ping / wait-for-ready overall timeout (ms). */
|
|
12
|
+
timeoutMs: number | undefined;
|
|
13
|
+
/** wait-for-ready poll interval (ms). */
|
|
14
|
+
intervalMs: number | undefined;
|
|
15
|
+
/** Tool name for run-tool. */
|
|
16
|
+
toolName: string | undefined;
|
|
17
|
+
/** Tool args for run-tool, merged from --args + --arg. */
|
|
18
|
+
toolArgs: Record<string, unknown>;
|
|
19
|
+
/** Parse error message; when set, the dispatcher prints it and exits non-zero. */
|
|
20
|
+
error: string | undefined;
|
|
21
|
+
/** Unknown / unparsed leftovers (currently an error condition). */
|
|
22
|
+
unknown: string[];
|
|
23
|
+
}
|
|
24
|
+
export declare function emptyParsed(): ParsedCli;
|
|
25
|
+
/**
|
|
26
|
+
* Parse the CLI argv (everything after `node dist/index.js`). Returns a
|
|
27
|
+
* structured result; the dispatcher interprets `command`/`error`. Never throws
|
|
28
|
+
* — parse problems are reported through `error`.
|
|
29
|
+
*/
|
|
30
|
+
export declare function parseCliArgs(argv: string[]): ParsedCli;
|
|
31
|
+
/**
|
|
32
|
+
* Coerce a `--arg key=value` value. If the raw value parses as JSON, use the
|
|
33
|
+
* parsed form (so `--arg timeout_ms=30000` yields a number and `--arg
|
|
34
|
+
* include_planned=true` yields a boolean); otherwise keep it as a string.
|
|
35
|
+
*/
|
|
36
|
+
export declare function coerceArgValue(rawValue: string): unknown;
|
package/dist/cli/args.js
ADDED
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
// M15 T6.1 — Thin CLI argument parsing.
|
|
2
|
+
//
|
|
3
|
+
// No runtime deps (mcp-server/AGENTS.md: only @modelcontextprotocol/sdk). The
|
|
4
|
+
// parser is hand-rolled and intentionally small — it covers the four CLI
|
|
5
|
+
// subcommands and their shared options. Anything more complex should go through
|
|
6
|
+
// the MCP server proper.
|
|
7
|
+
//
|
|
8
|
+
// Command shapes:
|
|
9
|
+
// unity-open-mcp ping [--json] [--timeout-ms N]
|
|
10
|
+
// unity-open-mcp wait-for-ready [--json] [--timeout-ms N] [--interval-ms N]
|
|
11
|
+
// unity-open-mcp status [--json]
|
|
12
|
+
// unity-open-mcp run-tool <name> [--json] [--args '<json>'] [--arg k=v]...
|
|
13
|
+
// unity-open-mcp --help | -h
|
|
14
|
+
// unity-open-mcp --version | -V
|
|
15
|
+
//
|
|
16
|
+
// Shared options (where relevant):
|
|
17
|
+
// --project <path> | -P <path> override UNITY_PROJECT_PATH
|
|
18
|
+
// --port <n> | -p <n> override UNITY_OPEN_MCP_BRIDGE_PORT
|
|
19
|
+
// --timeout-ms <n> ping/wait timeout in milliseconds
|
|
20
|
+
// --interval-ms <n> wait-for-ready poll interval
|
|
21
|
+
// --json emit JSON instead of human-readable output
|
|
22
|
+
export const KNOWN_COMMANDS = [
|
|
23
|
+
"ping",
|
|
24
|
+
"wait-for-ready",
|
|
25
|
+
"status",
|
|
26
|
+
"run-tool",
|
|
27
|
+
];
|
|
28
|
+
export function emptyParsed() {
|
|
29
|
+
return {
|
|
30
|
+
command: null,
|
|
31
|
+
json: false,
|
|
32
|
+
projectPath: undefined,
|
|
33
|
+
port: undefined,
|
|
34
|
+
timeoutMs: undefined,
|
|
35
|
+
intervalMs: undefined,
|
|
36
|
+
toolName: undefined,
|
|
37
|
+
toolArgs: {},
|
|
38
|
+
error: undefined,
|
|
39
|
+
unknown: [],
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Parse the CLI argv (everything after `node dist/index.js`). Returns a
|
|
44
|
+
* structured result; the dispatcher interprets `command`/`error`. Never throws
|
|
45
|
+
* — parse problems are reported through `error`.
|
|
46
|
+
*/
|
|
47
|
+
export function parseCliArgs(argv) {
|
|
48
|
+
const parsed = emptyParsed();
|
|
49
|
+
// Make a mutable copy; we walk it with an index so `--arg`/`--set` can
|
|
50
|
+
// consume their following token.
|
|
51
|
+
const args = argv.slice();
|
|
52
|
+
let i = 0;
|
|
53
|
+
// First non-flag token is the command (positional). For run-tool, a second
|
|
54
|
+
// positional is the tool name.
|
|
55
|
+
let positionalCount = 0;
|
|
56
|
+
while (i < args.length) {
|
|
57
|
+
const tok = args[i];
|
|
58
|
+
// --- flags that take no value ---
|
|
59
|
+
if (tok === "--json") {
|
|
60
|
+
parsed.json = true;
|
|
61
|
+
i++;
|
|
62
|
+
continue;
|
|
63
|
+
}
|
|
64
|
+
if (tok === "-h" || tok === "--help") {
|
|
65
|
+
parsed.command = "help";
|
|
66
|
+
return parsed;
|
|
67
|
+
}
|
|
68
|
+
if (tok === "-V" || tok === "--version") {
|
|
69
|
+
parsed.command = "version";
|
|
70
|
+
return parsed;
|
|
71
|
+
}
|
|
72
|
+
// --- flags that take a value ---
|
|
73
|
+
if (tok === "--project" || tok === "-P") {
|
|
74
|
+
const v = args[i + 1];
|
|
75
|
+
if (!v || v.startsWith("-")) {
|
|
76
|
+
parsed.error = `${tok} requires a project path.`;
|
|
77
|
+
return parsed;
|
|
78
|
+
}
|
|
79
|
+
parsed.projectPath = v;
|
|
80
|
+
i += 2;
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
if (tok === "--port" || tok === "-p") {
|
|
84
|
+
const v = args[i + 1];
|
|
85
|
+
const n = parsePositiveInt(v);
|
|
86
|
+
if (n === undefined) {
|
|
87
|
+
parsed.error = `${tok} requires a valid port number (1-65535).`;
|
|
88
|
+
return parsed;
|
|
89
|
+
}
|
|
90
|
+
parsed.port = n;
|
|
91
|
+
i += 2;
|
|
92
|
+
continue;
|
|
93
|
+
}
|
|
94
|
+
if (tok === "--timeout-ms") {
|
|
95
|
+
const v = args[i + 1];
|
|
96
|
+
const n = parsePositiveInt(v);
|
|
97
|
+
if (n === undefined) {
|
|
98
|
+
parsed.error = "--timeout-ms requires a positive integer (ms).";
|
|
99
|
+
return parsed;
|
|
100
|
+
}
|
|
101
|
+
parsed.timeoutMs = n;
|
|
102
|
+
i += 2;
|
|
103
|
+
continue;
|
|
104
|
+
}
|
|
105
|
+
if (tok === "--interval-ms") {
|
|
106
|
+
const v = args[i + 1];
|
|
107
|
+
const n = parsePositiveInt(v);
|
|
108
|
+
if (n === undefined) {
|
|
109
|
+
parsed.error = "--interval-ms requires a positive integer (ms).";
|
|
110
|
+
return parsed;
|
|
111
|
+
}
|
|
112
|
+
parsed.intervalMs = n;
|
|
113
|
+
i += 2;
|
|
114
|
+
continue;
|
|
115
|
+
}
|
|
116
|
+
// run-tool arg passing. Two shapes:
|
|
117
|
+
// --args '<json blob>' → merge parsed JSON object into toolArgs
|
|
118
|
+
// --arg key=value → set one key; value JSON-parsed if valid JSON,
|
|
119
|
+
// else kept as a string. Repeatable.
|
|
120
|
+
if (tok === "--args") {
|
|
121
|
+
const v = args[i + 1];
|
|
122
|
+
if (v === undefined) {
|
|
123
|
+
parsed.error = "--args requires a JSON object argument.";
|
|
124
|
+
return parsed;
|
|
125
|
+
}
|
|
126
|
+
const merged = mergeJsonArgs(parsed.toolArgs, v);
|
|
127
|
+
if (merged instanceof Error) {
|
|
128
|
+
parsed.error = merged.message;
|
|
129
|
+
return parsed;
|
|
130
|
+
}
|
|
131
|
+
parsed.toolArgs = merged;
|
|
132
|
+
i += 2;
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
if (tok === "--arg" || tok === "--set") {
|
|
136
|
+
const v = args[i + 1];
|
|
137
|
+
if (v === undefined || !v.includes("=")) {
|
|
138
|
+
parsed.error = `${tok} requires a key=value token.`;
|
|
139
|
+
return parsed;
|
|
140
|
+
}
|
|
141
|
+
const eq = v.indexOf("=");
|
|
142
|
+
const key = v.slice(0, eq);
|
|
143
|
+
const rawValue = v.slice(eq + 1);
|
|
144
|
+
if (key.length === 0) {
|
|
145
|
+
parsed.error = `${tok} has an empty key in '${v}'.`;
|
|
146
|
+
return parsed;
|
|
147
|
+
}
|
|
148
|
+
parsed.toolArgs[key] = coerceArgValue(rawValue);
|
|
149
|
+
i += 2;
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
// --- positionals ---
|
|
153
|
+
if (!tok.startsWith("-")) {
|
|
154
|
+
if (positionalCount === 0) {
|
|
155
|
+
if (!KNOWN_COMMANDS.includes(tok)) {
|
|
156
|
+
parsed.error = `Unknown command '${tok}'. Known: ${KNOWN_COMMANDS.join(", ")}.`;
|
|
157
|
+
return parsed;
|
|
158
|
+
}
|
|
159
|
+
// narrowed by the includes() check above
|
|
160
|
+
parsed.command = tok;
|
|
161
|
+
}
|
|
162
|
+
else if (positionalCount === 1) {
|
|
163
|
+
if (parsed.command !== "run-tool") {
|
|
164
|
+
parsed.error = `Unexpected positional '${tok}' for command '${parsed.command}'.`;
|
|
165
|
+
return parsed;
|
|
166
|
+
}
|
|
167
|
+
parsed.toolName = tok;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
parsed.error = `Unexpected positional '${tok}'.`;
|
|
171
|
+
return parsed;
|
|
172
|
+
}
|
|
173
|
+
positionalCount++;
|
|
174
|
+
i++;
|
|
175
|
+
continue;
|
|
176
|
+
}
|
|
177
|
+
// Anything else is an unknown flag. Collect for a helpful error.
|
|
178
|
+
parsed.unknown.push(tok);
|
|
179
|
+
i++;
|
|
180
|
+
}
|
|
181
|
+
if (parsed.unknown.length > 0) {
|
|
182
|
+
parsed.error = `Unknown option(s): ${parsed.unknown.join(", ")}.`;
|
|
183
|
+
return parsed;
|
|
184
|
+
}
|
|
185
|
+
// Command-specific validation.
|
|
186
|
+
if (parsed.command === "run-tool" && !parsed.toolName) {
|
|
187
|
+
parsed.error = "run-tool requires a tool name (run-tool <name>).";
|
|
188
|
+
return parsed;
|
|
189
|
+
}
|
|
190
|
+
if (!parsed.command) {
|
|
191
|
+
// No command at all — the caller (dispatcher) decides what to do. When
|
|
192
|
+
// invoked as an MCP server (no subcommand), the stdio path handles it; we
|
|
193
|
+
// surface help for an explicit `--json` with no command, but otherwise
|
|
194
|
+
// return null command so the dispatcher can fall through to the server.
|
|
195
|
+
}
|
|
196
|
+
return parsed;
|
|
197
|
+
}
|
|
198
|
+
function parsePositiveInt(v) {
|
|
199
|
+
if (v === undefined || v.startsWith("-"))
|
|
200
|
+
return undefined;
|
|
201
|
+
const n = Number(v);
|
|
202
|
+
if (!Number.isInteger(n) || n <= 0)
|
|
203
|
+
return undefined;
|
|
204
|
+
return n;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Parse a `--args` JSON blob and merge it into the existing args object. The
|
|
208
|
+
* blob MUST parse to a JSON object — arrays / scalars are rejected so a stray
|
|
209
|
+
* `--args '[1,2]'` doesn't silently become `{ "0": 1 }`. Returns an Error when
|
|
210
|
+
* the blob is invalid so the parser can surface a clean message.
|
|
211
|
+
*/
|
|
212
|
+
function mergeJsonArgs(into, blob) {
|
|
213
|
+
let parsed;
|
|
214
|
+
try {
|
|
215
|
+
parsed = JSON.parse(blob);
|
|
216
|
+
}
|
|
217
|
+
catch (err) {
|
|
218
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
219
|
+
return new Error(`--args is not valid JSON: ${msg}`);
|
|
220
|
+
}
|
|
221
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
|
|
222
|
+
return new Error("--args must be a JSON object.");
|
|
223
|
+
}
|
|
224
|
+
return { ...into, ...parsed };
|
|
225
|
+
}
|
|
226
|
+
/**
|
|
227
|
+
* Coerce a `--arg key=value` value. If the raw value parses as JSON, use the
|
|
228
|
+
* parsed form (so `--arg timeout_ms=30000` yields a number and `--arg
|
|
229
|
+
* include_planned=true` yields a boolean); otherwise keep it as a string.
|
|
230
|
+
*/
|
|
231
|
+
export function coerceArgValue(rawValue) {
|
|
232
|
+
try {
|
|
233
|
+
return JSON.parse(rawValue);
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
return rawValue;
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=args.js.map
|