diff --git a/dotnet/agent-framework-dotnet.slnx b/dotnet/agent-framework-dotnet.slnx
index 9d3b86535c..eb73146202 100644
--- a/dotnet/agent-framework-dotnet.slnx
+++ b/dotnet/agent-framework-dotnet.slnx
@@ -94,6 +94,7 @@
+
diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/FormulaValueExtensions.cs b/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/FormulaValueExtensions.cs
index e0425bfbec..108dca7682 100644
--- a/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/FormulaValueExtensions.cs
+++ b/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/FormulaValueExtensions.cs
@@ -219,6 +219,22 @@ internal static class FormulaValueExtensions
elementType switch
{
null => FormulaValue.NewTable(RecordType.EmptySealed(), []),
+ _ when elementType == typeof(string) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
+ _ when elementType == typeof(bool) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
+ _ when elementType == typeof(int) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
+ _ when elementType == typeof(long) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
+ _ when elementType == typeof(decimal) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
+ _ when elementType == typeof(float) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
+ _ when elementType == typeof(DateTime) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
+ _ when elementType == typeof(TimeSpan) =>
+ FormulaValue.NewSingleColumnTable([.. value.OfType().Select(element => FormulaValue.New(element))]),
_ when elementType == typeof(ExpandoObject) =>
FormulaValue.NewTable(
value.ToTableType().ToRecord(),
diff --git a/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/JsonDocumentExtensions.cs b/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/JsonDocumentExtensions.cs
index af1931d6d2..d3a4ef9cbc 100644
--- a/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/JsonDocumentExtensions.cs
+++ b/dotnet/src/Microsoft.Agents.AI.Workflows.Declarative/Extensions/JsonDocumentExtensions.cs
@@ -1,99 +1,277 @@
// Copyright (c) Microsoft. All rights reserved.
using System;
-using System.Collections.Frozen;
using System.Collections.Generic;
+using System.Globalization;
using System.Linq;
using System.Text.Json;
using Microsoft.Agents.AI.Workflows.Declarative.Kit;
-using Microsoft.Bot.ObjectModel;
-using Microsoft.PowerFx.Types;
namespace Microsoft.Agents.AI.Workflows.Declarative.Extensions;
internal static class JsonDocumentExtensions
{
- public static FrozenDictionary ParseRecord(this JsonDocument jsonDocument, VariableType recordType) => jsonDocument.RootElement.ParseRecord(recordType);
-
- public static RecordValue ParseRecord(this JsonDocument jsonDocument, RecordDataType recordType) => jsonDocument.RootElement.ParseRecord(recordType);
-
- private static FrozenDictionary ParseRecord(this JsonElement currentElement, VariableType recordType)
+ public static List