kabudadada
Add Foam-Agent MCP service with conda environment support
7eb1167
# runner_node.py
from typing import List
import os
from pydantic import BaseModel, Field
import re
from utils import (
save_file, remove_files, remove_file,
run_command, check_foam_errors, retrieve_faiss, remove_numeric_folders
)
def local_runner_node(state):
"""
Runner node: Execute an Allrun script, and check for errors.
On error, update state.error_command and state.error_content.
"""
config = state["config"]
case_dir = state["case_dir"]
allrun_file_path = os.path.join(case_dir, "Allrun")
print(f"============================== Runner ==============================")
# Clean up any previous log and error files.
out_file = os.path.join(case_dir, "Allrun.out")
err_file = os.path.join(case_dir, "Allrun.err")
remove_files(case_dir, prefix="log")
remove_file(err_file)
remove_file(out_file)
remove_numeric_folders(case_dir)
# Execute the Allrun script.
run_command(allrun_file_path, out_file, err_file, case_dir, config)
# Check for errors.
error_logs = check_foam_errors(case_dir)
if len(error_logs) > 0:
print("Errors detected in the Allrun execution.")
print(error_logs)
else:
print("Allrun executed successfully without errors.")
state['loop_count'] += 1
# Return updated state
return {
**state,
"error_logs": error_logs
}