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,155 @@
|
|
|
1
|
+
import type { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import type { RuleCapability, FixCapability, CapabilityStatus } from "./rule-catalog.js";
|
|
3
|
+
export type RoutePolicy = "live" | "offline" | "offline-first" | "compressible";
|
|
4
|
+
export interface PlannedTool {
|
|
5
|
+
name: string;
|
|
6
|
+
category: string;
|
|
7
|
+
description: string;
|
|
8
|
+
guidance: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const PLANNED_TOOLS: PlannedTool[];
|
|
11
|
+
/**
|
|
12
|
+
* Static routing narrative. Mirrors `docs/api/mcp-tools.md` §Route
|
|
13
|
+
* policy + §Batch support + the `BATCH_TOOL_NAMES` / blocked-tool
|
|
14
|
+
* lists in `batch-spawn.ts`. Kept concise; per-tool `batchCapable`
|
|
15
|
+
* flags live on each {@link ToolCapability}.
|
|
16
|
+
*/
|
|
17
|
+
export declare const ROUTING_SUMMARY: RoutingSummary;
|
|
18
|
+
export interface ToolCapability {
|
|
19
|
+
name: string;
|
|
20
|
+
implemented: boolean;
|
|
21
|
+
status: CapabilityStatus;
|
|
22
|
+
category: string;
|
|
23
|
+
description: string;
|
|
24
|
+
routePolicy: RoutePolicy;
|
|
25
|
+
batchCapable: boolean;
|
|
26
|
+
/** Input schema mirrored from the Tool definition. */
|
|
27
|
+
inputSchema: Tool["inputSchema"];
|
|
28
|
+
/** Present only for planned tools. */
|
|
29
|
+
guidance?: string;
|
|
30
|
+
/**
|
|
31
|
+
* M18 Plan 2 / T18.2.3 — group id (from tool-groups.ts). Tools with no
|
|
32
|
+
* group assignment (server meta-tools) carry `null`. Lets an agent learn
|
|
33
|
+
* which manage_tools group to activate to surface a planned tool.
|
|
34
|
+
*/
|
|
35
|
+
group: string | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Per-group capability entry as it appears in the capabilities response.
|
|
39
|
+
*
|
|
40
|
+
* Compiled-state only — does NOT reflect per-session activation. The session
|
|
41
|
+
* activation state is exposed via manage_tools `list_groups`. The two concerns
|
|
42
|
+
* are intentionally split (see M18 execution-plan.md §resolved decisions).
|
|
43
|
+
*/
|
|
44
|
+
export interface ToolGroupCapability {
|
|
45
|
+
/** Stable lowercase group id (e.g. `"core"`, `"navigation"`). */
|
|
46
|
+
id: string;
|
|
47
|
+
description: string;
|
|
48
|
+
/** True when the group is enabled by default for fresh sessions. */
|
|
49
|
+
defaultEnabled: boolean;
|
|
50
|
+
/** Count of compiled-in tools in the group. */
|
|
51
|
+
toolCount: number;
|
|
52
|
+
/** Compiled-in tool names in the group, sorted. */
|
|
53
|
+
tools: string[];
|
|
54
|
+
/**
|
|
55
|
+
* Whether the group's Unity domain dependency compiled in. `true` for
|
|
56
|
+
* groups without a domainDefine (always compiled in); `false` when the
|
|
57
|
+
* bridge did not compile the domain in. The bridge detection is the
|
|
58
|
+
* `availableBridgeTools` dependency — when absent (bridge offline),
|
|
59
|
+
* domain-gated groups report `null` (unknown) and the agent should treat
|
|
60
|
+
* them as "may or may not be available".
|
|
61
|
+
*/
|
|
62
|
+
available: boolean | null;
|
|
63
|
+
/** Free-text reason for `available: false` (dependency missing) or null. */
|
|
64
|
+
availableReason: string | null;
|
|
65
|
+
/** Unity package the group depends on, for install guidance. */
|
|
66
|
+
unityPackage: string | null;
|
|
67
|
+
/** Bridge compile define that gates this group (null when not gated). */
|
|
68
|
+
domainDefine: string | null;
|
|
69
|
+
/**
|
|
70
|
+
* Usage hint surfaced to the agent. Always points at manage_tools so the
|
|
71
|
+
* agent knows to activate the group before invoking its tools.
|
|
72
|
+
*/
|
|
73
|
+
usageHint: string;
|
|
74
|
+
}
|
|
75
|
+
export interface CapabilitiesResult {
|
|
76
|
+
tools: ToolCapability[];
|
|
77
|
+
rules: RuleCapability[];
|
|
78
|
+
fixes: FixCapability[];
|
|
79
|
+
/**
|
|
80
|
+
* M18 Plan 2 / T18.2.3 — tool-group catalog (compiled-state only). Lets an
|
|
81
|
+
* agent learn which groups exist, what they contain, and whether the
|
|
82
|
+
* domain dependency is compiled in — before any tool call. Per-session
|
|
83
|
+
* activation state is in manage_tools `list_groups`, not here.
|
|
84
|
+
*/
|
|
85
|
+
toolGroups: ToolGroupCapability[];
|
|
86
|
+
counts: {
|
|
87
|
+
toolsImplemented: number;
|
|
88
|
+
toolsPlanned: number;
|
|
89
|
+
rulesImplemented: number;
|
|
90
|
+
rulesPlanned: number;
|
|
91
|
+
fixesImplemented: number;
|
|
92
|
+
fixesPlanned: number;
|
|
93
|
+
/** M18 Plan 2 — count of groups enabled by default (`core` only). */
|
|
94
|
+
toolGroupsDefaultEnabled: number;
|
|
95
|
+
/** M18 Plan 2 — total group count. */
|
|
96
|
+
toolGroupsTotal: number;
|
|
97
|
+
};
|
|
98
|
+
/**
|
|
99
|
+
* One-shot routing narrative for agents. Lets a batch-narrative
|
|
100
|
+
* agent learn how tool calls are routed without reading repo docs.
|
|
101
|
+
* Concise on purpose — per-tool details live on each
|
|
102
|
+
* {@link ToolCapability} entry, not here.
|
|
103
|
+
*/
|
|
104
|
+
routing: RoutingSummary;
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* Compact routing summary embedded in the capabilities response. This
|
|
108
|
+
* is the agent-facing counterpart of `docs/api/mcp-tools.md` §Route
|
|
109
|
+
* policy / §Batch support — it does NOT duplicate the full prose.
|
|
110
|
+
*/
|
|
111
|
+
export interface RoutingSummary {
|
|
112
|
+
/** Most tools prefer the live bridge when it is connected. */
|
|
113
|
+
liveDefault: boolean;
|
|
114
|
+
/**
|
|
115
|
+
* When the live bridge is unavailable, only `batchCapable` tools
|
|
116
|
+
* fall back to a headless Unity spawn.
|
|
117
|
+
*/
|
|
118
|
+
batchFallback: boolean;
|
|
119
|
+
/** Env vars a headless batch spawn requires. */
|
|
120
|
+
batchRequirements: string[];
|
|
121
|
+
/** Mutating meta-tools that are intentionally blocked in batch. */
|
|
122
|
+
batchBlocked: {
|
|
123
|
+
tool: string;
|
|
124
|
+
reason: string;
|
|
125
|
+
}[];
|
|
126
|
+
/** Tool categories that are live-only (no batch fallback). */
|
|
127
|
+
liveOnlyCategories: string[];
|
|
128
|
+
/**
|
|
129
|
+
* Pointer back to the per-tool `batchCapable` flag — agents should
|
|
130
|
+
* read that flag on each tool, not scan this summary for the list.
|
|
131
|
+
*/
|
|
132
|
+
perToolFlag: string;
|
|
133
|
+
}
|
|
134
|
+
export interface CapabilitiesFilter {
|
|
135
|
+
/** Filter to a single surface (`tools` | `rules` | `fixes`). Omit for all. */
|
|
136
|
+
kind?: "tools" | "rules" | "fixes";
|
|
137
|
+
/** When false, omit planned/unimplemented capabilities. */
|
|
138
|
+
includePlanned?: boolean;
|
|
139
|
+
}
|
|
140
|
+
export interface BuildCapabilitiesDeps {
|
|
141
|
+
tools: Tool[];
|
|
142
|
+
batchToolNames: ReadonlySet<string>;
|
|
143
|
+
rules: RuleCapability[];
|
|
144
|
+
fixes: FixCapability[];
|
|
145
|
+
/**
|
|
146
|
+
* M18 Plan 2 / T18.2.3 — optional: the set of tool names the bridge has
|
|
147
|
+
* compiled in. Used to report per-group compiled-state availability
|
|
148
|
+
* (`available: true/false` on each ToolGroupCapability). When omitted
|
|
149
|
+
* (bridge offline, local capability call), domain-gated groups report
|
|
150
|
+
* `available: null` (unknown) and the agent is directed at
|
|
151
|
+
* manage_tools(list_groups) which probes the live bridge.
|
|
152
|
+
*/
|
|
153
|
+
availableBridgeTools?: ReadonlySet<string>;
|
|
154
|
+
}
|
|
155
|
+
export declare function buildCapabilities(deps: BuildCapabilitiesDeps, filter?: CapabilitiesFilter): CapabilitiesResult;
|
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
// Capability-discovery builder.
|
|
2
|
+
//
|
|
3
|
+
// Aggregates the full capability surface (tools + verify rules + fixes +
|
|
4
|
+
// tool groups) that `unity_open_mcp_capabilities` returns. Every registered
|
|
5
|
+
// tool ships as `implemented: true`; planned typed tools (the curated editor
|
|
6
|
+
// surface) are listed with `implemented: false` and guidance so agents get
|
|
7
|
+
// structured "not yet available" signals instead of discovering gaps by
|
|
8
|
+
// trial and error.
|
|
9
|
+
//
|
|
10
|
+
// Pure transformation module: dependencies (registered tools, batch allow-list,
|
|
11
|
+
// rule/fix catalogs) are passed in by the caller so this file has zero runtime
|
|
12
|
+
// cross-file imports and loads cleanly under `node --experimental-strip-types`.
|
|
13
|
+
import { TOOL_GROUPS, groupFor, } from "./tool-groups.js";
|
|
14
|
+
// ---------------------------------------------------------------------------
|
|
15
|
+
// Route metadata — mirrors tool-router.ts / compressible-router.ts decisions
|
|
16
|
+
// ---------------------------------------------------------------------------
|
|
17
|
+
const OFFLINE_TOOLS = new Set(["unity_open_mcp_list_assets"]);
|
|
18
|
+
const OFFLINE_FIRST_TOOLS = new Set([
|
|
19
|
+
"unity_open_mcp_find_references",
|
|
20
|
+
"unity_open_mcp_read_asset",
|
|
21
|
+
"unity_open_mcp_search_assets",
|
|
22
|
+
]);
|
|
23
|
+
function routePolicyFor(toolName) {
|
|
24
|
+
if (OFFLINE_TOOLS.has(toolName))
|
|
25
|
+
return "offline";
|
|
26
|
+
if (OFFLINE_FIRST_TOOLS.has(toolName))
|
|
27
|
+
return "offline-first";
|
|
28
|
+
return "live";
|
|
29
|
+
}
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
// Tool categories — semantic grouping that does not leak milestone IDs
|
|
32
|
+
// ---------------------------------------------------------------------------
|
|
33
|
+
const TOOL_CATEGORY = {
|
|
34
|
+
unity_open_mcp_ping: "core",
|
|
35
|
+
unity_open_mcp_execute_csharp: "core",
|
|
36
|
+
unity_open_mcp_invoke_method: "core",
|
|
37
|
+
unity_open_mcp_execute_menu: "core",
|
|
38
|
+
unity_open_mcp_find_members: "core",
|
|
39
|
+
unity_open_mcp_compile_check: "diagnostics",
|
|
40
|
+
unity_open_mcp_editor_status: "core",
|
|
41
|
+
unity_open_mcp_validate_edit: "gate-and-verify",
|
|
42
|
+
unity_open_mcp_checkpoint_create: "gate-and-verify",
|
|
43
|
+
unity_open_mcp_delta: "gate-and-verify",
|
|
44
|
+
unity_open_mcp_find_references: "gate-and-verify",
|
|
45
|
+
unity_open_mcp_scan_paths: "gate-and-verify",
|
|
46
|
+
unity_open_mcp_apply_fix: "gate-and-verify",
|
|
47
|
+
unity_open_mcp_scan_all: "gate-and-verify",
|
|
48
|
+
unity_open_mcp_baseline_create: "gate-and-verify",
|
|
49
|
+
unity_open_mcp_regression_check: "gate-and-verify",
|
|
50
|
+
unity_open_mcp_reserialize: "asset-intelligence",
|
|
51
|
+
unity_open_mcp_read_asset: "asset-intelligence",
|
|
52
|
+
unity_open_mcp_search_assets: "asset-intelligence",
|
|
53
|
+
unity_open_mcp_list_assets: "asset-intelligence",
|
|
54
|
+
// M16 Plan 1 — typed project & asset management tools.
|
|
55
|
+
unity_open_mcp_assets_create_folder: "typed-editor",
|
|
56
|
+
unity_open_mcp_assets_copy: "typed-editor",
|
|
57
|
+
unity_open_mcp_assets_move: "typed-editor",
|
|
58
|
+
unity_open_mcp_assets_delete: "typed-editor",
|
|
59
|
+
unity_open_mcp_assets_refresh: "typed-editor",
|
|
60
|
+
unity_open_mcp_material_create: "typed-editor",
|
|
61
|
+
unity_open_mcp_material_get_properties: "typed-editor",
|
|
62
|
+
unity_open_mcp_material_set_property: "typed-editor",
|
|
63
|
+
unity_open_mcp_material_get_keywords: "typed-editor",
|
|
64
|
+
unity_open_mcp_material_set_keyword: "typed-editor",
|
|
65
|
+
unity_open_mcp_material_set_shader: "typed-editor",
|
|
66
|
+
unity_open_mcp_shader_list_all: "typed-editor",
|
|
67
|
+
unity_open_mcp_shader_get_data: "typed-editor",
|
|
68
|
+
unity_open_mcp_prefab_instantiate: "typed-editor",
|
|
69
|
+
unity_open_mcp_prefab_create: "typed-editor",
|
|
70
|
+
unity_open_mcp_prefab_open: "typed-editor",
|
|
71
|
+
unity_open_mcp_prefab_close: "typed-editor",
|
|
72
|
+
unity_open_mcp_prefab_save: "typed-editor",
|
|
73
|
+
unity_open_mcp_prefab_apply: "typed-editor",
|
|
74
|
+
unity_open_mcp_prefab_revert: "typed-editor",
|
|
75
|
+
unity_open_mcp_prefab_unpack: "typed-editor",
|
|
76
|
+
unity_open_mcp_prefab_get_overrides: "typed-editor",
|
|
77
|
+
unity_open_mcp_prefab_status: "typed-editor",
|
|
78
|
+
// M16 Plan 2 — typed GameObject & component tools.
|
|
79
|
+
unity_open_mcp_gameobject_create: "typed-editor",
|
|
80
|
+
unity_open_mcp_gameobject_destroy: "typed-editor",
|
|
81
|
+
unity_open_mcp_gameobject_duplicate: "typed-editor",
|
|
82
|
+
unity_open_mcp_gameobject_find: "typed-editor",
|
|
83
|
+
unity_open_mcp_gameobject_modify: "typed-editor",
|
|
84
|
+
unity_open_mcp_gameobject_set_parent: "typed-editor",
|
|
85
|
+
unity_open_mcp_component_add: "typed-editor",
|
|
86
|
+
unity_open_mcp_component_destroy: "typed-editor",
|
|
87
|
+
unity_open_mcp_component_get: "typed-editor",
|
|
88
|
+
unity_open_mcp_component_modify: "typed-editor",
|
|
89
|
+
unity_open_mcp_component_list_all: "typed-editor",
|
|
90
|
+
// M16 Plan 3 — typed scene management tools.
|
|
91
|
+
unity_open_mcp_scene_create: "typed-editor",
|
|
92
|
+
unity_open_mcp_scene_open: "typed-editor",
|
|
93
|
+
unity_open_mcp_scene_save: "typed-editor",
|
|
94
|
+
unity_open_mcp_scene_unload: "typed-editor",
|
|
95
|
+
unity_open_mcp_scene_set_active: "typed-editor",
|
|
96
|
+
unity_open_mcp_scene_list_opened: "typed-editor",
|
|
97
|
+
unity_open_mcp_scene_get_data: "typed-editor",
|
|
98
|
+
unity_open_mcp_scene_get_dirty_summary: "typed-editor",
|
|
99
|
+
unity_open_mcp_scene_focus: "typed-editor",
|
|
100
|
+
// M16 Plan 4 — typed Package Manager tools.
|
|
101
|
+
unity_open_mcp_package_list: "typed-editor",
|
|
102
|
+
unity_open_mcp_package_search: "typed-editor",
|
|
103
|
+
unity_open_mcp_package_add: "typed-editor",
|
|
104
|
+
unity_open_mcp_package_remove: "typed-editor",
|
|
105
|
+
unity_open_mcp_package_get_info: "typed-editor",
|
|
106
|
+
unity_open_mcp_package_get_dependencies: "typed-editor",
|
|
107
|
+
unity_open_mcp_package_check: "typed-editor",
|
|
108
|
+
// M16 Plan 5 — typed console / editor state / selection / undo / tags / layers.
|
|
109
|
+
unity_open_mcp_console_clear: "typed-editor",
|
|
110
|
+
unity_open_mcp_console_log: "typed-editor",
|
|
111
|
+
unity_open_mcp_editor_set_state: "typed-editor",
|
|
112
|
+
unity_open_mcp_selection_get: "typed-editor",
|
|
113
|
+
unity_open_mcp_selection_set: "typed-editor",
|
|
114
|
+
unity_open_mcp_editor_undo: "typed-editor",
|
|
115
|
+
unity_open_mcp_editor_redo: "typed-editor",
|
|
116
|
+
unity_open_mcp_editor_get_tags: "typed-editor",
|
|
117
|
+
unity_open_mcp_editor_get_layers: "typed-editor",
|
|
118
|
+
unity_open_mcp_editor_add_tag: "typed-editor",
|
|
119
|
+
unity_open_mcp_editor_add_layer: "typed-editor",
|
|
120
|
+
// M16 Plan 6 — typed reflection / scripts / object data tools.
|
|
121
|
+
// type_schema / script_read / object_get_data are read-only; script_write /
|
|
122
|
+
// script_delete / object_modify are mutating (paths_hint scoped).
|
|
123
|
+
unity_open_mcp_type_schema: "typed-editor",
|
|
124
|
+
unity_open_mcp_script_read: "typed-editor",
|
|
125
|
+
unity_open_mcp_script_write: "typed-editor",
|
|
126
|
+
unity_open_mcp_script_delete: "typed-editor",
|
|
127
|
+
unity_open_mcp_object_get_data: "typed-editor",
|
|
128
|
+
unity_open_mcp_object_modify: "typed-editor",
|
|
129
|
+
// M16 Plan 7 — typed profiler session / diagnostics tools. Most mutate
|
|
130
|
+
// editor state (no asset writes) — gate-free direct-response tools.
|
|
131
|
+
// profiler_save_data is the lone asset-writing mutator (paths_hint scoped
|
|
132
|
+
// to the destination .json).
|
|
133
|
+
unity_open_mcp_profiler_start: "diagnostics",
|
|
134
|
+
unity_open_mcp_profiler_stop: "diagnostics",
|
|
135
|
+
unity_open_mcp_profiler_get_status: "diagnostics",
|
|
136
|
+
unity_open_mcp_profiler_get_config: "diagnostics",
|
|
137
|
+
unity_open_mcp_profiler_set_config: "diagnostics",
|
|
138
|
+
unity_open_mcp_profiler_list_modules: "diagnostics",
|
|
139
|
+
unity_open_mcp_profiler_enable_module: "diagnostics",
|
|
140
|
+
unity_open_mcp_profiler_clear_data: "diagnostics",
|
|
141
|
+
unity_open_mcp_profiler_save_data: "diagnostics",
|
|
142
|
+
unity_open_mcp_profiler_load_data: "diagnostics",
|
|
143
|
+
unity_open_mcp_profiler_get_script_stats: "diagnostics",
|
|
144
|
+
// M16 Plan 8 — typed gate intelligence tools. All read-only, gate-free
|
|
145
|
+
// direct-response tools that compose checkpoint / validate / delta / verify
|
|
146
|
+
// / run-history foundations. impact_preview + gate_budget_estimate are
|
|
147
|
+
// pre-mutation; mutation_explain is post-mutation.
|
|
148
|
+
unity_open_mcp_impact_preview: "gate-intelligence",
|
|
149
|
+
unity_open_mcp_gate_budget_estimate: "gate-intelligence",
|
|
150
|
+
unity_open_mcp_mutation_explain: "gate-intelligence",
|
|
151
|
+
// M16 Plan 9 — typed build pipeline + project-settings tools. Reads are
|
|
152
|
+
// gate-free; build_set_target / build_set_scenes / build_set_defines /
|
|
153
|
+
// build_start / settings_set_* run the full gate path (build_start also
|
|
154
|
+
// requires the deny bypass — BuildPipeline.BuildPlayer is on the deny list).
|
|
155
|
+
unity_open_mcp_build_get_targets: "build-settings",
|
|
156
|
+
unity_open_mcp_build_get_active_target: "build-settings",
|
|
157
|
+
unity_open_mcp_build_set_target: "build-settings",
|
|
158
|
+
unity_open_mcp_build_get_scenes: "build-settings",
|
|
159
|
+
unity_open_mcp_build_set_scenes: "build-settings",
|
|
160
|
+
unity_open_mcp_build_start: "build-settings",
|
|
161
|
+
unity_open_mcp_build_get_defines: "build-settings",
|
|
162
|
+
unity_open_mcp_build_set_defines: "build-settings",
|
|
163
|
+
unity_open_mcp_settings_get_player: "build-settings",
|
|
164
|
+
unity_open_mcp_settings_set_player: "build-settings",
|
|
165
|
+
unity_open_mcp_settings_get_quality: "build-settings",
|
|
166
|
+
unity_open_mcp_settings_set_quality: "build-settings",
|
|
167
|
+
unity_open_mcp_settings_get_physics: "build-settings",
|
|
168
|
+
unity_open_mcp_settings_set_physics: "build-settings",
|
|
169
|
+
unity_open_mcp_settings_get_lighting: "build-settings",
|
|
170
|
+
unity_open_mcp_settings_set_lighting: "build-settings",
|
|
171
|
+
// M16 Plan 10 / T6.6.2 — Navigation (NavMesh) extension tools. Extension
|
|
172
|
+
// pack tools ship tool definitions in the core MCP server (so capabilities
|
|
173
|
+
// advertises the surface) but require the matching extension UPM package
|
|
174
|
+
// installed in the target project for the bridge-side handler to exist.
|
|
175
|
+
unity_open_mcp_navigation_surface_add: "navigation",
|
|
176
|
+
unity_open_mcp_navigation_set_bake_settings: "navigation",
|
|
177
|
+
unity_open_mcp_navigation_surface_bake: "navigation",
|
|
178
|
+
unity_open_mcp_navigation_modifier_add: "navigation",
|
|
179
|
+
unity_open_mcp_navigation_modifier_volume_add: "navigation",
|
|
180
|
+
unity_open_mcp_navigation_link_add: "navigation",
|
|
181
|
+
unity_open_mcp_navigation_agent_add: "navigation",
|
|
182
|
+
unity_open_mcp_navigation_agent_set_destination: "navigation",
|
|
183
|
+
unity_open_mcp_navigation_list: "navigation",
|
|
184
|
+
unity_open_mcp_navigation_get: "navigation",
|
|
185
|
+
unity_open_mcp_navigation_modify: "navigation",
|
|
186
|
+
// M16 Plan 10 / T6.6.4 — Input System extension tools. Extension pack tools
|
|
187
|
+
// ship tool definitions in the core MCP server (so capabilities advertises
|
|
188
|
+
// the surface) but require the matching extension UPM package installed in
|
|
189
|
+
// the target project for the bridge-side handler to exist.
|
|
190
|
+
unity_open_mcp_inputsystem_asset_create: "input-system",
|
|
191
|
+
unity_open_mcp_inputsystem_actionmap_add: "input-system",
|
|
192
|
+
unity_open_mcp_inputsystem_action_add: "input-system",
|
|
193
|
+
unity_open_mcp_inputsystem_binding_add: "input-system",
|
|
194
|
+
unity_open_mcp_inputsystem_binding_composite_add: "input-system",
|
|
195
|
+
unity_open_mcp_inputsystem_controlscheme_add: "input-system",
|
|
196
|
+
unity_open_mcp_inputsystem_get: "input-system",
|
|
197
|
+
// M16 Plan 10 / T6.6.5 — ProBuilder extension tools.
|
|
198
|
+
unity_open_mcp_probuilder_create_shape: "probuilder",
|
|
199
|
+
unity_open_mcp_probuilder_get_mesh_info: "probuilder",
|
|
200
|
+
unity_open_mcp_probuilder_extrude: "probuilder",
|
|
201
|
+
unity_open_mcp_probuilder_delete_faces: "probuilder",
|
|
202
|
+
unity_open_mcp_probuilder_set_face_material: "probuilder",
|
|
203
|
+
// M16 Plan 10 / T6.6.9 — Particle System extension tools. Extension pack
|
|
204
|
+
// tools ship tool definitions in the core MCP server (so capabilities
|
|
205
|
+
// advertises the surface) but require the matching extension UPM package
|
|
206
|
+
// installed in the target project for the bridge-side handler to exist.
|
|
207
|
+
unity_open_mcp_particle_system_get: "particle-system",
|
|
208
|
+
unity_open_mcp_particle_system_modify: "particle-system",
|
|
209
|
+
// M16 Plan 10 / T6.6.10 — Animation extension tools (AnimationClip +
|
|
210
|
+
// AnimatorController). Extension pack tools ship tool definitions in the
|
|
211
|
+
// core MCP server (so capabilities advertises the surface) but require the
|
|
212
|
+
// matching extension UPM package installed in the target project for the
|
|
213
|
+
// bridge-side handler to exist.
|
|
214
|
+
unity_open_mcp_animation_create: "animation",
|
|
215
|
+
unity_open_mcp_animation_get_data: "animation",
|
|
216
|
+
unity_open_mcp_animation_modify: "animation",
|
|
217
|
+
unity_open_mcp_animator_create: "animation",
|
|
218
|
+
unity_open_mcp_animator_get_data: "animation",
|
|
219
|
+
unity_open_mcp_animator_modify: "animation",
|
|
220
|
+
// M18 Plan 7 / T18.7.3 — Splines extension tools. First backlog domain
|
|
221
|
+
// shipped under the embedded + grouped model. Compile-gated on
|
|
222
|
+
// com.unity.splines in the bridge; the tool definitions live in core so
|
|
223
|
+
// capabilities discovery advertises the surface even before the package is
|
|
224
|
+
// installed. Mutating members (container_create / add_knot / set_knot /
|
|
225
|
+
// set_tangent_mode / modify) run the full gate path; read-only members
|
|
226
|
+
// (evaluate / get_knots) are gate-free.
|
|
227
|
+
unity_open_mcp_splines_container_create: "splines",
|
|
228
|
+
unity_open_mcp_splines_add_knot: "splines",
|
|
229
|
+
unity_open_mcp_splines_set_knot: "splines",
|
|
230
|
+
unity_open_mcp_splines_set_tangent_mode: "splines",
|
|
231
|
+
unity_open_mcp_splines_evaluate: "splines",
|
|
232
|
+
unity_open_mcp_splines_get_knots: "splines",
|
|
233
|
+
unity_open_mcp_splines_modify: "splines",
|
|
234
|
+
unity_open_mcp_capabilities: "capability-discovery",
|
|
235
|
+
unity_open_mcp_list_rules: "capability-discovery",
|
|
236
|
+
unity_open_mcp_generate_skill: "capability-discovery",
|
|
237
|
+
unity_senses_run_tests: "agent-senses",
|
|
238
|
+
unity_senses_screenshot: "agent-senses",
|
|
239
|
+
// M20 Plan 1 / T20.1.1 — senses parity residual. Two new read-only senses
|
|
240
|
+
// tools extending the screenshot surface.
|
|
241
|
+
unity_senses_screenshot_camera: "agent-senses",
|
|
242
|
+
unity_senses_capture_inline: "agent-senses",
|
|
243
|
+
// M20 Plan 1 / T20.1.2 — EditorWindow capture (Win-only full-fidelity,
|
|
244
|
+
// cross-platform best-effort readback).
|
|
245
|
+
unity_senses_screenshot_window: "agent-senses",
|
|
246
|
+
unity_senses_read_console: "agent-senses",
|
|
247
|
+
unity_senses_profiler_capture: "agent-senses",
|
|
248
|
+
unity_senses_profiler_memory: "agent-senses",
|
|
249
|
+
unity_senses_profiler_rendering: "agent-senses",
|
|
250
|
+
unity_senses_spatial_query: "agent-senses",
|
|
251
|
+
};
|
|
252
|
+
function categoryFor(toolName) {
|
|
253
|
+
return TOOL_CATEGORY[toolName] ?? "other";
|
|
254
|
+
}
|
|
255
|
+
// Generic guidance reused across many planned typed tools.
|
|
256
|
+
const MUTATE_VIA_EXECUTE_CSHARP = "Planned typed surface. Use execute_csharp / invoke_method today.";
|
|
257
|
+
export const PLANNED_TOOLS = [
|
|
258
|
+
// --- Plan 1: Assets -----------------------------------------------------
|
|
259
|
+
// Plan 1 typed tools are now implemented (see mcp-server/src/tools/).
|
|
260
|
+
// The entries that used to live here have been removed; the remaining
|
|
261
|
+
// Plan 1 references (none) live as real Tool definitions.
|
|
262
|
+
// --- Plan 2: GameObject & Components ------------------------------------
|
|
263
|
+
// Plan 2 typed tools are now implemented (see mcp-server/src/tools/).
|
|
264
|
+
// The entries that used to live here have been removed.
|
|
265
|
+
// --- Plan 3: Scene ------------------------------------------------------
|
|
266
|
+
// Plan 3 typed tools are now implemented (see mcp-server/src/tools/).
|
|
267
|
+
// The entries that used to live here have been removed.
|
|
268
|
+
// --- Plan 4: Packages ---------------------------------------------------
|
|
269
|
+
// Plan 4 typed tools are now implemented (see mcp-server/src/tools/).
|
|
270
|
+
// The entries that used to live here have been removed.
|
|
271
|
+
// --- Plan 5: Console + Editor state/selection/tags/layers/undo ----------
|
|
272
|
+
// Plan 5 typed tools are now implemented (see mcp-server/src/tools/).
|
|
273
|
+
// The entries that used to live here have been removed.
|
|
274
|
+
// --- Plan 6: Reflection, scripts, objects -------------------------------
|
|
275
|
+
// Plan 6 typed tools are now implemented (see mcp-server/src/tools/).
|
|
276
|
+
// The entries that used to live here have been removed.
|
|
277
|
+
// --- Plan 7: Profiler session ------------------------------------------
|
|
278
|
+
// Plan 7 typed tools are now implemented (see mcp-server/src/tools/).
|
|
279
|
+
// The entries that used to live here have been removed.
|
|
280
|
+
// --- Plan 8: Gate intelligence -----------------------------------------
|
|
281
|
+
// Plan 8 typed tools are now implemented (see mcp-server/src/tools/).
|
|
282
|
+
// The entries that used to live here have been removed.
|
|
283
|
+
// --- Plan 9: Build & Settings ------------------------------------------
|
|
284
|
+
// Plan 9 typed tools are now implemented (see mcp-server/src/tools/).
|
|
285
|
+
// The entries that used to live here have been removed; the remaining
|
|
286
|
+
// Plan 9 references (none) live as real Tool definitions.
|
|
287
|
+
];
|
|
288
|
+
// ---------------------------------------------------------------------------
|
|
289
|
+
// Capability descriptors
|
|
290
|
+
// ---------------------------------------------------------------------------
|
|
291
|
+
/**
|
|
292
|
+
* Static routing narrative. Mirrors `docs/api/mcp-tools.md` §Route
|
|
293
|
+
* policy + §Batch support + the `BATCH_TOOL_NAMES` / blocked-tool
|
|
294
|
+
* lists in `batch-spawn.ts`. Kept concise; per-tool `batchCapable`
|
|
295
|
+
* flags live on each {@link ToolCapability}.
|
|
296
|
+
*/
|
|
297
|
+
export const ROUTING_SUMMARY = {
|
|
298
|
+
liveDefault: true,
|
|
299
|
+
batchFallback: true,
|
|
300
|
+
batchRequirements: ["UNITY_PATH", "UNITY_PROJECT_PATH"],
|
|
301
|
+
// Mutating meta-tools that need an interactive Editor UI or live
|
|
302
|
+
// compilation; intentionally rejected by the batch entry point.
|
|
303
|
+
batchBlocked: [
|
|
304
|
+
{
|
|
305
|
+
tool: "unity_open_mcp_execute_csharp",
|
|
306
|
+
reason: "Requires a live Editor compile context.",
|
|
307
|
+
},
|
|
308
|
+
{
|
|
309
|
+
tool: "unity_open_mcp_invoke_method",
|
|
310
|
+
reason: "Requires a live Editor reflection context.",
|
|
311
|
+
},
|
|
312
|
+
{
|
|
313
|
+
tool: "unity_open_mcp_execute_menu",
|
|
314
|
+
reason: "Menu execution needs the Editor UI; most menus fail in -batchmode.",
|
|
315
|
+
},
|
|
316
|
+
],
|
|
317
|
+
// Agent senses (screenshots, profiler, console, spatial, run_tests)
|
|
318
|
+
// and gate mutations need a live Editor — they have no batch form.
|
|
319
|
+
liveOnlyCategories: ["agent-senses"],
|
|
320
|
+
perToolFlag: "batchCapable",
|
|
321
|
+
};
|
|
322
|
+
export function buildCapabilities(deps, filter = {}) {
|
|
323
|
+
const includePlanned = filter.includePlanned !== false;
|
|
324
|
+
const implementedTools = deps.tools.map((tool) => ({
|
|
325
|
+
name: tool.name,
|
|
326
|
+
implemented: true,
|
|
327
|
+
status: "implemented",
|
|
328
|
+
category: categoryFor(tool.name),
|
|
329
|
+
description: tool.description ?? "",
|
|
330
|
+
routePolicy: routePolicyFor(tool.name),
|
|
331
|
+
batchCapable: deps.batchToolNames.has(tool.name),
|
|
332
|
+
inputSchema: tool.inputSchema,
|
|
333
|
+
group: groupFor(tool.name),
|
|
334
|
+
}));
|
|
335
|
+
const plannedTools = includePlanned
|
|
336
|
+
? PLANNED_TOOLS.map((p) => ({
|
|
337
|
+
name: p.name,
|
|
338
|
+
implemented: false,
|
|
339
|
+
status: "planned",
|
|
340
|
+
category: p.category,
|
|
341
|
+
description: p.description,
|
|
342
|
+
routePolicy: "live",
|
|
343
|
+
batchCapable: false,
|
|
344
|
+
inputSchema: { type: "object", properties: {} },
|
|
345
|
+
guidance: p.guidance,
|
|
346
|
+
group: groupFor(p.name),
|
|
347
|
+
}))
|
|
348
|
+
: [];
|
|
349
|
+
const tools = [...implementedTools, ...plannedTools];
|
|
350
|
+
const rules = includePlanned
|
|
351
|
+
? deps.rules
|
|
352
|
+
: deps.rules.filter((r) => r.implemented);
|
|
353
|
+
const fixes = includePlanned
|
|
354
|
+
? deps.fixes
|
|
355
|
+
: deps.fixes.filter((f) => f.implemented);
|
|
356
|
+
const toolGroups = buildToolGroups(implementedTools.map((t) => t.name), deps.availableBridgeTools);
|
|
357
|
+
return {
|
|
358
|
+
tools: filter.kind === "rules" || filter.kind === "fixes" ? [] : tools,
|
|
359
|
+
rules: filter.kind === "tools" || filter.kind === "fixes" ? [] : rules,
|
|
360
|
+
fixes: filter.kind === "tools" || filter.kind === "rules" ? [] : fixes,
|
|
361
|
+
// toolGroups is independent of the kind filter — agents that ask for
|
|
362
|
+
// `kind: "rules"` still benefit from the group catalog.
|
|
363
|
+
toolGroups,
|
|
364
|
+
counts: {
|
|
365
|
+
toolsImplemented: implementedTools.length,
|
|
366
|
+
toolsPlanned: plannedTools.length,
|
|
367
|
+
rulesImplemented: deps.rules.filter((r) => r.implemented).length,
|
|
368
|
+
rulesPlanned: includePlanned
|
|
369
|
+
? deps.rules.filter((r) => !r.implemented).length
|
|
370
|
+
: 0,
|
|
371
|
+
fixesImplemented: deps.fixes.filter((f) => f.implemented).length,
|
|
372
|
+
fixesPlanned: includePlanned
|
|
373
|
+
? deps.fixes.filter((f) => !f.implemented).length
|
|
374
|
+
: 0,
|
|
375
|
+
toolGroupsDefaultEnabled: TOOL_GROUPS.filter((g) => g.defaultEnabled).length,
|
|
376
|
+
toolGroupsTotal: TOOL_GROUPS.length,
|
|
377
|
+
},
|
|
378
|
+
// The routing summary is independent of the kind filter — agents
|
|
379
|
+
// that ask for `kind: "rules"` still benefit from the routing
|
|
380
|
+
// narrative. It is constant, so no per-call computation.
|
|
381
|
+
routing: ROUTING_SUMMARY,
|
|
382
|
+
};
|
|
383
|
+
}
|
|
384
|
+
// ---------------------------------------------------------------------------
|
|
385
|
+
// M18 Plan 2 / T18.2.3 — build the toolGroups catalog block (compiled-state
|
|
386
|
+
// only). Per-session activation lives in manage_tools; this surface reports
|
|
387
|
+
// what compiled in, not what is currently active.
|
|
388
|
+
// ---------------------------------------------------------------------------
|
|
389
|
+
function buildToolGroups(implementedToolNames, availableBridgeTools) {
|
|
390
|
+
// Bucket the implemented tool names by group. groupFor returns null for
|
|
391
|
+
// meta-tools; those are intentionally absent from any group block.
|
|
392
|
+
const toolsByGroup = new Map();
|
|
393
|
+
for (const name of implementedToolNames) {
|
|
394
|
+
const g = groupFor(name);
|
|
395
|
+
if (g === null)
|
|
396
|
+
continue;
|
|
397
|
+
const list = toolsByGroup.get(g) ?? [];
|
|
398
|
+
list.push(name);
|
|
399
|
+
toolsByGroup.set(g, list);
|
|
400
|
+
}
|
|
401
|
+
return TOOL_GROUPS.map((g) => {
|
|
402
|
+
const tools = (toolsByGroup.get(g.id) ?? []).slice().sort();
|
|
403
|
+
return buildOneGroup(g, tools, availableBridgeTools);
|
|
404
|
+
});
|
|
405
|
+
}
|
|
406
|
+
function buildOneGroup(group, tools, availableBridgeTools) {
|
|
407
|
+
// No domainDefine → the group is always compiled in (core, gate-and-verify,
|
|
408
|
+
// typed-editor, etc.).
|
|
409
|
+
if (!group.domainDefine) {
|
|
410
|
+
return {
|
|
411
|
+
id: group.id,
|
|
412
|
+
description: group.description,
|
|
413
|
+
defaultEnabled: group.defaultEnabled,
|
|
414
|
+
toolCount: tools.length,
|
|
415
|
+
tools,
|
|
416
|
+
available: true,
|
|
417
|
+
availableReason: null,
|
|
418
|
+
unityPackage: null,
|
|
419
|
+
domainDefine: null,
|
|
420
|
+
usageHint: buildUsageHint(group),
|
|
421
|
+
};
|
|
422
|
+
}
|
|
423
|
+
// Domain-gated group. The bridge signals whether the domain compiled in by
|
|
424
|
+
// exposing (or not) the group's tool names in its compiled-tool set. When
|
|
425
|
+
// availableBridgeTools is undefined (bridge offline on a local capability
|
|
426
|
+
// call), availability is unknown — the agent is directed at manage_tools
|
|
427
|
+
// (which probes the live bridge) for the authoritative answer.
|
|
428
|
+
if (availableBridgeTools === undefined) {
|
|
429
|
+
return {
|
|
430
|
+
id: group.id,
|
|
431
|
+
description: group.description,
|
|
432
|
+
defaultEnabled: group.defaultEnabled,
|
|
433
|
+
toolCount: tools.length,
|
|
434
|
+
tools,
|
|
435
|
+
available: null,
|
|
436
|
+
availableReason: "Bridge offline — compiled-state availability unknown. Call " +
|
|
437
|
+
"manage_tools(action=\"list_groups\") when the bridge is up, or " +
|
|
438
|
+
"install the Unity package to make the group compile in.",
|
|
439
|
+
unityPackage: group.unityPackage ?? null,
|
|
440
|
+
domainDefine: group.domainDefine,
|
|
441
|
+
usageHint: buildUsageHint(group),
|
|
442
|
+
};
|
|
443
|
+
}
|
|
444
|
+
// Bridge reachable — infer availability from whether any of the group's
|
|
445
|
+
// compiled-in tool names appear in the bridge tool set. A single tool
|
|
446
|
+
// present is enough; we don't need every tool (the bridge may have
|
|
447
|
+
// disabled one via toggle policy).
|
|
448
|
+
const anyToolCompiledIn = tools.length === 0 ? false : tools.some((t) => availableBridgeTools.has(t));
|
|
449
|
+
return {
|
|
450
|
+
id: group.id,
|
|
451
|
+
description: group.description,
|
|
452
|
+
defaultEnabled: group.defaultEnabled,
|
|
453
|
+
toolCount: tools.length,
|
|
454
|
+
tools,
|
|
455
|
+
available: anyToolCompiledIn,
|
|
456
|
+
availableReason: anyToolCompiledIn
|
|
457
|
+
? null
|
|
458
|
+
: `Unity package '${group.unityPackage}' not installed — the bridge ` +
|
|
459
|
+
`did not compile the ${group.domainDefine} domain. Install the ` +
|
|
460
|
+
`package to make the group's tools available.`,
|
|
461
|
+
unityPackage: group.unityPackage ?? null,
|
|
462
|
+
domainDefine: group.domainDefine,
|
|
463
|
+
usageHint: buildUsageHint(group),
|
|
464
|
+
};
|
|
465
|
+
}
|
|
466
|
+
function buildUsageHint(group) {
|
|
467
|
+
if (group.defaultEnabled) {
|
|
468
|
+
return ("Default-on group. Its tools are visible in a fresh session without " +
|
|
469
|
+
"calling manage_tools.");
|
|
470
|
+
}
|
|
471
|
+
return (`Call unity_open_mcp_manage_tools(action=\"activate\", group=\"${group.id}\") ` +
|
|
472
|
+
"before invoking this group's tools — fresh sessions start with only " +
|
|
473
|
+
"`core` enabled.");
|
|
474
|
+
}
|
|
475
|
+
//# sourceMappingURL=build-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-capabilities.js","sourceRoot":"","sources":["../../src/capabilities/build-capabilities.ts"],"names":[],"mappings":"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"}
|