blob: e0c1650b587fa91fd05137c379651f54061d391a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
namespace Agent.Core.Runtime;
internal static class StructuredJson
{
public static string Unwrap(string content)
{
string value = content.Trim();
int fenceStart = value.IndexOf("```", StringComparison.Ordinal);
if (fenceStart < 0) return value;
int firstLineEnd = value.IndexOf('\n', fenceStart);
if (firstLineEnd < 0) return value;
string opening = value[fenceStart..firstLineEnd].TrimEnd('\r');
if (!string.Equals(opening, "```", StringComparison.Ordinal) &&
!string.Equals(opening, "```json", StringComparison.OrdinalIgnoreCase))
return value;
int fenceEnd = value.IndexOf("```", firstLineEnd + 1, StringComparison.Ordinal);
if (fenceEnd < 0 || value.IndexOf("```", fenceEnd + 3, StringComparison.Ordinal) >= 0)
return value;
return value[(firstLineEnd + 1)..fenceEnd].Trim();
}
}
|