Merge remote-tracking branch 'origin/pr/103' into HEAD
El SDK CI - dev / build-and-test (pull_request) Failing after 3m56s

# Conflicts:
#	lang/AGENTS.md
#	lang/runtime/el_runtime.h
This commit is contained in:
bigmerge
2026-08-15 18:26:57 -05:00
6 changed files with 105 additions and 12 deletions
+53
View File
@@ -14089,6 +14089,59 @@ el_val_t engram_wm_top_json(el_val_t n_v) {
return el_wrap_str(b.buf);
}
/* op_assert seam (realizer promotion, bl-53/#57).
* Gathers the grounded ASSERTION ENVELOPE for a subject node
* { "subject": <node|null>, "grounding": [ {node,edge,hops}... ] }
* i.e. the self-geometry a realizer renders as faithful first-person text.
* Read-only: realization (geometry->text) stays in the faculty/realizer;
* this native primitive produces its structured input from proven paths
* (engram_emit_node_json + engram_neighbors_json). arity 2 (node_id, depth). */
el_val_t engram_op_assert_json(el_val_t node_id, el_val_t depth) {
const char* sid = EL_CSTR(node_id);
JsonBuf b; jb_init(&b);
jb_puts(&b, "{\"subject\":");
EngramNode* n = (sid && *sid) ? engram_find_node(sid) : NULL;
if (n) engram_emit_node_json(&b, n, 0); else jb_puts(&b, "null");
jb_puts(&b, ",\"grounding\":");
el_val_t nb = engram_neighbors_json(node_id, depth, EL_STR("both"));
const char* nbs = EL_CSTR(nb);
jb_puts(&b, (nbs && *nbs) ? nbs : "[]");
jb_putc(&b, '}');
return el_wrap_str(b.buf);
}
/* Parametric mutation (purview write-side bounding, keystone 56ecbec6).
* The mutation verbs travel with a TARGET MANIFOLD (purview) instead of the
* implicit global singleton. purview==0 (EL_NULL) is the DEGENERATE/DEFAULT
* case: G = live, behaviour identical to the base op. A non-zero purview is a
* bounded target that the engine cannot yet resolve (multi-manifold store is a
* promotion item), so we REFUSE rather than silently mutate the live set
* write-side bounding must never leak into G=live. */
el_val_t engram_node_full_in(el_val_t purview,
el_val_t content, el_val_t node_type, el_val_t label,
el_val_t salience, el_val_t importance, el_val_t confidence,
el_val_t tier, el_val_t tags) {
if (purview == 0) {
return engram_node_full(content, node_type, label, salience, importance,
confidence, tier, tags);
}
fprintf(stderr, "[engram] purview write-side not yet resolvable (G != live); "
"refusing to append to live store (purview=%lld)\n",
(long long)purview);
return EL_STR("");
}
void engram_connect_in(el_val_t purview,
el_val_t from_id, el_val_t to_id, el_val_t weight, el_val_t relation) {
if (purview == 0) {
engram_connect(from_id, to_id, weight, relation);
return;
}
fprintf(stderr, "[engram] purview write-side not yet resolvable (G != live); "
"refusing to connect in live store (purview=%lld)\n",
(long long)purview);
}
el_val_t engram_stats_json(void) {
EngramStore* g = engram_get();
/* embedded_count: how far the lazy backfill has progressed. The single