soul: parameterize CGI ID + add dharma_room_turn handler

- soul.el: SOUL_CGI_ID, SOUL_ENGRAM_PATH, SOUL_IDENTITY env vars;
  state_set("soul_snapshot_path") so callers can find it; only call
  init_soul_edges() when cgi_id == "ntn-genesis"
- chat.el: handle_dharma_room_turn — soul builds its own context from its
  own engram, assembles system prompt, calls LLM, persists episodic memory;
  also fix is_new_tool scoping bug in handle_chat_agentic (use has_tool)
- routes.el: wire dharma_room_turn event type before chat_as_soul branch
- rebuild dist/neuron: handle_dharma_room_turn now compiled in
This commit is contained in:
Will Anderson
2026-05-03 17:55:37 -05:00
parent 2000a2c8ba
commit 2665810962
58 changed files with 189 additions and 70 deletions
+10 -4
View File
@@ -88,10 +88,12 @@ fn init_soul_edges() -> Void {
engram_connect(val_hope, val_trust, el_from_float(0.7), "co-value")
}
let soul_cgi_id: String = "ntn-genesis"
let soul_cgi_id_raw: String = env("SOUL_CGI_ID")
let soul_cgi_id: String = if str_eq(soul_cgi_id_raw, "") { "ntn-genesis" } else { soul_cgi_id_raw }
let port_raw: String = env("NEURON_PORT")
let port: Int = if str_eq(port_raw, "") { 7770 } else { str_to_int(port_raw) }
let snapshot: String = env("HOME") + "/.neuron/engram/snapshot.json"
let snapshot_raw: String = env("SOUL_ENGRAM_PATH")
let snapshot: String = if str_eq(snapshot_raw, "") { env("HOME") + "/.neuron/engram/snapshot.json" } else { snapshot_raw }
let axon_raw: String = env("NEURON_API_URL")
let axon_base: String = if str_eq(axon_raw, "") { "http://localhost:7771" } else { axon_raw }
@@ -113,10 +115,14 @@ state_set("soul_identity", soul_identity)
state_set("soul_axon_base", axon_base)
state_set("soul_token", env("NEURON_TOKEN"))
state_set("soul_studio_dir", studio_dir)
state_set("soul_snapshot_path", snapshot)
state_set("soul.running", "true")
init_soul_edges()
println("[soul] edges built - " + int_to_str(engram_edge_count()) + " edges")
let is_genesis: Bool = str_eq(soul_cgi_id, "ntn-genesis")
if is_genesis {
init_soul_edges()
println("[soul] edges built - " + int_to_str(engram_edge_count()) + " edges")
}
engram_save(snapshot)