diff --git a/lib/src/prompt_builder.dart b/lib/src/prompt_builder.dart index 6c9acc4..c3b9898 100644 --- a/lib/src/prompt_builder.dart +++ b/lib/src/prompt_builder.dart @@ -1,10 +1,31 @@ class PromptBuilder { - final String clientId; + String clientId; final Map _nodes = {}; - final Map> _outputToNode = {}; + final Map> _outputToNode = {}; int _nodeIdCounter = 1; PromptBuilder({required this.clientId}); + Map toJson() { + return { + "nodes": _nodes, + "outputToNode": _outputToNode, + "nodeIdCounter": _nodeIdCounter + }; + } + + void fromJson(Map json) { + _nodes.clear(); + _outputToNode.clear(); + _nodeIdCounter = json["nodeIdCounter"]; + + for (var entry in json["nodes"].entries) { + _nodes[entry.key] = entry.value; + } + + for (var entry in json["outputToNode"].entries) { + _outputToNode[entry.key] = entry.value; + } + } /// Adds a node to the workflow and returns its nodeId String addNode(String classType, Map inputs,