Initial commit: Natiris AI Agent Orchestration System

This commit is contained in:
Arch Agent
2026-03-01 14:28:26 +01:00
commit 3b5f6ba83d
3127 changed files with 86184 additions and 0 deletions

60
core/MaturityEngine.py Executable file
View File

@@ -0,0 +1,60 @@
#!/usr/bin/env python3
"""
MaturityEngine berechnet stability, dependency_bias, regression_factor
Input: age, bond_duration, conflict_history, loneliness_history
Output: maturity_output.json
"""
import json
import os
PATHS = {
"config": os.path.expanduser("~/natiris/config/character_genesis.json"),
"core_state": os.path.expanduser("~/natiris/core/core_state.json"),
"history": os.path.expanduser("~/natiris/memory/long/history.json"),
"output": os.path.expanduser("~/natiris/core/maturity_output.json"),
}
def clamp(val, lo=0.0, hi=1.0):
return max(lo, min(hi, float(val)))
def compute_maturity(config, core, history):
start_age = config.get("initial_traits", {}).get("mood", 20)
bond_started = core.get("bond_started_at")
conflict_history = history.get("conflict_history", [])
loneliness_history = history.get("loneliness_history", [2])
age = start_age + (len(conflict_history) * 0.5)
bond_duration = len([c for c in conflict_history if c]) if bond_started else 0
conflict_rate = len([c for c in conflict_history if c]) / max(len(conflict_history), 1)
avg_loneliness = sum(loneliness_history) / max(len(loneliness_history), 1)
stability_bias = clamp(age / 100 + (bond_duration * 0.01) - (conflict_rate * 0.5))
dependency_bias = clamp(0.3 + (bond_duration * 0.02) - (avg_loneliness * 0.02))
regression_factor = clamp(conflict_rate * 0.7 + (1 - age / 100) * 0.5 + (avg_loneliness * 0.05))
return {
"stability_bias": round(stability_bias, 3),
"dependency_bias": round(dependency_bias, 3),
"regression_factor": round(regression_factor, 3)
}
def main():
with open(PATHS["config"]) as f:
config = json.load(f)
with open(PATHS["core_state"]) as f:
core = json.load(f)
with open(PATHS["history"]) as f:
history = json.load(f)
result = compute_maturity(config, core, history)
with open(PATHS["output"], "w") as f:
json.dump(result, f, indent=2)
print(json.dumps(result, indent=2))
if __name__ == "__main__":
main()