chore(unity): 固定Unity CLI Loop本地包并移除UnitySkills依赖
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
namespace io.github.hatayama.uLoopMCP
|
||||
{
|
||||
using System;
|
||||
|
||||
public readonly struct SkillsTargetSelection
|
||||
{
|
||||
public readonly string DisplayName;
|
||||
public readonly string DirectoryName;
|
||||
public readonly string InstallFlag;
|
||||
public readonly string InstallArguments;
|
||||
|
||||
public SkillsTargetSelection(
|
||||
string displayName,
|
||||
string directoryName,
|
||||
string installFlag,
|
||||
bool groupSkillsUnderUnityCliLoop)
|
||||
{
|
||||
DisplayName = displayName;
|
||||
DirectoryName = directoryName;
|
||||
InstallFlag = installFlag;
|
||||
InstallArguments = groupSkillsUnderUnityCliLoop
|
||||
? $"skills install {installFlag}"
|
||||
: $"skills install {installFlag} --flat";
|
||||
}
|
||||
}
|
||||
|
||||
public static class SkillsTargetSelectionResolver
|
||||
{
|
||||
public static SkillsTargetSelection Resolve(
|
||||
SkillsTarget target,
|
||||
bool groupSkillsUnderUnityCliLoop)
|
||||
{
|
||||
return target switch
|
||||
{
|
||||
SkillsTarget.Claude => new("Claude Code", ".claude", "--claude", groupSkillsUnderUnityCliLoop),
|
||||
SkillsTarget.Cursor => new("Cursor", ".cursor", "--cursor", groupSkillsUnderUnityCliLoop),
|
||||
SkillsTarget.Gemini => new("Gemini CLI", ".gemini", "--gemini", groupSkillsUnderUnityCliLoop),
|
||||
SkillsTarget.Codex => new("Codex CLI", ".codex", "--codex", groupSkillsUnderUnityCliLoop),
|
||||
SkillsTarget.Agents => new("Other (.agents)", ".agents", "--agents", groupSkillsUnderUnityCliLoop),
|
||||
_ => throw new ArgumentOutOfRangeException(nameof(target), target, null)
|
||||
};
|
||||
}
|
||||
|
||||
public static bool IsInstalled(CliSetupData data, SkillsTarget target)
|
||||
{
|
||||
return target switch
|
||||
{
|
||||
SkillsTarget.Claude => data.IsClaudeSkillsInstalled,
|
||||
SkillsTarget.Cursor => data.IsCursorSkillsInstalled,
|
||||
SkillsTarget.Gemini => data.IsGeminiSkillsInstalled,
|
||||
SkillsTarget.Codex => data.IsCodexSkillsInstalled,
|
||||
SkillsTarget.Agents => data.IsAgentsSkillsInstalled,
|
||||
_ => false
|
||||
};
|
||||
}
|
||||
|
||||
public static SkillInstallState GetInstallState(CliSetupData data, SkillsTarget target)
|
||||
{
|
||||
return data.SelectedTarget == target ? data.SelectedTargetInstallState : SkillInstallState.Missing;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user