Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a3a95d1

Browse files
committed
sync: cli-v1.21.0
1 parent 9ab6641 commit a3a95d1

23 files changed

Lines changed: 773 additions & 92 deletions

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
__pycache__/
1+
__pycache__/
22
*.py[cod]
33
*.egg-info/
44
dist/

CHANGELOG.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,22 @@
1-
# Changelog
1+
# Changelog
22

33
All notable changes to soft-ue-cli will be documented in this file.
44

5+
## [1.21.0] - 2026-04-10
6+
7+
### Added
8+
- `query-enum` command for UserDefinedEnum introspection: authored names, display names, tooltips, and numeric values
9+
- `query-struct` command for UserDefinedStruct introspection: authored member names, defaults, metadata, and reflected type info
10+
- `blueprint-to-cpp` skill now starts with dependency-first planning guidance, including enum/struct inspection and promotion-first conversion strategy
11+
12+
### Fixed
13+
- `query-asset --asset-path` now inspects `UserDefinedEnum` and `UserDefinedStruct` assets instead of failing with a generic load error
14+
- `query-asset --asset-path` now inspects Blueprint-generated `UDataAsset` / `UPrimaryDataAsset` assets via their generated class default object
15+
- `capture-screenshot tab --window-name ...` now falls back to visible tab labels and matching top-level window titles, so asset editor tabs opened by label can be captured more reliably
16+
17+
### Changed
18+
- Removed the standalone `inspect-uasset` skill prompt; offline `.uasset` inspection remains available as a command and as part of `test-tools`
19+
520
## [1.20.6] - 2026-04-10
621

722
### Changed

LICENSE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
MIT License
1+
MIT License
22

33
Copyright (c) 2026 soft-ue-expert
44

README.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# soft-ue-cli (+mcp)
1+
# soft-ue-cli (+mcp)
22

