Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
143 commits
Select commit Hold shift + click to select a range
f6fcf19
Introduce UnityCLILoop tool contracts assembly
hatayama May 6, 2026
843a88c
Remove runtime tool descriptions
hatayama May 6, 2026
574e1a4
Move simple bundled tools into FirstPartyTools
hatayama May 6, 2026
d9d2940
Remove legacy development-only tools
hatayama May 6, 2026
2847215
Move get-version behind the internal bridge
hatayama May 6, 2026
4d0d339
Remove Unity-side focus-window stub
hatayama May 6, 2026
07f3b8e
Move tool details behind the internal bridge
hatayama May 6, 2026
16ae512
Add asmdef dependency boundary tests
hatayama May 6, 2026
c341c32
Move control play mode into first-party tools
hatayama May 6, 2026
6f3eba3
Keep first-party tool skill discovery explicit
hatayama May 6, 2026
3e33eb5
Add typed contract execution coverage
hatayama May 6, 2026
48030cc
Route setup UI through an application facade
hatayama May 6, 2026
e5a989e
Rename settings window away from MCP terminology
hatayama May 6, 2026
11c07bb
Route tool settings UI through an application facade
hatayama May 6, 2026
2b8586c
Move settings UI into the presentation assembly
hatayama May 6, 2026
a9cf8f2
Move pure platform values into the domain assembly
hatayama May 6, 2026
80cacb9
Move recordings UI behind an application facade
hatayama May 6, 2026
1d644e4
Remove legacy MCP communication log code
hatayama May 6, 2026
808b135
Rename editor UI constants away from MCP terminology
hatayama May 6, 2026
bae772d
Rename editor settings away from MCP terminology
hatayama May 6, 2026
46be746
Rename editor domain reload provider away from MCP terminology
hatayama May 6, 2026
64ce06d
Rename Unity path resolver away from MCP terminology
hatayama May 6, 2026
32c0905
Rename package version constant away from MCP terminology
hatayama May 6, 2026
44b0160
Rename tool security policy away from MCP terminology
hatayama May 6, 2026
cb0d608
Rename domain reload registration away from MCP terminology
hatayama May 6, 2026
7144840
Rename console log type constants away from MCP terminology
hatayama May 6, 2026
462cff4
Rename shared constants away from MCP terminology
hatayama May 6, 2026
6c43865
Rename bridge server config away from MCP terminology
hatayama May 6, 2026
b8d273b
Remove stale references to removed MCP session types
hatayama May 6, 2026
83e1c01
Rename server lifecycle types away from MCP terminology
hatayama May 6, 2026
ff23e53
Rename presentation style prefix away from MCP terminology
hatayama May 6, 2026
373d588
Move platform result values into the domain layer
hatayama May 6, 2026
9bd0cfb
Move dynamic code compiler registration to composition root
hatayama May 6, 2026
2fa3f9c
Rename tool source folder away from MCP terminology
hatayama May 6, 2026
56d911c
Move get-logs into first-party tools
hatayama May 6, 2026
ef73119
Move compile into first-party tools
hatayama May 6, 2026
cf4db92
Move execute-dynamic-code into first-party tools
hatayama May 6, 2026
f1eab34
Move tool host wiring into composition root
hatayama May 6, 2026
a176b53
Move dynamic compiler factory to infrastructure
hatayama May 6, 2026
b780fd7
Move project identity validation into domain
hatayama May 6, 2026
bbaebf1
Move CLI version comparison into domain
hatayama May 6, 2026
71f6f89
Move clear-console into first-party tools
hatayama May 6, 2026
2141eef
Move console clear adapter to infrastructure
hatayama May 6, 2026
fc84807
Move diagnostic parser into domain
hatayama May 6, 2026
6afdf1e
Move dynamic code defaults into domain
hatayama May 6, 2026
3b2d592
Move play-mode compile policy values into domain
hatayama May 6, 2026
4e06733
Move dynamic security policy into domain
hatayama May 6, 2026
bfe2c5b
Move source security scanner into domain
hatayama May 6, 2026
4a4b70a
Move dynamic compilation ports into application
hatayama May 6, 2026
403f958
Move dynamic compilation DTOs into application
hatayama May 6, 2026
a340a3b
Remove unused shared references from outer assemblies
hatayama May 6, 2026
1a56d81
Remove empty shared diagnostics folder
hatayama May 6, 2026
2cb2e95
Move preload validation contracts into metadata module
hatayama May 6, 2026
74ef7ea
Remove legacy shared editor assembly
hatayama May 6, 2026
21918f0
Remove stale shared assembly references
hatayama May 6, 2026
889cb2d
Move get-hierarchy into first-party tools
hatayama May 6, 2026
087e885
Move run-tests into first-party tools
hatayama May 6, 2026
16d351e
Move find-game-objects into first-party tools
hatayama May 6, 2026
669526e
Move screenshot into first-party tools
hatayama May 6, 2026
d134471
Move input recording into first-party tools
hatayama May 6, 2026
9396b49
Move input simulation into first-party tools
hatayama May 6, 2026
9aab954
Move mouse UI simulation into first-party tools
hatayama May 6, 2026
494af33
Remove stale tool directory metadata
hatayama May 6, 2026
cdff9f5
Guard application against tool entry points
hatayama May 6, 2026
8abae11
Hide server internals behind application facade
hatayama May 6, 2026
d9289fa
Expose server lifecycle through application handle
hatayama May 6, 2026
5bcef90
Route server creation through application factory
hatayama May 6, 2026
bd68149
Register server lifecycle through composition root
hatayama May 6, 2026
1e3dd4e
Move project IPC implementation to infrastructure
hatayama May 6, 2026
170854a
Update onion refactor plan status
hatayama May 6, 2026
720ca08
Move dynamic compilation implementation to infrastructure
hatayama May 6, 2026
50da121
Fix mouse demo E2E coordinate setup
hatayama May 6, 2026
6573422
Stabilize simulate mouse replay E2E
hatayama May 6, 2026
6beb459
update coderabbit setttings
hatayama May 6, 2026
a39878f
Instance CLI setup detection services
hatayama May 7, 2026
4b13433
Move project settings caches into repositories
hatayama May 7, 2026
ab46fac
Instance editor settings repository
hatayama May 7, 2026
243b834
Instance tool registrar service
hatayama May 7, 2026
555a93f
Instance dynamic code service registry
hatayama May 7, 2026
c09de16
Instance server controller services
hatayama May 7, 2026
e29d2bf
Instance scheduler and warmup state services
hatayama May 7, 2026
725be8a
Instance recording application state
hatayama May 7, 2026
d17e748
Instance VibeLogger service state
hatayama May 7, 2026
df88747
Instance runtime overlay state services
hatayama May 7, 2026
6c1a244
Instance input session state services
hatayama May 7, 2026
f9f03b8
Instance replay input service state
hatayama May 7, 2026
8750a92
Instance main thread switcher state
hatayama May 7, 2026
db460f4
Guard migrated static facades
hatayama May 7, 2026
6630c53
Document static facade refactor scope
hatayama May 7, 2026
2300d94
Move bridge lifecycle events off static state
hatayama May 7, 2026
ff181db
Remove static event facades
hatayama May 7, 2026
3658789
Inject server lifecycle dependencies from composition root
hatayama May 7, 2026
b346463
Move tool response versioning off global state
hatayama May 7, 2026
079f99d
Instance domain reload session recovery
hatayama May 7, 2026
4d7c22a
Move server controller ownership to composition root
hatayama May 7, 2026
620e4e4
Register CLI setup service from composition root
hatayama May 7, 2026
2889040
Inject tool host services through the registrar
hatayama May 7, 2026
73e54a9
Inject dynamic code services from composition root
hatayama May 7, 2026
ca33073
Group application editor sources under Application
hatayama May 7, 2026
33d34ec
Centralize Unity Editor startup bootstrap
hatayama May 7, 2026
c7c4b51
Defer startup settings reads
hatayama May 7, 2026
c173fbf
Decouple bundled tools from platform layers
hatayama May 7, 2026
37cb6ad
Split bundled tool assemblies and adopt target-typed new
hatayama May 7, 2026
82d2d57
Inline trivial composition root factories
hatayama May 7, 2026
f424a44
Move execute dynamic code design notes
hatayama May 7, 2026
95f8346
delete unused meta
hatayama May 7, 2026
e0dd266
Move metadata validation into execute dynamic code
hatayama May 7, 2026
e060909
delete unused meta
hatayama May 7, 2026
ced4964
Move CLI setup implementations to infrastructure
hatayama May 7, 2026
58cab68
Move server controller implementation to infrastructure
hatayama May 7, 2026
ce544e6
Move JSON-RPC handling to infrastructure
hatayama May 7, 2026
6ab4c1a
Move skill setup implementations to infrastructure
hatayama May 7, 2026
714c78c
Move settings persistence to infrastructure
hatayama May 7, 2026
fc75d1b
Remove unused compile session state
hatayama May 7, 2026
a52103f
Move editor state validation to infrastructure
hatayama May 7, 2026
03f7f7b
Move server startup lock to infrastructure
hatayama May 7, 2026
5cab78b
Move compilation lock implementation to infrastructure
hatayama May 7, 2026
e29b247
Move domain reload detection to infrastructure
hatayama May 7, 2026
3eb59d5
Move main thread dispatching to infrastructure
hatayama May 7, 2026
3f8e219
Remove empty Unity folders
hatayama May 7, 2026
355cfe4
Remove redundant registration lock
hatayama May 7, 2026
153534d
Move editor boot orchestration into bootstrapper
hatayama May 7, 2026
a5e2cab
Add layer namespaces to UnityCliLoop assemblies
hatayama May 7, 2026
a289481
Remove unused layer namespace imports
hatayama May 7, 2026
72b2a24
Remove remaining unused layer imports
hatayama May 7, 2026
b9acc07
Move code analysis plugins under ExecuteDynamicCode
hatayama May 7, 2026
81525d5
Remove first-party tool friend assembly hooks
hatayama May 7, 2026
b2b65ff
Add class summaries across C# code
hatayama May 7, 2026
6ea775e
Add interface summaries across C# code
hatayama May 7, 2026
05f2f3b
Remove unused UnityCliLoop constants
hatayama May 7, 2026
de236af
Remove unused tool contract symbols
hatayama May 7, 2026
072144c
Add Roslyn dead code scanner
hatayama May 7, 2026
4f8e272
Remove high-confidence dead code candidates
hatayama May 7, 2026
e5e32bd
Remove unused ExecuteDynamicCode facades
hatayama May 7, 2026
d67ea75
Prune unused public editor APIs
hatayama May 7, 2026
6aa1539
Slim execute-dynamic-code prewarm wiring
hatayama May 7, 2026
d0601a8
Remove first-party schema descriptions
hatayama May 7, 2026
259e6fb
Remove execute-dynamic-code editor browsing hints
hatayama May 7, 2026
5d96a7b
Fix review-loop regressions in tool hosting
hatayama May 7, 2026
69bb104
Fix review-loop retry regressions
hatayama May 7, 2026
dd4d56d
Limit missing-return retry to script snippets
hatayama May 7, 2026
8c824cb
Restore clear-console failure output docs
hatayama May 7, 2026
894b49d
Use compiler diagnostics for dynamic-code guidance
hatayama May 7, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .agents/skills/uloop-control-play-mode/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
name: uloop-control-play-mode
toolName: control-play-mode
description: "Control Unity Editor play mode (play/stop/pause). Use when you need to: (1) Start play mode to test game behavior, (2) Stop play mode to return to edit mode, (3) Pause play mode for frame-by-frame inspection."
---

