From def822d61fe9aedbdd68d9d186681d5718fc8254 Mon Sep 17 00:00:00 2001 From: Geens Date: Sun, 20 Apr 2025 12:31:55 +0200 Subject: [PATCH] Load response when loading iteration --- sia/iteration_parser.py | 12 ++++++++---- sia/web/api.py | 4 +++- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sia/iteration_parser.py b/sia/iteration_parser.py index f6c11a7..5214c80 100644 --- a/sia/iteration_parser.py +++ b/sia/iteration_parser.py @@ -28,14 +28,18 @@ class IterationParser: """ root = ET.fromstring(content) context_elem = root.find("context") + response_elem = root.find("response") if context_elem is None: raise ValueError("Invalid iteration file - missing context") - - context = ET.fromstring(context_elem.text) + if response_elem is None: + raise ValueError("Invalid iteration file - missing response") + + context = context_elem.text.strip() + response = response_elem.text.strip() entries = [] - for elem in context: + for elem in ET.fromstring(context): if elem.tag == "background": entries.append(IterationParser._parse_background(elem, work_dir)) elif elem.tag == "parse_error": @@ -51,7 +55,7 @@ class IterationParser: elif elem.tag == "write_stdout": entries.append(IterationParser._parse_write(elem, io_buffer)) - return entries + return (context, response, entries) @staticmethod def _parse_background(elem: ET.Element, work_dir: Path) -> BackgroundEntry: diff --git a/sia/web/api.py b/sia/web/api.py index 510ae6e..273c362 100644 --- a/sia/web/api.py +++ b/sia/web/api.py @@ -304,10 +304,12 @@ class Api: if not content: return web.Response(status=400, text="Missing content in request body") - entries = IterationParser.parse_iteration(content, self._work_dir, self._io_buffer) + (context, response, entries) = IterationParser.parse_iteration(content, self._work_dir, self._io_buffer) for entry in entries: self._working_memory.add_entry(entry) + self._agent.modify_context(context, True) + self._agent.response_buffer.set_text(response) return web.Response(status=200) except Exception as e: