MVP / Backend /executor /context.py
github-actions[bot]
Deploy application
1f0fa9b
Raw History Blame Contribute Delete
1.19 kB
class ExecutorContext:
"""Holds state for the execution engine, e.g. mapping step IDs to their outputs."""
def __init__(self):
self.step_outputs = {}
def set_output(self, step_id: str, output: str):
self.step_outputs[step_id] = output
def get_output(self, step_id: str) -> str:
return self.step_outputs.get(step_id, "")
def resolve_placeholders(self, text: str) -> str:
"""
Replaces {{step_id.output}} with the actual output of step_id.
"""
if not isinstance(text, str):
return text
for s_id, out in self.step_outputs.items():
placeholder = f"{{{{{s_id}.output}}}}"
if placeholder in text:
text = text.replace(placeholder, str(out))
return text
def resolve_dict(self, parameters: dict) -> dict:
"""Resolves placeholders recursively in a parameters dict for tools."""
resolved = {}
for k, v in parameters.items():
if isinstance(v, str):
resolved[k] = self.resolve_placeholders(v)
else:
resolved[k] = v
return resolved