swarm: HTTP-backed primitive retrieval + live-engram integration test
- primitive_attend retrieves over HTTP (POST /api/search) when ENGRAM_URL is set — the location-independent worker model — falling back to the in-process store otherwise. Proven against the isolated :8901 clone: CCR compiled a bounded context from REAL mind content (VBD/intellectual-dna). - gate the engram work-tracking mirror behind SWARM_MIRROR=1; the durable substrate is always the JSONL journal, so a swarm never depends on the mind to track its work. (Repeated POST /api/nodes mirror writes were observed to crash the isolated daemon — a daemon-side write-path robustness issue; retrieval POST /api/search is solid. Prod :8742 never touched.) - integ_engram: CCR real-retrieval + full swarm completion against live clone.
This commit is contained in:
@@ -26,8 +26,20 @@ fn primitive_attend(query: String, limit: Int) -> String {
|
||||
if str_eq(query, "") {
|
||||
return "[]"
|
||||
}
|
||||
// engram_activate returns activated neighbourhood as JSON; scoped by limit.
|
||||
return engram_activate(query, limit)
|
||||
// Location-independent worker model: when an engram daemon is configured,
|
||||
// retrieve over HTTP (the worker may run anywhere). POST /api/search
|
||||
// {query,limit,_auth}. Falls back to the in-process store otherwise.
|
||||
let url: String = env("ENGRAM_URL")
|
||||
if str_eq(url, "") {
|
||||
return engram_activate(query, limit)
|
||||
}
|
||||
let kv: [String] = el_list_empty()
|
||||
let kv = el_list_append(kv, "query")
|
||||
let kv = el_list_append(kv, query)
|
||||
let body0: String = json_build_object(kv)
|
||||
let body1: String = json_set(body0, "limit", int_to_str(limit))
|
||||
let body2: String = json_set_str(body1, "_auth", env("ENGRAM_API_KEY"))
|
||||
return http_post(url + "/api/search", body2)
|
||||
}
|
||||
|
||||
// ── think — reason over the compiled context ─────────────────────────────────
|
||||
|
||||
Reference in New Issue
Block a user