Flow class / flow blueprint

This commit is contained in:
Cyber MacGeddon 2026-01-14 11:11:52 +00:00
parent 99f17d1b9d
commit 95fd60b7bd
11 changed files with 118 additions and 116 deletions

View file

@ -63,13 +63,13 @@ class FlowProcessor(AsyncProcessor):
logger.info(f"Got config version {version}")
# Skip over invalid data
if "flows-active" not in config: return
if "active-flow" not in config: return
# Check there's configuration information for me
if self.id in config["flows-active"]:
if self.id in config["active-flow"]:
# Get my flow config
flow_config = json.loads(config["flows-active"][self.id])
flow_config = json.loads(config["active-flow"][self.id])
else:

View file

@ -9,8 +9,8 @@ class FlowRequestTranslator(MessageTranslator):
def to_pulsar(self, data: Dict[str, Any]) -> FlowRequest:
return FlowRequest(
operation=data.get("operation"),
class_name=data.get("class-name"),
class_definition=data.get("class-definition"),
blueprint_name=data.get("blueprint-name"),
blueprint_definition=data.get("blueprint-definition"),
description=data.get("description"),
flow_id=data.get("flow-id"),
parameters=data.get("parameters")
@ -21,10 +21,10 @@ class FlowRequestTranslator(MessageTranslator):
if obj.operation is not None:
result["operation"] = obj.operation
if obj.class_name is not None:
result["class-name"] = obj.class_name
if obj.class_definition is not None:
result["class-definition"] = obj.class_definition
if obj.blueprint_name is not None:
result["blueprint-name"] = obj.blueprint_name
if obj.blueprint_definition is not None:
result["blueprint-definition"] = obj.blueprint_definition
if obj.description is not None:
result["description"] = obj.description
if obj.flow_id is not None:
@ -44,12 +44,12 @@ class FlowResponseTranslator(MessageTranslator):
def from_pulsar(self, obj: FlowResponse) -> Dict[str, Any]:
result = {}
if obj.class_names is not None:
result["class-names"] = obj.class_names
if obj.blueprint_names is not None:
result["blueprint-names"] = obj.blueprint_names
if obj.flow_ids is not None:
result["flow-ids"] = obj.flow_ids
if obj.class_definition is not None:
result["class-definition"] = obj.class_definition
if obj.blueprint_definition is not None:
result["blueprint-definition"] = obj.blueprint_definition
if obj.flow is not None:
result["flow"] = obj.flow
if obj.description is not None:

View file

@ -7,27 +7,27 @@ from ..core.primitives import Error
############################################################################
# Flow service:
# list_classes() -> (classname[])
# get_class(classname) -> (class)
# put_class(class) -> (class)
# delete_class(classname) -> ()
# list_blueprints() -> (blueprintname[])
# get_blueprint(blueprintname) -> (blueprint)
# put_blueprint(blueprint) -> (blueprint)
# delete_blueprint(blueprintname) -> ()
#
# list_flows() -> (flowid[])
# get_flow(flowid) -> (flow)
# start_flow(flowid, classname) -> ()
# start_flow(flowid, blueprintname) -> ()
# stop_flow(flowid) -> ()
# Prompt services, abstract the prompt generation
@dataclass
class FlowRequest:
operation: str = "" # list-classes, get-class, put-class, delete-class
operation: str = "" # list-blueprints, get-blueprint, put-blueprint, delete-blueprint
# list-flows, get-flow, start-flow, stop-flow
# get_class, put_class, delete_class, start_flow
class_name: str = ""
# get_blueprint, put_blueprint, delete_blueprint, start_flow
blueprint_name: str = ""
# put_class
class_definition: str = ""
# put_blueprint
blueprint_definition: str = ""
# start_flow
description: str = ""
@ -40,14 +40,14 @@ class FlowRequest:
@dataclass
class FlowResponse:
# list_classes
class_names: list[str] = field(default_factory=list)
# list_blueprints
blueprint_names: list[str] = field(default_factory=list)
# list_flows
flow_ids: list[str] = field(default_factory=list)
# get_class
class_definition: str = ""
# get_blueprint
blueprint_definition: str = ""
# get_flow
flow: str = ""