33
[![PyPI version](https://img.shields.io/pypi/v/soft-ue-cli.svg)](https://pypi.org/project/soft-ue-cli/)
44
[![Python 3.10+](https://img.shields.io/pypi/pyversions/soft-ue-cli.svg)](https://pypi.org/project/soft-ue-cli/)
@@ -199,6 +199,8 @@ Every command is available via `soft-ue-cli <command>`. Run `soft-ue-cli <comman
199199
| Command | Description |
200200
|---------|-------------|
201201
| `query-asset` | Search the Content Browser by name, class, or path -- also inspect DataTables |
202+
| `query-enum` | Inspect a UserDefinedEnum asset -- authored names, display names, tooltips, numeric values |
203+
| `query-struct` | Inspect a UserDefinedStruct asset -- authored member names, defaults, and metadata |
202204
| `create-asset` | Create new Blueprint, Material, DataTable, World (Level), or other asset types |
203205
| `delete-asset` | Delete an asset |
204206
| `set-asset-property` | Set a property on a Blueprint CDO or component |
@@ -305,7 +307,6 @@ Skills are markdown prompts that teach an LLM client how to perform complex mult
305307
| Skill | Description |
306308
|-------|-------------|
307309
| `blueprint-to-cpp` | Generate C++ `.h`/`.cpp` from a Blueprint asset -- Layer 1 (class scaffolding) + Layer 2 (graph logic translation) |
308-
| `inspect-uasset` | Inspect a local `.uasset` offline and extract conservative metadata without launching Unreal Editor; best support is currently for Blueprint assets |
309310
| `level-from-image` | Populate a UE level from a reference image -- analyzes the image, maps scene elements to project assets, batch-places actors, then iterates with visual feedback (viewport screenshots) |
310311
| `test-tools` | Run the exhaustive live integration test script across CLI and MCP modes, including offline `.uasset` smoke checks against a generated Blueprint |
311312

@@ -356,6 +357,13 @@ soft-ue-cli inspect-uasset D:/Project/Content/Blueprints/BP_Player.uasset --sect
356357
soft-ue-cli diff-uasset D:/snapshots/BP_Player_before.uasset D:/Project/Content/Blueprints/BP_Player.uasset --sections variables,functions
357358
```
358359

360+
### Inspect UserDefinedEnum and UserDefinedStruct assets
361+
362+
```bash
363+
soft-ue-cli query-enum /Game/Data/E_TraversalActionType
364+
soft-ue-cli query-struct /Game/Data/S_TraversalCheckResult
365+
```
366+
359367
### Start a PIE session and send input
360368

361369
```bash
@@ -422,6 +430,8 @@ soft-ue-cli skills list
422430
# Feed the blueprint-to-cpp skill to your LLM client
423431
soft-ue-cli skills get blueprint-to-cpp
424432
# The LLM reads the skill instructions, then runs:
433+
# soft-ue-cli query-enum /Game/Data/E_Dependency
434+
# soft-ue-cli query-struct /Game/Data/S_Dependency
425435
# soft-ue-cli query-blueprint /Game/BP_Player --include all --include-inherited
426436
# soft-ue-cli query-blueprint-graph /Game/BP_Player --list-callables
427437
# ...and generates the .h/.cpp files from the JSON responses

pyproject.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
44

55
[project]
66
name = "soft-ue-cli"
7-
version = "1.20.6"
7+
version = "1.21.0"
88
description = "CLI tool for controlling Unreal Engine via soft-ue-bridge plugin"
99
requires-python = ">=3.10"
1010
classifiers = [
@@ -35,10 +35,9 @@ include = ["soft_ue_cli/**"]
3535
packages = ["soft_ue_cli"]
3636

3737
# Hatchling excludes non-.py files by default; list every skill .md here so it
38-
# is included in the wheel. Add a new line for each skill file you create.
38+
# is included in the wheel. Add a new line for each skill file you create.
3939
[tool.hatch.build.targets.wheel.force-include]
4040
"soft_ue_cli/skills/blueprint-to-cpp.md" = "soft_ue_cli/skills/blueprint-to-cpp.md"
41-
"soft_ue_cli/skills/inspect-uasset.md" = "soft_ue_cli/skills/inspect-uasset.md"
4241
"soft_ue_cli/skills/level-from-image.md" = "soft_ue_cli/skills/level-from-image.md"
4342
"soft_ue_cli/skills/test-tools.md" = "soft_ue_cli/skills/test-tools.md"
4443

soft_ue_cli/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
"""soft-ue-cli — CLI interface to the SoftUEBridge UE plugin."""
22

3-
__version__ = "1.20.6"
3+
__version__ = "1.21.0"

soft_ue_cli/__main__.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,14 @@ def cmd_query_asset(args: argparse.Namespace) -> None:
265265
_print_json(_run_tool("query-asset", arguments))
266266

267267

268+
def cmd_query_enum(args: argparse.Namespace) -> None:
269+
_print_json(_run_tool("query-enum", {"asset_path": args.asset_path}))
270+
271+
272+
def cmd_query_struct(args: argparse.Namespace) -> None:
273+
_print_json(_run_tool("query-struct", {"asset_path": args.asset_path}))
274+
275+
268276
def cmd_delete_asset(args: argparse.Namespace) -> None:
269277
_print_json(_run_tool("delete-asset", {"asset_path": args.asset_path}))
270278

@@ -2145,6 +2153,36 @@ def build_parser() -> argparse.ArgumentParser:
21452153
p_qa.add_argument("--search", metavar="TEXT", help="General search filter")
21462154
p_qa.set_defaults(func=cmd_query_asset)
21472155

2156+
p_qe = sub.add_parser(
2157+
"query-enum",
2158+
help="Inspect a UserDefinedEnum asset.",
2159+
description=(
2160+
"Read a UserDefinedEnum asset and return enumerator names, display names,\n"
2161+
"tooltips, and numeric values.\n\n"
2162+
"EXAMPLES:\n"
2163+
" soft-ue-cli query-enum /Game/Data/E_TraversalActionType\n"
2164+
" soft-ue-cli query-enum /Game/UI/E_MenuState"
2165+
),
2166+
formatter_class=argparse.RawDescriptionHelpFormatter,
2167+
)
2168+
p_qe.add_argument("asset_path", help="UserDefinedEnum asset path")
2169+
p_qe.set_defaults(func=cmd_query_enum)
2170+
2171+
p_qs = sub.add_parser(
2172+
"query-struct",
2173+
help="Inspect a UserDefinedStruct asset.",
2174+
description=(
2175+
"Read a UserDefinedStruct asset and return authored member names,\n"
2176+
"types, defaults, and metadata.\n\n"
2177+
"EXAMPLES:\n"
2178+
" soft-ue-cli query-struct /Game/Data/S_TraversalCheckResult\n"
2179+
" soft-ue-cli query-struct /Game/Data/S_TraversalChooserParams"
2180+
),
2181+
formatter_class=argparse.RawDescriptionHelpFormatter,
2182+
)
2183+
p_qs.add_argument("asset_path", help="UserDefinedStruct asset path")
2184+
p_qs.set_defaults(func=cmd_query_struct)
2185+
21482186
p_da = sub.add_parser(
21492187
"delete-asset",
21502188
help="Delete an asset from the Content Browser.",

soft_ue_cli/plugin_data/SoftUEBridge/Source/SoftUEBridgeEditor/Private/SoftUEBridgeEditorModule.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010
// Asset
1111
#include "Tools/Asset/QueryAssetTool.h"
12+
#include "Tools/Asset/QueryEnumTool.h"
13+
#include "Tools/Asset/QueryStructTool.h"
1214
#include "Tools/Asset/DeleteAssetTool.h"
1315
#include "Tools/Asset/GetAssetDiffTool.h"
1416
#include "Tools/Asset/GetAssetPreviewTool.h"
@@ -93,6 +95,8 @@ void FSoftUEBridgeEditorModule::StartupModule()
9395

9496
// Asset
9597
Registry.RegisterToolClass<UQueryAssetTool>();
98+
Registry.RegisterToolClass<UQueryEnumTool>();
99+
Registry.RegisterToolClass<UQueryStructTool>();
96100
Registry.RegisterToolClass<UDeleteAssetTool>();
97101
Registry.RegisterToolClass<UGetAssetDiffTool>();
98102
Registry.RegisterToolClass<UGetAssetPreviewTool>();

0 commit comments

Comments
 (0)