com.sky.ondeviceagent / Runtime /AgentCore /Tools /MarkdownPropertyAccessor.cs
Sky-Kim's picture
Initial commit
2e7837a
Raw
History Blame Contribute Delete
1.18 kB
using System;
using System.Collections.Generic;
namespace OnDeviceAgent.AgentCore
{
public sealed class MarkdownPropertyAccessor : IToolPropertyAccessor
{
readonly Dictionary<string, Dictionary<string, string>> m_ByTool =
new Dictionary<string, Dictionary<string, string>>(StringComparer.OrdinalIgnoreCase);
public MarkdownPropertyAccessor(IReadOnlyList<ToolDefinition> defs)
{
if (defs == null) return;
foreach (var d in defs)
{
var k = string.IsNullOrWhiteSpace(d.HandlerName) ? d.Name : d.HandlerName;
if (!string.IsNullOrWhiteSpace(k)) m_ByTool[k.Trim()] = d.Properties;
}
}
public string Get(string toolName, string key) => TryGet(toolName, key, out var v) ? v : string.Empty;
public bool TryGet(string toolName, string key, out string value)
{
value = string.Empty;
if (string.IsNullOrWhiteSpace(toolName) || string.IsNullOrWhiteSpace(key)) return false;
return m_ByTool.TryGetValue(toolName.Trim(), out var p) && p != null && p.TryGetValue(key, out value);
}
}
}