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 @@
|
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/cli/args.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export interface CliRunOptions {
|
|
2
|
+
/** Package version, used by --version. */
|
|
3
|
+
version: string;
|
|
4
|
+
/** Invocation name for help text (e.g. "unity-open-mcp"). */
|
|
5
|
+
binName?: string;
|
|
6
|
+
/** argv after the node binary + script path. Defaults to process.argv.slice(2). */
|
|
7
|
+
argv?: string[];
|
|
8
|
+
}
|
|
9
|
+
export interface CliRunOutcome {
|
|
10
|
+
/** True when argv recognized a CLI subcommand (or --help/--version). */
|
|
11
|
+
handled: boolean;
|
|
12
|
+
/** Process exit code; only meaningful when handled === true. */
|
|
13
|
+
exitCode: number;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Run the CLI. Returns whether the invocation was a CLI subcommand (handled)
|
|
17
|
+
* so index.ts can decide whether to fall through to the stdio server.
|
|
18
|
+
*
|
|
19
|
+
* This function writes to stdout/stderr itself and is meant to be the top of
|
|
20
|
+
* the process. It does NOT call process.exit — the caller does, so tests can
|
|
21
|
+
* drive it without tearing down the test runner.
|
|
22
|
+
*/
|
|
23
|
+
export declare function runCli(opts: CliRunOptions): Promise<CliRunOutcome>;
|
package/dist/cli/cli.js
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
// M15 T6.1 — CLI dispatcher.
|
|
2
|
+
//
|
|
3
|
+
// This module is the entry point for `unity-open-mcp <command>`. It:
|
|
4
|
+
// 1. parses argv (src/cli/args.ts)
|
|
5
|
+
// 2. builds the shared router stack (src/routers.ts)
|
|
6
|
+
// 3. dispatches to the right command (src/cli/commands.ts)
|
|
7
|
+
// 4. prints JSON or human-readable output and sets the exit code
|
|
8
|
+
//
|
|
9
|
+
// When argv[0] is NOT a known subcommand, runCli returns null — the caller
|
|
10
|
+
// (index.ts) then falls through to the stdio MCP server. That keeps a single
|
|
11
|
+
// `bin` working for both `npx unity-open-mcp wait-for-ready` and an MCP client
|
|
12
|
+
// spawning `node dist/index.js`.
|
|
13
|
+
import { parseCliArgs } from "./args.js";
|
|
14
|
+
import { runPingCommand, runWaitForReadyCommand, runStatusCommand, runRunToolCommand, helpText, versionText, DEFAULT_WAIT_TIMEOUT_MS, DEFAULT_POLL_INTERVAL_MS, } from "./commands.js";
|
|
15
|
+
import { resolveEnv, buildRouterStack, ResolveEnvError, } from "../routers.js";
|
|
16
|
+
const PING_DEFAULT_TIMEOUT_MS = 5_000;
|
|
17
|
+
/**
|
|
18
|
+
* Run the CLI. Returns whether the invocation was a CLI subcommand (handled)
|
|
19
|
+
* so index.ts can decide whether to fall through to the stdio server.
|
|
20
|
+
*
|
|
21
|
+
* This function writes to stdout/stderr itself and is meant to be the top of
|
|
22
|
+
* the process. It does NOT call process.exit — the caller does, so tests can
|
|
23
|
+
* drive it without tearing down the test runner.
|
|
24
|
+
*/
|
|
25
|
+
export async function runCli(opts) {
|
|
26
|
+
const argv = opts.argv ?? process.argv.slice(2);
|
|
27
|
+
const parsed = parseCliArgs(argv);
|
|
28
|
+
const binName = opts.binName ?? "unity-open-mcp";
|
|
29
|
+
// --help / --version short-circuit before any project-path requirement.
|
|
30
|
+
if (parsed.command === "help") {
|
|
31
|
+
process.stdout.write(helpText(binName) + "\n");
|
|
32
|
+
return { handled: true, exitCode: 0 };
|
|
33
|
+
}
|
|
34
|
+
if (parsed.command === "version") {
|
|
35
|
+
process.stdout.write(versionText(opts.version) + "\n");
|
|
36
|
+
return { handled: true, exitCode: 0 };
|
|
37
|
+
}
|
|
38
|
+
// No command → caller falls through to the MCP server.
|
|
39
|
+
if (!parsed.command) {
|
|
40
|
+
return { handled: false, exitCode: 0 };
|
|
41
|
+
}
|
|
42
|
+
if (parsed.error) {
|
|
43
|
+
process.stderr.write(`unity-open-mcp: ${parsed.error}\n\n`);
|
|
44
|
+
process.stderr.write(helpText(binName) + "\n");
|
|
45
|
+
return { handled: true, exitCode: 2 };
|
|
46
|
+
}
|
|
47
|
+
// Build the router stack. Every command needs a project path + resolved
|
|
48
|
+
// bridge port.
|
|
49
|
+
let stack;
|
|
50
|
+
try {
|
|
51
|
+
const env = resolveEnv(parsed.projectPath, parsed.port);
|
|
52
|
+
logResolve(env.port, env.projectPath, env.authToken);
|
|
53
|
+
stack = buildRouterStack(env);
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
if (err instanceof ResolveEnvError) {
|
|
57
|
+
process.stderr.write(`unity-open-mcp: ${err.message}\n`);
|
|
58
|
+
return { handled: true, exitCode: 2 };
|
|
59
|
+
}
|
|
60
|
+
throw err;
|
|
61
|
+
}
|
|
62
|
+
let result;
|
|
63
|
+
try {
|
|
64
|
+
switch (parsed.command) {
|
|
65
|
+
case "ping":
|
|
66
|
+
result = await runPingCommand(stack, {
|
|
67
|
+
json: parsed.json,
|
|
68
|
+
timeoutMs: parsed.timeoutMs ?? PING_DEFAULT_TIMEOUT_MS,
|
|
69
|
+
});
|
|
70
|
+
break;
|
|
71
|
+
case "wait-for-ready":
|
|
72
|
+
result = await runWaitForReadyCommand(stack, {
|
|
73
|
+
json: parsed.json,
|
|
74
|
+
timeoutMs: parsed.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS,
|
|
75
|
+
intervalMs: parsed.intervalMs ?? DEFAULT_POLL_INTERVAL_MS,
|
|
76
|
+
});
|
|
77
|
+
break;
|
|
78
|
+
case "status":
|
|
79
|
+
result = await runStatusCommand(stack, { json: parsed.json });
|
|
80
|
+
break;
|
|
81
|
+
case "run-tool":
|
|
82
|
+
result = await runRunToolCommand(stack, {
|
|
83
|
+
json: parsed.json,
|
|
84
|
+
toolName: parsed.toolName,
|
|
85
|
+
toolArgs: parsed.toolArgs,
|
|
86
|
+
});
|
|
87
|
+
break;
|
|
88
|
+
default:
|
|
89
|
+
// Unreachable: parsed.command is one of the cases above or help/version.
|
|
90
|
+
process.stderr.write(`unity-open-mcp: internal error — unhandled command '${parsed.command}'.\n`);
|
|
91
|
+
return { handled: true, exitCode: 2 };
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
finally {
|
|
95
|
+
// The event stream opens an SSE reader; tear it down so the process can
|
|
96
|
+
// exit cleanly. (run-tool may have started a subscription via pull_events.)
|
|
97
|
+
try {
|
|
98
|
+
stack.eventStream.stop();
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// best-effort
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
emitResult(result, parsed.json);
|
|
105
|
+
return { handled: true, exitCode: result.exitCode };
|
|
106
|
+
}
|
|
107
|
+
function logResolve(port, projectPath, authToken) {
|
|
108
|
+
// Match the stdio server's startup log shape so `status`/logs look the same
|
|
109
|
+
// regardless of how the process was launched.
|
|
110
|
+
process.stderr.write(`[unity-open-mcp] Bridge port resolved to ${port} for project ${projectPath}\n`);
|
|
111
|
+
if (authToken) {
|
|
112
|
+
process.stderr.write("[unity-open-mcp] Bridge auth token discovered from instance lock.\n");
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
function emitResult(result, json) {
|
|
116
|
+
const stream = result.exitCode === 0 ? process.stdout : process.stderr;
|
|
117
|
+
if (json) {
|
|
118
|
+
process.stdout.write(JSON.stringify(result.json, null, 2) + "\n");
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
// Human-readable: keep success on stdout, failures on stderr so a CI pipeline
|
|
122
|
+
// can capture the message without mixing it into stdout JSON downstream.
|
|
123
|
+
stream.write(result.human + "\n");
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli/cli.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,qEAAqE;AACrE,qCAAqC;AACrC,uDAAuD;AACvD,6DAA6D;AAC7D,mEAAmE;AACnE,EAAE;AACF,2EAA2E;AAC3E,6EAA6E;AAC7E,+EAA+E;AAC/E,iCAAiC;AAEjC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,QAAQ,EACR,WAAW,EACX,uBAAuB,EACvB,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,eAAe,GAEhB,MAAM,eAAe,CAAC;AAEvB,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAkBtC;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,IAAmB;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC;IAEjD,wEAAwE;IACxE,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;QAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,uDAAuD;IACvD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACzC,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,MAAM,CAAC,KAAK,MAAM,CAAC,CAAC;QAC5D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IACxC,CAAC;IAED,wEAAwE;IACxE,eAAe;IACf,IAAI,KAAkB,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACxD,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,eAAe,EAAE,CAAC;YACnC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;YACzD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACxC,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;IAED,IAAI,MAAwB,CAAC;IAC7B,IAAI,CAAC;QACH,QAAQ,MAAM,CAAC,OAAO,EAAE,CAAC;YACvB,KAAK,MAAM;gBACT,MAAM,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE;oBACnC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,uBAAuB;iBACvD,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,gBAAgB;gBACnB,MAAM,GAAG,MAAM,sBAAsB,CAAC,KAAK,EAAE;oBAC3C,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,uBAAuB;oBACtD,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,wBAAwB;iBAC1D,CAAC,CAAC;gBACH,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC9D,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,GAAG,MAAM,iBAAiB,CAAC,KAAK,EAAE;oBACtC,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,QAAQ,EAAE,MAAM,CAAC,QAAS;oBAC1B,QAAQ,EAAE,MAAM,CAAC,QAAQ;iBAC1B,CAAC,CAAC;gBACH,MAAM;YACR;gBACE,yEAAyE;gBACzE,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uDAAuD,MAAM,CAAC,OAAO,MAAM,CAC5E,CAAC;gBACF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC1C,CAAC;IACH,CAAC;YAAS,CAAC;QACT,wEAAwE;QACxE,4EAA4E;QAC5E,IAAI,CAAC;YACH,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC;IAED,UAAU,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;AACtD,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,WAAmB,EAAE,SAA6B;IAClF,4EAA4E;IAC5E,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,4CAA4C,IAAI,gBAAgB,WAAW,IAAI,CAChF,CAAC;IACF,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;IAC9F,CAAC;AACH,CAAC;AAED,SAAS,UAAU,CAAC,MAAwB,EAAE,IAAa;IACzD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;IACvE,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAClE,OAAO;IACT,CAAC;IACD,8EAA8E;IAC9E,yEAAyE;IACzE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;AACpC,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { RouterStack } from "../routers.js";
|
|
2
|
+
import { DEFAULT_WAIT_TIMEOUT_MS, DEFAULT_POLL_INTERVAL_MS } from "./ping-poller.js";
|
|
3
|
+
export interface CliCommandResult {
|
|
4
|
+
/** Process exit code. 0 = success, non-zero = failure. */
|
|
5
|
+
exitCode: number;
|
|
6
|
+
/** JSON-serializable payload. Always populated — `--json` prints it verbatim. */
|
|
7
|
+
json: unknown;
|
|
8
|
+
/** Human-readable multi-line summary; printed when --json is NOT set. */
|
|
9
|
+
human: string;
|
|
10
|
+
/** Optional structured error label (e.g. "unknown_tool") surfaced in JSON. */
|
|
11
|
+
errorLabel?: string;
|
|
12
|
+
}
|
|
13
|
+
export interface PingCommandOptions {
|
|
14
|
+
json: boolean;
|
|
15
|
+
timeoutMs: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function runPingCommand(stack: RouterStack, opts: PingCommandOptions): Promise<CliCommandResult>;
|
|
18
|
+
export interface WaitForReadyCommandOptions {
|
|
19
|
+
json: boolean;
|
|
20
|
+
timeoutMs: number;
|
|
21
|
+
intervalMs: number;
|
|
22
|
+
}
|
|
23
|
+
export declare function runWaitForReadyCommand(stack: RouterStack, opts: WaitForReadyCommandOptions): Promise<CliCommandResult>;
|
|
24
|
+
export interface StatusCommandOptions {
|
|
25
|
+
json: boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare function runStatusCommand(stack: RouterStack, _opts: StatusCommandOptions): Promise<CliCommandResult>;
|
|
28
|
+
export interface RunToolCommandOptions {
|
|
29
|
+
json: boolean;
|
|
30
|
+
toolName: string;
|
|
31
|
+
/** Raw caller args (before schema defaults). */
|
|
32
|
+
toolArgs: Record<string, unknown>;
|
|
33
|
+
}
|
|
34
|
+
export declare function runRunToolCommand(stack: RouterStack, opts: RunToolCommandOptions): Promise<CliCommandResult>;
|
|
35
|
+
export declare function helpText(binName: string): string;
|
|
36
|
+
export declare function versionText(version: string): string;
|
|
37
|
+
export { DEFAULT_WAIT_TIMEOUT_MS, DEFAULT_POLL_INTERVAL_MS, };
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
// M15 T6.1 — CLI command implementations.
|
|
2
|
+
//
|
|
3
|
+
// Each command is a plain async function returning a CliCommandResult. The
|
|
4
|
+
// dispatcher (cli.ts) owns stdout/stderr/exit-code; the commands are pure and
|
|
5
|
+
// therefore unit-testable. Commands always produce JSON-shaped data; the
|
|
6
|
+
// `--json` flag toggles whether the dispatcher prints that JSON verbatim or
|
|
7
|
+
// renders a human-readable summary.
|
|
8
|
+
//
|
|
9
|
+
// Commands share the same router stack the MCP server uses (buildRouterStack),
|
|
10
|
+
// so a `run-tool` call returns byte-for-byte the same JSON an MCP client would
|
|
11
|
+
// receive — that parity is the primary acceptance criterion of T6.1.
|
|
12
|
+
import { ALL_TOOLS } from "../tools/index.js";
|
|
13
|
+
import { withSchemaDefaults } from "../schema-defaults.js";
|
|
14
|
+
import { readInstanceLock, classifyInstance, lockPath, } from "../instance-discovery.js";
|
|
15
|
+
import { pollUntilReady, singlePing, DEFAULT_WAIT_TIMEOUT_MS, DEFAULT_POLL_INTERVAL_MS, PING_FETCH_TIMEOUT_MS, } from "./ping-poller.js";
|
|
16
|
+
import { checkBridgeCompat } from "../compat.js";
|
|
17
|
+
const TOOL_BY_NAME = new Map(ALL_TOOLS.map((t) => [t.name, t]));
|
|
18
|
+
export async function runPingCommand(stack, opts) {
|
|
19
|
+
const poll = await singlePing(stack.live, opts.timeoutMs);
|
|
20
|
+
const json = {
|
|
21
|
+
command: "ping",
|
|
22
|
+
baseUrl: `http://127.0.0.1:${stack.port}`,
|
|
23
|
+
status: poll.status,
|
|
24
|
+
ready: poll.status === "ready",
|
|
25
|
+
body: poll.body,
|
|
26
|
+
};
|
|
27
|
+
if (poll.status === "ready" && poll.body) {
|
|
28
|
+
return {
|
|
29
|
+
exitCode: 0,
|
|
30
|
+
json,
|
|
31
|
+
human: formatPingHuman(stack.port, poll.body),
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const reason = poll.status === "compiling"
|
|
35
|
+
? "Bridge is reachable but Unity is compiling."
|
|
36
|
+
: poll.status === "offline"
|
|
37
|
+
? `Bridge is not reachable at http://127.0.0.1:${stack.port}.`
|
|
38
|
+
: `Ping failed (${poll.status}).`;
|
|
39
|
+
return {
|
|
40
|
+
exitCode: 1,
|
|
41
|
+
json,
|
|
42
|
+
human: reason,
|
|
43
|
+
errorLabel: poll.status,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
function formatPingHuman(port, body) {
|
|
47
|
+
const lines = [
|
|
48
|
+
`Bridge: http://127.0.0.1:${port}`,
|
|
49
|
+
`connected: ${body.connected ?? "unknown"}`,
|
|
50
|
+
`compiling: ${body.compiling ?? "unknown"}`,
|
|
51
|
+
`isPlaying: ${body.isPlaying ?? "unknown"}`,
|
|
52
|
+
];
|
|
53
|
+
if (body.unityVersion)
|
|
54
|
+
lines.push(`unityVersion: ${body.unityVersion}`);
|
|
55
|
+
if (body.bridgeVersion)
|
|
56
|
+
lines.push(`bridgeVersion: ${body.bridgeVersion}`);
|
|
57
|
+
if (body.projectPath)
|
|
58
|
+
lines.push(`projectPath: ${body.projectPath}`);
|
|
59
|
+
if (body.mode)
|
|
60
|
+
lines.push(`mode: ${body.mode}`);
|
|
61
|
+
return lines.join("\n");
|
|
62
|
+
}
|
|
63
|
+
export async function runWaitForReadyCommand(stack, opts) {
|
|
64
|
+
const outcome = await pollUntilReady(stack.live, stack.projectPath, (live) => singlePing(live, PING_FETCH_TIMEOUT_MS), {
|
|
65
|
+
timeoutMs: opts.timeoutMs,
|
|
66
|
+
intervalMs: opts.intervalMs,
|
|
67
|
+
});
|
|
68
|
+
const json = {
|
|
69
|
+
command: "wait-for-ready",
|
|
70
|
+
ready: outcome.ready,
|
|
71
|
+
status: outcome.status,
|
|
72
|
+
elapsedMs: outcome.elapsedMs,
|
|
73
|
+
reason: outcome.reason,
|
|
74
|
+
lastPing: outcome.lastPing,
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
exitCode: outcome.ready ? 0 : 1,
|
|
78
|
+
json,
|
|
79
|
+
human: outcome.reason,
|
|
80
|
+
errorLabel: outcome.ready ? undefined : outcome.status,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export async function runStatusCommand(stack, _opts) {
|
|
84
|
+
const lockPathOnDisk = lockPath(stack.projectPath);
|
|
85
|
+
const lock = readInstanceLock(stack.projectPath);
|
|
86
|
+
const classification = classifyInstance(lock);
|
|
87
|
+
// Cheap readiness probe — one /ping, no compile-wait.
|
|
88
|
+
const poll = await singlePing(stack.live, PING_FETCH_TIMEOUT_MS);
|
|
89
|
+
// Advisory version-compat between this CLI/server and the running bridge.
|
|
90
|
+
// Computed from the bridge's reported bridgeVersion; ok=false means the pair
|
|
91
|
+
// is considered incompatible (pre-1.0: minor differs). The status command
|
|
92
|
+
// never hard-fails on this — it just surfaces the line so operators see drift.
|
|
93
|
+
const compat = poll.body?.bridgeVersion !== undefined && poll.body?.bridgeVersion !== null
|
|
94
|
+
? checkBridgeCompat(String(poll.body.bridgeVersion))
|
|
95
|
+
: null;
|
|
96
|
+
const json = {
|
|
97
|
+
command: "status",
|
|
98
|
+
projectPath: stack.projectPath,
|
|
99
|
+
port: stack.port,
|
|
100
|
+
baseUrl: `http://127.0.0.1:${stack.port}`,
|
|
101
|
+
authTokenDiscovered: stack.authToken !== undefined,
|
|
102
|
+
instance: {
|
|
103
|
+
lockPath: lockPathOnDisk,
|
|
104
|
+
classification,
|
|
105
|
+
lock: lock ? summarizeLock(lock) : null,
|
|
106
|
+
},
|
|
107
|
+
bridge: {
|
|
108
|
+
status: poll.status,
|
|
109
|
+
ready: poll.status === "ready",
|
|
110
|
+
body: poll.body,
|
|
111
|
+
},
|
|
112
|
+
compat: compat
|
|
113
|
+
? {
|
|
114
|
+
ok: compat.ok,
|
|
115
|
+
serverVersion: compat.serverVersion,
|
|
116
|
+
bridgeVersion: compat.bridgeVersion,
|
|
117
|
+
message: compat.message,
|
|
118
|
+
}
|
|
119
|
+
: null,
|
|
120
|
+
};
|
|
121
|
+
return {
|
|
122
|
+
exitCode: 0,
|
|
123
|
+
json,
|
|
124
|
+
human: formatStatusHuman(json),
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function summarizeLock(lock) {
|
|
128
|
+
return {
|
|
129
|
+
pid: lock.pid,
|
|
130
|
+
port: lock.port,
|
|
131
|
+
state: lock.state,
|
|
132
|
+
isCompiling: lock.isCompiling,
|
|
133
|
+
isPlaying: lock.isPlaying,
|
|
134
|
+
heartbeatAt: lock.heartbeatAt,
|
|
135
|
+
bridgeVersion: lock.bridgeVersion,
|
|
136
|
+
unityVersion: lock.unityVersion,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function formatStatusHuman(json) {
|
|
140
|
+
const lines = [
|
|
141
|
+
`Project: ${json.projectPath}`,
|
|
142
|
+
`Bridge: ${json.baseUrl}`,
|
|
143
|
+
`Auth: ${json.authTokenDiscovered ? "token discovered (sent as Bearer)" : "no token (authMode must be 'none')"}`,
|
|
144
|
+
`Instance: ${json.instance.classification}`,
|
|
145
|
+
`Bridge: ${json.bridge.status}${json.bridge.ready ? " (ready)" : ""}`,
|
|
146
|
+
];
|
|
147
|
+
const body = json.bridge.body;
|
|
148
|
+
if (body) {
|
|
149
|
+
if (body.unityVersion)
|
|
150
|
+
lines.push(`Unity: ${body.unityVersion}`);
|
|
151
|
+
if (body.bridgeVersion)
|
|
152
|
+
lines.push(`Bridge ver: ${body.bridgeVersion}`);
|
|
153
|
+
if (body.compiling)
|
|
154
|
+
lines.push(`State: compiling`);
|
|
155
|
+
if (body.isPlaying)
|
|
156
|
+
lines.push(`Playmode: playing`);
|
|
157
|
+
}
|
|
158
|
+
if (json.compat) {
|
|
159
|
+
const tag = json.compat.ok
|
|
160
|
+
? json.compat.message
|
|
161
|
+
? "ok (drift)"
|
|
162
|
+
: "ok"
|
|
163
|
+
: "WARN";
|
|
164
|
+
lines.push(`Compat: ${tag} (server ${json.compat.serverVersion} / bridge ${json.compat.bridgeVersion})`);
|
|
165
|
+
}
|
|
166
|
+
return lines.join("\n");
|
|
167
|
+
}
|
|
168
|
+
export async function runRunToolCommand(stack, opts) {
|
|
169
|
+
const tool = TOOL_BY_NAME.get(opts.toolName);
|
|
170
|
+
if (!tool) {
|
|
171
|
+
const json = {
|
|
172
|
+
command: "run-tool",
|
|
173
|
+
tool: opts.toolName,
|
|
174
|
+
error: {
|
|
175
|
+
code: "unknown_tool",
|
|
176
|
+
message: `Unknown tool '${opts.toolName}'.`,
|
|
177
|
+
available: ALL_TOOLS.map((t) => t.name),
|
|
178
|
+
},
|
|
179
|
+
};
|
|
180
|
+
return {
|
|
181
|
+
exitCode: 2,
|
|
182
|
+
json,
|
|
183
|
+
human: `Unknown tool '${opts.toolName}'.\n` +
|
|
184
|
+
`Available tools (${ALL_TOOLS.length}):\n` +
|
|
185
|
+
wrapList(ALL_TOOLS.map((t) => t.name)),
|
|
186
|
+
errorLabel: "unknown_tool",
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
// Apply the same schema-default injection the MCP server's CallTool handler
|
|
190
|
+
// does (index.ts). Without this, a CLI caller omitting timeout_ms would get
|
|
191
|
+
// a different default than an MCP client — parity requires it.
|
|
192
|
+
const routedArgs = withSchemaDefaults(tool, opts.toolArgs);
|
|
193
|
+
const result = await stack.router.route(opts.toolName, routedArgs);
|
|
194
|
+
const body = extractResultBody(result);
|
|
195
|
+
const isError = result.isError === true;
|
|
196
|
+
const json = {
|
|
197
|
+
command: "run-tool",
|
|
198
|
+
tool: opts.toolName,
|
|
199
|
+
isError,
|
|
200
|
+
result: body,
|
|
201
|
+
};
|
|
202
|
+
const human = formatRunToolHuman(opts.toolName, isError, body);
|
|
203
|
+
return {
|
|
204
|
+
exitCode: isError ? 1 : 0,
|
|
205
|
+
json,
|
|
206
|
+
human,
|
|
207
|
+
errorLabel: isError ? "tool_error" : undefined,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function extractResultBody(result) {
|
|
211
|
+
const first = result.content[0];
|
|
212
|
+
if (!first || first.type !== "text" || typeof first.text !== "string") {
|
|
213
|
+
return result;
|
|
214
|
+
}
|
|
215
|
+
try {
|
|
216
|
+
return JSON.parse(first.text);
|
|
217
|
+
}
|
|
218
|
+
catch {
|
|
219
|
+
return first.text;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
function formatRunToolHuman(toolName, isError, body) {
|
|
223
|
+
const head = `${toolName}: ${isError ? "ERROR" : "ok"}`;
|
|
224
|
+
const bodyStr = typeof body === "string" ? body : JSON.stringify(body, null, 2);
|
|
225
|
+
return `${head}\n${bodyStr}`;
|
|
226
|
+
}
|
|
227
|
+
function wrapList(items, perLine = 4) {
|
|
228
|
+
const out = [];
|
|
229
|
+
for (let i = 0; i < items.length; i += perLine) {
|
|
230
|
+
out.push(" " + items.slice(i, i + perLine).join(", "));
|
|
231
|
+
}
|
|
232
|
+
return out.join("\n");
|
|
233
|
+
}
|
|
234
|
+
// ---------------------------------------------------------------------------
|
|
235
|
+
// help / version
|
|
236
|
+
// ---------------------------------------------------------------------------
|
|
237
|
+
export function helpText(binName) {
|
|
238
|
+
return [
|
|
239
|
+
`Usage: ${binName} <command> [options]`,
|
|
240
|
+
"",
|
|
241
|
+
"Thin CLI for Unity Open MCP — wraps the MCP server for CI / scripting.",
|
|
242
|
+
"When invoked with no command, runs the stdio MCP server (MCP client mode).",
|
|
243
|
+
"",
|
|
244
|
+
"Commands:",
|
|
245
|
+
" ping One /ping against the bridge; exit 0 if ready.",
|
|
246
|
+
" wait-for-ready Poll /ping until the bridge is ready; exit 0/non-zero.",
|
|
247
|
+
" status Show resolved bridge port, instance lock, and readiness.",
|
|
248
|
+
" run-tool <name> Invoke an MCP tool by name; print its JSON result.",
|
|
249
|
+
" --help, -h Show this help.",
|
|
250
|
+
" --version, -V Print the package version.",
|
|
251
|
+
"",
|
|
252
|
+
"Options:",
|
|
253
|
+
" --json Emit JSON instead of human-readable output (all commands).",
|
|
254
|
+
" --project <path>, -P <path> Unity project path (default: UNITY_PROJECT_PATH).",
|
|
255
|
+
" --port <n>, -p <n> Bridge port override (default: UNITY_OPEN_MCP_BRIDGE_PORT).",
|
|
256
|
+
" --timeout-ms <n> Ping / wait-for-ready timeout in ms.",
|
|
257
|
+
" --interval-ms <n> wait-for-ready poll interval in ms.",
|
|
258
|
+
" --args '<json>' JSON object of tool args (run-tool).",
|
|
259
|
+
" --arg key=value One tool arg (run-tool, repeatable; JSON-parsed if valid).",
|
|
260
|
+
"",
|
|
261
|
+
"Environment:",
|
|
262
|
+
" UNITY_PROJECT_PATH Required for every command.",
|
|
263
|
+
" UNITY_OPEN_MCP_BRIDGE_PORT Optional port override.",
|
|
264
|
+
" UNITY_PATH Unity Editor executable for batch-only tools.",
|
|
265
|
+
"",
|
|
266
|
+
"Examples:",
|
|
267
|
+
` ${binName} wait-for-ready`,
|
|
268
|
+
` ${binName} run-tool unity_open_mcp_ping --json`,
|
|
269
|
+
` ${binName} run-tool unity_open_mcp_list_assets --arg folder=Assets --arg max_per_folder=10`,
|
|
270
|
+
` ${binName} status --json`,
|
|
271
|
+
].join("\n");
|
|
272
|
+
}
|
|
273
|
+
export function versionText(version) {
|
|
274
|
+
return `unity-open-mcp ${version}`;
|
|
275
|
+
}
|
|
276
|
+
export { DEFAULT_WAIT_TIMEOUT_MS, DEFAULT_POLL_INTERVAL_MS, };
|
|
277
|
+
//# sourceMappingURL=commands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,EAAE;AACF,2EAA2E;AAC3E,8EAA8E;AAC9E,yEAAyE;AACzE,4EAA4E;AAC5E,oCAAoC;AACpC,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,qEAAqE;AAIrE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,GAGT,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,cAAc,EACd,UAAU,EACV,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GAGtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAajD,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAWhE,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,KAAkB,EAClB,IAAwB;IAExB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,MAAM;QACf,OAAO,EAAE,oBAAoB,KAAK,CAAC,IAAI,EAAE;QACzC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO;QAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;KAChB,CAAC;IAEF,IAAI,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACzC,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,IAAI;YACJ,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC;SAC9C,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GACV,IAAI,CAAC,MAAM,KAAK,WAAW;QACzB,CAAC,CAAC,6CAA6C;QAC/C,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS;YACzB,CAAC,CAAC,+CAA+C,KAAK,CAAC,IAAI,GAAG;YAC9D,CAAC,CAAC,gBAAgB,IAAI,CAAC,MAAM,IAAI,CAAC;IACxC,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,IAAI;QACJ,KAAK,EAAE,MAAM;QACb,UAAU,EAAE,IAAI,CAAC,MAAM;KACxB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,IAAY,EAAE,IAAc;IACnD,MAAM,KAAK,GAAG;QACZ,4BAA4B,IAAI,EAAE;QAClC,cAAc,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;QAC3C,cAAc,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;QAC3C,cAAc,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;KAC5C,CAAC;IACF,IAAI,IAAI,CAAC,YAAY;QAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;IACxE,IAAI,IAAI,CAAC,aAAa;QAAE,KAAK,CAAC,IAAI,CAAC,kBAAkB,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC3E,IAAI,IAAI,CAAC,WAAW;QAAE,KAAK,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACrE,IAAI,IAAI,CAAC,IAAI;QAAE,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAYD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkB,EAClB,IAAgC;IAEhC,MAAM,OAAO,GAAgB,MAAM,cAAc,CAC/C,KAAK,CAAC,IAAI,EACV,KAAK,CAAC,WAAW,EACjB,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,qBAAqB,CAAC,EACjD;QACE,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CACF,CAAC;IAEF,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,gBAAgB;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,QAAQ,EAAE,OAAO,CAAC,QAAQ;KAC3B,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI;QACJ,KAAK,EAAE,OAAO,CAAC,MAAM;QACrB,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM;KACvD,CAAC;AACJ,CAAC;AAUD,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,KAAkB,EAClB,KAA2B;IAE3B,MAAM,cAAc,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,gBAAgB,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACjD,MAAM,cAAc,GAA2B,gBAAgB,CAAC,IAAI,CAAC,CAAC;IAEtE,sDAAsD;IACtD,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;IAEjE,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,+EAA+E;IAC/E,MAAM,MAAM,GACV,IAAI,CAAC,IAAI,EAAE,aAAa,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI;QACzE,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,CAAC,CAAC,IAAI,CAAC;IAEX,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,QAAQ;QACjB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,oBAAoB,KAAK,CAAC,IAAI,EAAE;QACzC,mBAAmB,EAAE,KAAK,CAAC,SAAS,KAAK,SAAS;QAClD,QAAQ,EAAE;YACR,QAAQ,EAAE,cAAc;YACxB,cAAc;YACd,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SACxC;QACD,MAAM,EAAE;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,MAAM,KAAK,OAAO;YAC9B,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB;QACD,MAAM,EAAE,MAAM;YACZ,CAAC,CAAC;gBACE,EAAE,EAAE,MAAM,CAAC,EAAE;gBACb,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,OAAO,EAAE,MAAM,CAAC,OAAO;aACxB;YACH,CAAC,CAAC,IAAI;KACT,CAAC;IAEF,OAAO;QACL,QAAQ,EAAE,CAAC;QACX,IAAI;QACJ,KAAK,EAAE,iBAAiB,CAAC,IAAI,CAAC;KAC/B,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,IAAkB;IACvC,OAAO;QACL,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,YAAY,EAAE,IAAI,CAAC,YAAY;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,IAQ1B;IACC,MAAM,KAAK,GAAG;QACZ,cAAc,IAAI,CAAC,WAAW,EAAE;QAChC,cAAc,IAAI,CAAC,OAAO,EAAE;QAC5B,cAAc,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,oCAAoC,EAAE;QACrH,cAAc,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE;QAC5C,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE;KACzE,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC9B,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,IAAI,CAAC,YAAY;YAAE,KAAK,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACpE,IAAI,IAAI,CAAC,aAAa;YAAE,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACxE,IAAI,IAAI,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,SAAS;YAAE,KAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;YACxB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO;gBACnB,CAAC,CAAC,YAAY;gBACd,CAAC,CAAC,IAAI;YACR,CAAC,CAAC,MAAM,CAAC;QACX,KAAK,CAAC,IAAI,CACR,aAAa,GAAG,YAAY,IAAI,CAAC,MAAM,CAAC,aAAa,aAAa,IAAI,CAAC,MAAM,CAAC,aAAa,GAAG,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAaD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAkB,EAClB,IAA2B;IAE3B,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,UAAU;YACnB,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,KAAK,EAAE;gBACL,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,iBAAiB,IAAI,CAAC,QAAQ,IAAI;gBAC3C,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;aACxC;SACF,CAAC;QACF,OAAO;YACL,QAAQ,EAAE,CAAC;YACX,IAAI;YACJ,KAAK,EACH,iBAAiB,IAAI,CAAC,QAAQ,MAAM;gBACpC,oBAAoB,SAAS,CAAC,MAAM,MAAM;gBAC1C,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxC,UAAU,EAAE,cAAc;SAC3B,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,4EAA4E;IAC5E,+DAA+D;IAC/D,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAmB,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CACrD,IAAI,CAAC,QAAQ,EACb,UAAU,CACX,CAAC;IAEF,MAAM,IAAI,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,KAAK,IAAI,CAAC;IAExC,MAAM,IAAI,GAAG;QACX,OAAO,EAAE,UAAU;QACnB,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,OAAO;QACP,MAAM,EAAE,IAAI;KACb,CAAC;IAEF,MAAM,KAAK,GAAG,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/D,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACzB,IAAI;QACJ,KAAK;QACL,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,MAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACtE,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,QAAgB,EAAE,OAAgB,EAAE,IAAa;IAC3E,MAAM,IAAI,GAAG,GAAG,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACxD,MAAM,OAAO,GACX,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAClE,OAAO,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,QAAQ,CAAC,KAAe,EAAE,OAAO,GAAG,CAAC;IAC5C,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC;QAC/C,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACxB,CAAC;AAED,8EAA8E;AAC9E,iBAAiB;AACjB,8EAA8E;AAE9E,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO;QACL,UAAU,OAAO,sBAAsB;QACvC,EAAE;QACF,wEAAwE;QACxE,4EAA4E;QAC5E,EAAE;QACF,WAAW;QACX,gFAAgF;QAChF,wFAAwF;QACxF,0FAA0F;QAC1F,oFAAoF;QACpF,iDAAiD;QACjD,4DAA4D;QAC5D,EAAE;QACF,UAAU;QACV,4FAA4F;QAC5F,mFAAmF;QACnF,6FAA6F;QAC7F,sEAAsE;QACtE,qEAAqE;QACrE,sEAAsE;QACtE,4FAA4F;QAC5F,EAAE;QACF,cAAc;QACd,8DAA8D;QAC9D,0DAA0D;QAC1D,gFAAgF;QAChF,EAAE;QACF,WAAW;QACX,KAAK,OAAO,iBAAiB;QAC7B,KAAK,OAAO,sCAAsC;QAClD,KAAK,OAAO,kFAAkF;QAC9F,KAAK,OAAO,gBAAgB;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,kBAAkB,OAAO,EAAE,CAAC;AACrC,CAAC;AAED,OAAO,EACL,uBAAuB,EACvB,wBAAwB,GACzB,CAAC"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import type { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
2
|
+
import type { LiveClient } from "../live-client.js";
|
|
3
|
+
/** Poll outcome. `ready` true ⇒ exit 0; false ⇒ the caller exits non-zero. */
|
|
4
|
+
export interface PollOutcome {
|
|
5
|
+
ready: boolean;
|
|
6
|
+
/** One of: ready | compiling | offline | dead_bridge | timeout. */
|
|
7
|
+
status: "ready" | "compiling" | "offline" | "dead_bridge" | "timeout";
|
|
8
|
+
/** Last /ping body captured (when one ever succeeded). */
|
|
9
|
+
lastPing: PingBody | null;
|
|
10
|
+
/** Human-friendly reason for the outcome; shown in non-JSON mode. */
|
|
11
|
+
reason: string;
|
|
12
|
+
/** Elapsed wall time of the poll, in ms. */
|
|
13
|
+
elapsedMs: number;
|
|
14
|
+
}
|
|
15
|
+
/** Subset of /ping the poller cares about. Mirrors the bridge contract. */
|
|
16
|
+
export interface PingBody {
|
|
17
|
+
connected?: boolean;
|
|
18
|
+
compiling?: boolean;
|
|
19
|
+
isPlaying?: boolean;
|
|
20
|
+
projectPath?: string | null;
|
|
21
|
+
unityVersion?: string | null;
|
|
22
|
+
bridgeVersion?: string;
|
|
23
|
+
mode?: string;
|
|
24
|
+
}
|
|
25
|
+
export declare const DEFAULT_WAIT_TIMEOUT_MS = 120000;
|
|
26
|
+
export declare const DEFAULT_POLL_INTERVAL_MS = 1000;
|
|
27
|
+
export declare const PING_FETCH_TIMEOUT_MS = 5000;
|
|
28
|
+
export interface PollOptions {
|
|
29
|
+
/** Total budget for the wait, in ms. */
|
|
30
|
+
timeoutMs: number;
|
|
31
|
+
/** Sleep between polls, in ms. */
|
|
32
|
+
intervalMs: number;
|
|
33
|
+
/** Per-fetch timeout forwarded to the LiveClient, in ms. */
|
|
34
|
+
fetchTimeoutMs?: number;
|
|
35
|
+
/** Wall clock used for deadline checks; injectable for tests. */
|
|
36
|
+
now?: () => number;
|
|
37
|
+
/** Sleep implementation; injectable for tests. Default: setTimeout. */
|
|
38
|
+
sleep?: (ms: number) => Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Poll the bridge until it is ready (connected, not compiling) or the deadline
|
|
42
|
+
* passes. A 503 from /ping and `compiling: true` both keep the wait alive —
|
|
43
|
+
* "ready" means usable, not just listening. The poll fails fast on a
|
|
44
|
+
* dead-bridge signature (live PID, stale heartbeat) because /ping will never
|
|
45
|
+
* recover in that state.
|
|
46
|
+
*
|
|
47
|
+
* @param live LiveClient pointed at the resolved bridge port.
|
|
48
|
+
* @param projectPath Project path, used to read the instance lock for
|
|
49
|
+
* dead-bridge classification. Optional; when absent the
|
|
50
|
+
* dead-bridge shortcut is skipped.
|
|
51
|
+
* @param singlePoll One /ping attempt. Returns `{ ok, status, body }`:
|
|
52
|
+
* `ok` true only when connected AND not compiling.
|
|
53
|
+
* Indirected so tests can stub the network hop.
|
|
54
|
+
* @param opts Timing + clock injection.
|
|
55
|
+
*/
|
|
56
|
+
export declare function pollUntilReady(live: LiveClient, projectPath: string | undefined, singlePoll: (live: LiveClient) => Promise<SinglePollResult>, opts: PollOptions): Promise<PollOutcome>;
|
|
57
|
+
export interface SinglePollResult {
|
|
58
|
+
/** `ready` only when connected AND not compiling. */
|
|
59
|
+
status: "ready" | "compiling" | "offline" | "error";
|
|
60
|
+
body: PingBody | null;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Single /ping attempt translated into a poll status. Centralizes the
|
|
64
|
+
* "connected AND not compiling" readiness rule so every command agrees on it.
|
|
65
|
+
*
|
|
66
|
+
* Implementation note: this calls `live.isLiveAvailable()` first to get the
|
|
67
|
+
* ping-cache population side effect + 503/compiling handling, then falls back
|
|
68
|
+
* to a direct route of `unity_open_mcp_ping`. The LiveClient's ping handler
|
|
69
|
+
* already returns the full body; we re-read it from the ping cache so a single
|
|
70
|
+
* network round-trip answers both "is it up?" and "what's its state?".
|
|
71
|
+
*/
|
|
72
|
+
export declare function singlePing(live: LiveClient, fetchTimeoutMs?: number): Promise<SinglePollResult>;
|
|
73
|
+
/** Extract the typed ping body from a CallToolResult's first text content. */
|
|
74
|
+
export declare function extractPingBody(result: {
|
|
75
|
+
content: Array<{
|
|
76
|
+
type: string;
|
|
77
|
+
text?: string;
|
|
78
|
+
}>;
|
|
79
|
+
}): PingBody | null;
|
|
80
|
+
/** Re-exported for command code that needs to render a CallToolResult. */
|
|
81
|
+
export type { CallToolResult };
|