Initial commit: Natiris AI Agent Orchestration System
This commit is contained in:
64
core/OrchestratorAll.py
Executable file
64
core/OrchestratorAll.py
Executable file
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
OrchestratorAll – führt alle natiris Core-Module nacheinander aus
|
||||
speichert Gesamtoutput in natiris_full_state.json
|
||||
"""
|
||||
|
||||
import json
|
||||
import subprocess
|
||||
import os
|
||||
from datetime import datetime, timezone
|
||||
|
||||
CORE_DIR = os.path.expanduser("~/natiris/core")
|
||||
|
||||
MODULES = [
|
||||
("EmotionEngine", "emotion_delta.json", "Emotion"),
|
||||
("MaturityEngine", "maturity_output.json", "Maturity"),
|
||||
("BondEngine", "bond_output.json", "Bond"),
|
||||
("InnerLifeWorker", "inner_life_log.json", "InnerLife"),
|
||||
("ExpressionEngine", "expression_bias.json", "Expression"),
|
||||
]
|
||||
|
||||
def run_module(name):
|
||||
cmd = ["python3", f"{CORE_DIR}/{name}.py"]
|
||||
result = subprocess.run(cmd, capture_output=True, text=True)
|
||||
return result.returncode == 0, result.stdout, result.stderr
|
||||
|
||||
def main():
|
||||
print("Natiris Core – Full Orchestrator")
|
||||
print("=" * 40)
|
||||
|
||||
full_state = {
|
||||
"timestamp": datetime.now(timezone.utc).isoformat(),
|
||||
"modules": {}
|
||||
}
|
||||
|
||||
for engine_name, output_file, alias in MODULES:
|
||||
ok, out, err = run_module(engine_name)
|
||||
if ok:
|
||||
print(f"✅ {engine_name}: OK")
|
||||
# Output laden
|
||||
output_path = f"{CORE_DIR}/{output_file}"
|
||||
if os.path.exists(output_path):
|
||||
with open(output_path) as f:
|
||||
full_state["modules"][alias] = json.load(f)
|
||||
else:
|
||||
print(f"❌ {engine_name}: FAILED\n{err}")
|
||||
|
||||
full_state["modules"]["core_state"] = load_json_file(f"{CORE_DIR}/core_state.json")
|
||||
full_path = f"{CORE_DIR}/natiris_full_state.json"
|
||||
with open(full_path, "w") as f:
|
||||
json.dump(full_state, f, indent=2)
|
||||
|
||||
print("\n— Full State —")
|
||||
print(json.dumps(full_state, indent=2))
|
||||
|
||||
def load_json_file(path):
|
||||
try:
|
||||
with open(path) as f:
|
||||
return json.load(f)
|
||||
except Exception:
|
||||
return {}
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user