feat(ingest): agent.v1 KnowledgeUpdate -> AtomSpace (System Graph memory) - #50
Merged
Conversation
…ory) Closes the graph-memory half of consent-plane loop #2: a node agent's observations (e.g. TurtleTerm turtle-netwatch) become queryable HellGraph memory instead of a delta written to a sink nothing consumes. - ts/src/agent-graph-ingest.ts: ingestKnowledgeUpdate(doc, g=getHellGraph()) reads the netwatch KnowledgeUpdate (patch.nodes[{id,kind,attrs}] + patch.edges[{from,rel,to,via,severity,ts}]) and writes via the supported façade path: addNode(id, [kind, `${graph}Graph`], {...attrs, graph}) / addEdge(rel, from, to, {via, severity, ts, graph}). Mirrors acr.ts. - bin/hellgraph-agent-ingest: reads a KnowledgeUpdate from file arg or stdin, ingests into the process HellGraph singleton, prints {ingested:{nodes,edges}}. - exported from index; rebuilt dist. - test: a sample KnowledgeUpdate produces the expected Process/Host/Port nodes + CONNECTS_TO edge (relation stored as edge.label); tolerant of empty patch. Ingestion is memory, not a security mutation — it does not gate/refuse (fail-soft), unlike the consent/Governor gates. The netwatch `graph --ingest` wire follows in TurtleTerm.
This was referenced Aug 3, 2026
Member
Author
|
Adversarial self-review + local CI verification (Copilot did not post; the self-hosted gating jobs were freshly unblocked by #48 and were still queuing):
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes the graph-memory half of consent-plane loop #2: a node agent's observations (TurtleTerm
turtle-netwatch) become queryable HellGraph memory instead of aKnowledgeUpdatedelta written to a sink nothing consumes.What
ts/src/agent-graph-ingest.ts—ingestKnowledgeUpdate(doc, g = getHellGraph())reads the netwatch KnowledgeUpdate (patch.nodes[{id,kind,attrs}]+patch.edges[{from,rel,to,via,severity,ts}]) and writes via the supported façade path (asacr.tsdoes):addNode(id, [kind,${graph}Graph], {...attrs, graph})/addEdge(rel, from, to, {via, severity, ts, graph})into the SYSTEM graph.bin/hellgraph-agent-ingest— reads a KnowledgeUpdate from a file arg or stdin, ingests into the process HellGraph singleton, prints{ingested:{graph,nodes,edges}}. Exported from index; dist rebuilt.Proof
ts/src/agent-graph-ingest.test.ts— a sample KnowledgeUpdate produces the expected Process/Host/Port nodes +CONNECTS_TOedge (relation stored asedge.label); tolerant of an empty/malformed patch. Both pass; typecheck clean;npm run buildsucceeds; the bin ingests end-to-end ({nodes:2, edges:1}).Ingestion is memory, not a security mutation — it does not gate or refuse (fail-soft), unlike the consent/Governor gates (fail-closed). The
turtle-netwatch graph --ingestwire (discover hellgraph via$HELLGRAPH_HOME→ sibling~/dev/hellgraph, fail-soft) follows in a TurtleTerm PR.