DCA-01 / scripts /run_mvp.py
Shorx's picture
Upload 33 files
201449b verified
Raw History Blame Contribute Delete
2.4 kB
"""
DCA-01 MVP Runner - End-to-End without Docker
"""
import sys
sys.path.append("src/router")
sys.path.append("src/decomposer")
sys.path.append("src/blackboard")
sys.path.append("src/experts/physics")
sys.path.append("src/experts/code")
sys.path.append("src/experts/language")
sys.path.append("src/fusion")
from tmr_router import Router, tmr_vote
from dag_builder import build_dag
from blackboard import Blackboard
from physics_expert import infer as physics_infer
from code_expert import infer as code_infer
from language_expert import infer as lang_infer
from fusion import fuse
import json
def run(request: str):
print(f"\n=== DCA-01 MVP Run ===\nRequest: {request}\n")
print("[1] TMR Router Cluster")
ra = Router("router_a","sha256:a").infer(request)
rb = Router("router_b","sha256:b").infer(request)
rc = Router("router_c","sha256:c").infer(request)
vote = tmr_vote(ra, rb, rc)
print(f" -> {vote['flag']}")
print("\n[2] Task Decomposer")
dag_nodes = build_dag(vote["validated"], request)
dag_id = dag_nodes[0]["dag_id"]
print(f" -> DAG {dag_id} nodes: {[n["node_id"] for n in dag_nodes]}")
print("\n[3] Shared Context Board")
board = Blackboard()
pattern = {"pattern_id":"CLOSED_LOOP_01","version":"1.0","dag_id":dag_id,"source_module":"physics_expert","source_model_hash":"sha256:physics_v2.1","ttl_ms":5000,"pattern_type":"topological","abstraction":{"name":"closed loop","properties":{"conservation":True}},"vector_embedding":[0.1,0.9],"access_control":{"write":["physics_expert"],"read":["code_expert"]},"audit":True}
board.publish(pattern)
print(f" -> Published {pattern['pattern_id']}")
print("\n[4] Experts (parallel)")
phys_out = physics_infer(dag_nodes[0], board.subscribe())
code_out = code_infer(dag_nodes[1], phys_out, board.subscribe())
lang_out = lang_infer({"node_id":"T_lang_01"})
print(f" -> Physics c={phys_out['c_i_calibrated']} Code c={code_out['c_i_calibrated']}")
print("\n[5] Fusion Layer")
result = fuse([phys_out, code_out, lang_out], dag_id)
print(f" -> Flag: {result['flag']} conf={result['confidence_final']:.2f} iters={result['provenance_graph']['fusion_iterations']}")
print("\n=== Final Answer ===\n", result["final_answer"][:800])
return result
if __name__ == "__main__":
run("Write Python simulation for heat exchanger water/water with Q_dot 15kW")