chore(dist): compile PRs #60/#61 into soul.c
- PR #60: inject operator home dir into system prompt (#30) Adds OPERATOR IDENTITY section so the LLM correctly resolves 'my files/notes/desktop' to the actual running user's $HOME. Prevents identity confusion between imprint author and operator. - PR #61: plan-mode endpoint POST /api/chat {mode:'plan'} (#27) Adds handle_chat_plan — returns {steps:[{id,title,detail}]} JSON. Wired into all three /api/chat route handlers. Grounds the plan via engram_compile (same as agentic path) for context awareness. dist changes: - soul.c: both PRs compiled in; build_system_prompt updated to 2-param signature (ctx, chat_mode); handle_chat_plan added - chat.c/routes.c/chat.elh: individual module outputs updated - elp-c-decls.h: remove stale 1-param build_system_prompt decl, add handle_chat_plan declaration - soul.elh.c: new soul header declarations file (from PR #60) Compile verified: cc -O2 -DHAVE_CURL soul.c el_runtime.c -lcurl Binary: 805K arm64, smoke test passes (port in use = expected).
This commit is contained in:
@@ -229,7 +229,10 @@ fn handle_dharma_recv(body: String) -> String {
|
||||
}
|
||||
let agentic_flag: Bool = json_get_bool(eff_payload, "agentic")
|
||||
let raw_msg: String = json_get(chat_body, "message")
|
||||
let reply: String = if agentic_flag {
|
||||
let req_mode: String = json_get(chat_body, "mode")
|
||||
let reply: String = if str_eq(req_mode, "plan") {
|
||||
handle_chat_plan(chat_body)
|
||||
} else if agentic_flag {
|
||||
handle_chat_agentic(chat_body)
|
||||
} else {
|
||||
let screened_reply: String = layered_cycle(raw_msg)
|
||||
@@ -391,7 +394,10 @@ fn handle_request(method: String, path: String, body: String) -> String {
|
||||
return "{\"error\":\"message is required\",\"code\":\"missing_param\"}"
|
||||
}
|
||||
let agentic_flag: Bool = json_get_bool(body, "agentic")
|
||||
let reply: String = if agentic_flag {
|
||||
let req_mode: String = json_get(body, "mode")
|
||||
let reply: String = if str_eq(req_mode, "plan") {
|
||||
handle_chat_plan(body)
|
||||
} else if agentic_flag {
|
||||
handle_chat_agentic(body)
|
||||
} else {
|
||||
let screened_reply: String = layered_cycle(eff_msg)
|
||||
@@ -540,7 +546,10 @@ fn handle_request(method: String, path: String, body: String) -> String {
|
||||
return "{\"error\":\"message is required\",\"code\":\"missing_param\"}"
|
||||
}
|
||||
let agentic_flag: Bool = json_get_bool(body, "agentic")
|
||||
let reply: String = if agentic_flag {
|
||||
let req_mode: String = json_get(body, "mode")
|
||||
let reply: String = if str_eq(req_mode, "plan") {
|
||||
handle_chat_plan(body)
|
||||
} else if agentic_flag {
|
||||
handle_chat_agentic(body)
|
||||
} else {
|
||||
let screened_reply: String = layered_cycle(raw_msg)
|
||||
|
||||
Reference in New Issue
Block a user