rhino3dm.ArchivableDictionary.decodeDict() behaves differently in python vs javascript

Hi I’m trying to recreate a python code in Javascript and I’m running into some issues. I’m basically trying to recreate Rhino Compute’s EvaluatePython() function in javascript.

Here’s the source code for Python client PythonEvaluate function which comes with rhino compute for python:

def PythonEvaluate(script, inputs, output_names):
    encodedInput = rhino3dm.ArchivableDictionary.EncodeDict(inputs)
    url = 'rhino/python/evaluate'
    args = [script, json.dumps(encodedInput), output_names]
    response = ComputeFetch(url, args)
    output = rhino3dm.ArchivableDictionary.DecodeDict(json.loads(response))
    return output

Now my implementation in javascript is like:

function pythonEvaluate(script, input, output) {
      var inputEncoded = rhino3dm.ArchivableDictionary.encodeDict(input);
      var url = "rhino/python/evaluate";
      var args = [script, JSON.stringify(inputEncoded), output];
      var result = await compute.computeFetch(url, args);
      var objects = rhino3dm.ArchivableDictionary.decodeDict(
        JSON.parse(result)
      );
      return objects;
}

This works fine in cases that the script in PythonEvaluate is a single Geometry.
like below:

script="""
import Rhino
plane = Rhino.Geometry.Plane.WorldXY
circle = Rhino.Geometry.Circle(plane,3).ToNurbsCurve()
ext = Rhino.Geometry.Extrusion.Create(circle, 10, True).ToBrep()
OUT_result = ext
"""

OUT_result in this case is what I’m interested in returning. This works both in python and javascript using code above.
But if I try to return a list like OUT_result = [ext], it works in python and fails in javascript. The part of the javascript code that breaks is this line:

var objects = rhino3dm.ArchivableDictionary.decodeDict(JSON.parse(result));

And gives the following error:

Unhandled Rejection (BindingError): _emval_take_value has unknown type NSt3__26vectorIP16BND_CommonObjectNS_9allocatorIS2_EEEE

For reference here is what the python results look like before and after decode()

raw_response {'version': 10000, 'archive3dm': 60, 'opennurbs': -1912573603, 'data': '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'}
decoded : {'OUT_result': [<rhino3dm._rhino3dm.Brep object at 0x111028d50>]}