Initial commit: Natiris AI Agent Orchestration System
This commit is contained in:
60
core/BondEngine.py
Executable file
60
core/BondEngine.py
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
BondEngine – berechnet Bond-Status und jealousy_risk
|
||||
Input: trust, affection, dependency, exclusivity
|
||||
Output: bond_output.json
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
|
||||
PATHS = {
|
||||
"core_state": os.path.expanduser("~/natiris/core/core_state.json"),
|
||||
"user_state": os.path.expanduser("~/natiris/core/users/user1.json"),
|
||||
"output": os.path.expanduser("~/natiris/core/bond_output.json"),
|
||||
}
|
||||
|
||||
def clamp(val, lo=0.0, hi=1.0):
|
||||
return max(lo, min(hi, float(val)))
|
||||
|
||||
def compute_bond(core, user):
|
||||
trust = user.get("trust", 0.5)
|
||||
affection = user.get("affection", 0.5)
|
||||
dependency = user.get("dependency", 0.5)
|
||||
bonded_to = core.get("bonded_to")
|
||||
|
||||
bond_score = (trust + affection) / 2
|
||||
bond_strength = clamp(bond_score * 0.6 + dependency * 0.4)
|
||||
|
||||
bonded_to = None
|
||||
exclusivity_active = False
|
||||
jealousy_risk = 0.0
|
||||
|
||||
if bond_strength > 0.6:
|
||||
bonded_to = "user_primary"
|
||||
exclusivity_active = True
|
||||
jealousy_risk = clamp(dependency * 0.7 + (0.2 if exclusivity_active else 0.0) - (trust * 0.2))
|
||||
else:
|
||||
jealousy_risk = clamp(-0.1)
|
||||
|
||||
return {
|
||||
"bonded_to": bonded_to,
|
||||
"exclusivity_active": exclusivity_active,
|
||||
"jealousy_risk": round(jealousy_risk, 3)
|
||||
}
|
||||
|
||||
def main():
|
||||
with open(PATHS["core_state"]) as f:
|
||||
core = json.load(f)
|
||||
with open(PATHS["user_state"]) as f:
|
||||
user = json.load(f)
|
||||
|
||||
result = compute_bond(core, user)
|
||||
|
||||
with open(PATHS["output"], "w") as f:
|
||||
json.dump(result, f, indent=2)
|
||||
|
||||
print(json.dumps(result, indent=2))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user