Expand Down
1 change: 1 addition & 0 deletions .claude/skills/uloop-control-play-mode/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
name: uloop-control-play-mode
toolName: control-play-mode
description: "Control Unity Editor play mode (play/stop/pause). Use when you need to: (1) Start play mode to test game behavior, (2) Stop play mode to return to edit mode, (3) Pause play mode for frame-by-frame inspection."
---

Expand Down
2 changes: 1 addition & 1 deletion .coderabbit.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ reviews:
poem: false
auto_review:
enabled: true
drafts: true
drafts: false
base_branches:
- ".*"
path_filters:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,10 @@ yarn-error.log*
.npm
.yarn-integrity

# .NET development tools
**/[Bb]in/
**/[Oo]bj/

# Native Go CLI release artifacts are included in the Unity package
Packages/src/Cli~/Core~/dist/*
!Packages/src/Cli~/Core~/dist/darwin-arm64/
Expand Down
18 changes: 12 additions & 6 deletions Assets/Editor/CaptureTest/EditorWindowCaptureTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,14 @@
using System.IO;
using System.Threading;

namespace io.github.hatayama.UnityCliLoop
using io.github.hatayama.UnityCliLoop.FirstPartyTools;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace io.github.hatayama.UnityCliLoop.Dev
{
/// <summary>
/// Defines the Unity Editor window for Editor Window Capture workflows.
/// </summary>
public class EditorWindowCaptureTest : EditorWindow
{
private string _windowName = "Console";
Expand Down Expand Up @@ -34,7 +40,7 @@ private void OnGUI()
EditorWindow[] windows = EditorWindowCaptureUtility.FindWindowsByName(_windowName, _matchMode);
if (windows.Length > 0)
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Text.StringBuilder sb = new();
sb.AppendLine($"Found {windows.Length} window(s):");
for (int i = 0; i < windows.Length; i++)
{
Expand Down Expand Up @@ -117,14 +123,14 @@ private async void CaptureWindowAsync()
DestroyImmediate(_previewTexture);
}

string outputDir = Path.Combine(Application.dataPath.Replace("/Assets", ""), McpConstants.OUTPUT_ROOT_DIR, McpConstants.SCREENSHOTS_DIR);
string outputDir = Path.Combine(UnityEngine.Application.dataPath.Replace("/Assets", ""), UnityCliLoopConstants.OUTPUT_ROOT_DIR, UnityCliLoopConstants.SCREENSHOTS_DIR);
if (!Directory.Exists(outputDir))
{
Directory.CreateDirectory(outputDir);
}

string timestamp = System.DateTime.Now.ToString("yyyyMMdd_HHmmss");
System.Text.StringBuilder sb = new System.Text.StringBuilder();
System.Text.StringBuilder sb = new();
sb.AppendLine($"Captured {windows.Length} window(s):");

for (int i = 0; i < windows.Length; i++)
Expand Down Expand Up @@ -176,14 +182,14 @@ private void OnDestroy()
/// </summary>
private void OpenOutputFolder()
{
string outputDir = Path.Combine(Application.dataPath.Replace("/Assets", ""), McpConstants.OUTPUT_ROOT_DIR, McpConstants.SCREENSHOTS_DIR);
string outputDir = Path.Combine(UnityEngine.Application.dataPath.Replace("/Assets", ""), UnityCliLoopConstants.OUTPUT_ROOT_DIR, UnityCliLoopConstants.SCREENSHOTS_DIR);
if (!Directory.Exists(outputDir))
{
Directory.CreateDirectory(outputDir);
}

string fileUri = "file:///" + outputDir.Replace("\\", "/");
Application.OpenURL(fileUri);
UnityEngine.Application.OpenURL(fileUri);
}
}
}
Expand Down
11 changes: 8 additions & 3 deletions Assets/Editor/CompileCheckWindow/CompileCheckerExample.cs
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
using UnityEditor;
using UnityEngine;

namespace io.github.hatayama.UnityCliLoop
using io.github.hatayama.UnityCliLoop.FirstPartyTools;

namespace io.github.hatayama.UnityCliLoop.Dev
{
/// <summary>
/// Provides Compile Checker Example behavior for Unity CLI Loop.
/// </summary>
public class CompileCheckerExample
{
[MenuItem("UnityCliLoop/Debug/Compile Tests/Compile Checker Usage Example")]
public static async void TestCompileChecker()
{
CompileController compileController = new CompileController();
CompileController compileController = new();

try
{
Expand Down Expand Up @@ -42,7 +47,7 @@ public static async void TestCompileChecker()
[MenuItem("UnityCliLoop/Debug/Compile Tests/Force Compile Checker Usage Example")]
public static async void TestForceCompileChecker()
{
CompileController compileController = new CompileController();
CompileController compileController = new();

try
{
Expand Down
13 changes: 10 additions & 3 deletions Assets/Editor/CompileCheckWindow/CompileEditorWindow.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,15 @@
using UnityEditor.Compilation;
using System.Threading.Tasks;

namespace io.github.hatayama.UnityCliLoop
using io.github.hatayama.UnityCliLoop.Application;
using io.github.hatayama.UnityCliLoop.FirstPartyTools;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace io.github.hatayama.UnityCliLoop.Dev
{
/// <summary>
/// Defines the Unity Editor window for Compile Editor workflows.
/// </summary>
public class CompileEditorWindow : EditorWindow
{
private CompileController _compileController;
Expand Down Expand Up @@ -139,7 +146,7 @@ private async Task ExecuteCompileAsync()
private void OnCompileCompleted(CompileResult result)
{
_logDisplay.AppendCompletionMessage(result);
McpEditorSettings.SetCompileWindowHasData(true);
UnityCliLoopEditorSettings.SetCompileWindowHasData(true);
Repaint();
}

Expand Down Expand Up @@ -168,7 +175,7 @@ private void ClearLog()
_compileController.ClearMessages();

// Also clear McpSessionManager data
McpEditorSettings.ClearCompileWindowData();
UnityCliLoopEditorSettings.ClearCompileWindowData();

Repaint();
}
Expand Down
7 changes: 6 additions & 1 deletion Assets/Editor/CompileCheckWindow/CompileLogDisplay.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
using UnityEditor.Compilation;
using System.Text;

namespace io.github.hatayama.UnityCliLoop
using io.github.hatayama.UnityCliLoop.FirstPartyTools;

namespace io.github.hatayama.UnityCliLoop.Dev
{
/// <summary>
/// Provides Compile Log Display behavior for Unity CLI Loop.
/// </summary>
public class CompileLogDisplay : System.IDisposable
{
private StringBuilder _logBuilder = new();
Expand Down
2 changes: 1 addition & 1 deletion Assets/Editor/ConsoleMaskDebugger.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
using UnityEditor;
using UnityEngine;

namespace io.github.hatayama.UnityCliLoop
namespace io.github.hatayama.UnityCliLoop.Dev
{
/// <summary>
/// Debug tool to analyze Unity Console mask values for different Clear settings
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
using System;
using io.github.hatayama.UnityCliLoop;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace Samples
namespace io.github.hatayama.UnityCliLoop.Samples
{
/// <summary>
/// Response schema for GetProjectInfo tool
/// Provides detailed Unity project information
/// </summary>
public class GetProjectInfoResponse : BaseToolResponse
public class GetProjectInfoResponse : UnityCliLoopToolResponse
{
public string ProjectName { get; set; }
public string CompanyName { get; set; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
using io.github.hatayama.UnityCliLoop;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace Samples
namespace io.github.hatayama.UnityCliLoop.Samples
{
/// <summary>
/// Schema for GetProjectInfo tool parameters
/// This tool takes no parameters
/// </summary>
public class GetProjectInfoSchema : BaseToolSchema
public class GetProjectInfoSchema : UnityCliLoopToolSchema
{
// No parameters needed for this tool
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,37 +1,36 @@
using System.Threading;
using System.Threading.Tasks;
using UnityEngine;
using io.github.hatayama.UnityCliLoop;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace Samples
namespace io.github.hatayama.UnityCliLoop.Samples
{
/// <summary>
/// Project information retrieval custom tool
/// Example of retrieving detailed Unity project information
/// </summary>
[McpTool(Description = "Get detailed Unity project information")]
public class GetProjectInfoTool : AbstractUnityTool<GetProjectInfoSchema, GetProjectInfoResponse>
[UnityCliLoopTool]
public class GetProjectInfoTool : UnityCliLoopTool<GetProjectInfoSchema, GetProjectInfoResponse>
{
public override string ToolName => "get-project-info";

protected override Task<GetProjectInfoResponse> ExecuteAsync(GetProjectInfoSchema parameters, CancellationToken cancellationToken)
{
GetProjectInfoResponse response = new GetProjectInfoResponse
{
ProjectName = Application.productName,
CompanyName = Application.companyName,
Version = Application.version,
UnityVersion = Application.unityVersion,
Platform = Application.platform.ToString(),
DataPath = Application.dataPath,
PersistentDataPath = Application.persistentDataPath,
TemporaryCachePath = Application.temporaryCachePath,
IsEditor = Application.isEditor,
IsPlaying = Application.isPlaying,
TargetFrameRate = Application.targetFrameRate,
RunInBackground = Application.runInBackground,
SystemLanguage = Application.systemLanguage.ToString(),
InternetReachability = Application.internetReachability.ToString(),
GetProjectInfoResponse response = new() {
ProjectName = UnityEngine.Application.productName,
CompanyName = UnityEngine.Application.companyName,
Version = UnityEngine.Application.version,
UnityVersion = UnityEngine.Application.unityVersion,
Platform = UnityEngine.Application.platform.ToString(),
DataPath = UnityEngine.Application.dataPath,
PersistentDataPath = UnityEngine.Application.persistentDataPath,
TemporaryCachePath = UnityEngine.Application.temporaryCachePath,
IsEditor = UnityEngine.Application.isEditor,
IsPlaying = UnityEngine.Application.isPlaying,
TargetFrameRate = UnityEngine.Application.targetFrameRate,
RunInBackground = UnityEngine.Application.runInBackground,
SystemLanguage = UnityEngine.Application.systemLanguage.ToString(),
InternetReachability = UnityEngine.Application.internetReachability.ToString(),
DeviceType = SystemInfo.deviceType.ToString(),
DeviceModel = SystemInfo.deviceModel,
OperatingSystem = SystemInfo.operatingSystem,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
using io.github.hatayama.UnityCliLoop;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace Samples
namespace io.github.hatayama.UnityCliLoop.Samples
{
/// <summary>
/// Response schema for HelloWorld tool
/// Provides type-safe response structure
/// </summary>
public class HelloWorldResponse : BaseToolResponse
public class HelloWorldResponse : UnityCliLoopToolResponse
{
/// <summary>
/// The greeting message
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
using System.ComponentModel;
using io.github.hatayama.UnityCliLoop;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace Samples
namespace io.github.hatayama.UnityCliLoop.Samples
{
/// <summary>
/// Supported languages for greeting
Expand All @@ -18,7 +18,7 @@ public enum GreetingLanguage
/// Schema for HelloWorld tool parameters
/// Provides type-safe parameter access with default values
/// </summary>
public class HelloWorldSchema : BaseToolSchema
public class HelloWorldSchema : UnityCliLoopToolSchema
{
/// <summary>
/// Name to greet
Expand Down
10 changes: 5 additions & 5 deletions Assets/Editor/CustomCommandSamples/HelloWorld/HelloWorldTool.cs
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
using System;
using System.Threading;
using System.Threading.Tasks;
using io.github.hatayama.UnityCliLoop;
using io.github.hatayama.UnityCliLoop.ToolContracts;

namespace Samples
namespace io.github.hatayama.UnityCliLoop.Samples
{
/// <summary>
/// Hello World custom tool - Type-safe implementation using Schema and Response
/// Basic implementation example of a custom tool with strongly typed parameters and response
/// </summary>
[McpTool(Description = "Personalized hello world tool with name parameter")]
public class HelloWorldTool : AbstractUnityTool<HelloWorldSchema, HelloWorldResponse>
[UnityCliLoopTool]
public class HelloWorldTool : UnityCliLoopTool<HelloWorldSchema, HelloWorldResponse>
{
public override string ToolName => "hello-world";

Expand All @@ -31,7 +31,7 @@ protected override Task<HelloWorldResponse> ExecuteAsync(HelloWorldSchema parame
};

// Create type-safe response
HelloWorldResponse response = new HelloWorldResponse(
HelloWorldResponse response = new(
message: greeting,
language: language.ToString().ToLower(),
timestamp: includeTimestamp ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : null
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "UnityCLILoop.CustomCommandSamples.Editor",
"rootNamespace": "io.github.hatayama.UnityCliLoop.Samples",
"references": [
"UnityCLILoop.ToolContracts"
],
"includePlatforms": [
"Editor"
],
"excludePlatforms": [],
"allowUnsafeCode": false,
"overrideReferences": false,
"precompiledReferences": [],
"autoReferenced": true,
"defineConstraints": [],
"versionDefines": [],
"noEngineReferences": false
}

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading