2622bb04bd
elp-input.el: replace broken engram_search_json with engram_activate_json as Layer 1. Layer 2 suppress/filter keeps nodes with non-zero salience/ importance. Reason step extracts patient from top activated node content. ELP grammar realizes the response via generate(). routes.el: add 'elp' event_type to handle_dharma_recv so the studio can route ELP requests through dharma.
82 lines
2.1 KiB
C
82 lines
2.1 KiB
C
#include <stdint.h>
|
|
#include <stdlib.h>
|
|
#include "el_runtime.h"
|
|
|
|
el_val_t tier_working(void);
|
|
el_val_t tier_episodic(void);
|
|
el_val_t tier_canonical(void);
|
|
el_val_t mem_store(el_val_t content, el_val_t label, el_val_t tags);
|
|
el_val_t mem_remember(el_val_t content, el_val_t tags);
|
|
el_val_t mem_recall(el_val_t query, el_val_t depth);
|
|
el_val_t mem_search(el_val_t query, el_val_t limit);
|
|
el_val_t mem_strengthen(el_val_t node_id);
|
|
el_val_t mem_forget(el_val_t node_id);
|
|
el_val_t mem_consolidate(void);
|
|
el_val_t mem_save(el_val_t path);
|
|
el_val_t mem_load(el_val_t path);
|
|
|
|
el_val_t tier_working(void) {
|
|
return EL_STR("Working");
|
|
return 0;
|
|
}
|
|
|
|
el_val_t tier_episodic(void) {
|
|
return EL_STR("Episodic");
|
|
return 0;
|
|
}
|
|
|
|
el_val_t tier_canonical(void) {
|
|
return EL_STR("Canonical");
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_store(el_val_t content, el_val_t label, el_val_t tags) {
|
|
return engram_node_full(content, EL_STR("Memory"), label, el_from_float(0.5), el_from_float(0.5), el_from_float(0.8), EL_STR("Working"), tags);
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_remember(el_val_t content, el_val_t tags) {
|
|
return mem_store(content, EL_STR("soul-memory"), tags);
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_recall(el_val_t query, el_val_t depth) {
|
|
return engram_activate_json(query, depth);
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_search(el_val_t query, el_val_t limit) {
|
|
return engram_search_json(query, limit);
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_strengthen(el_val_t node_id) {
|
|
engram_strengthen(node_id);
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_forget(el_val_t node_id) {
|
|
engram_forget(node_id);
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_consolidate(void) {
|
|
el_val_t scanned = engram_node_count();
|
|
el_val_t dummy = engram_scan_nodes_json(100, 0);
|
|
el_val_t total_nodes = engram_node_count();
|
|
el_val_t total_edges = engram_edge_count();
|
|
return el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(el_str_concat(EL_STR("{\"scanned\":"), int_to_str(scanned)), EL_STR(",\"total_nodes\":")), int_to_str(total_nodes)), EL_STR(",\"total_edges\":")), int_to_str(total_edges)), EL_STR("}"));
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_save(el_val_t path) {
|
|
engram_save(path);
|
|
return 0;
|
|
}
|
|
|
|
el_val_t mem_load(el_val_t path) {
|
|
engram_load(path);
|
|
return 0;
|
|
}
|
|
|