Gralkor.LearningEntity (jido_gralkor v4.1.0)

Copy Markdown View Source

The plugin's built-in graphiti custom entity type for ERL.

Learning is declared as a graphiti custom entity type (the same shape a consumer's use Gralkor.Ontology entity takes) and merged onto every learning write's entity_types at the write boundary — additively over the consumer's configured ontology (or nil), so ERL is not gated on a configured ontology. Declaring Learning in entity_types causes graphiti's extractor to emit a Learning-typed node per learning episode and stamp the "Learning" label on it, so SearchFilters(node_labels: ["Learning"]) (ex-recall) reliably returns only learning nodes.

See ex-learning-entity in TEST_TREES.md.

Summary

Functions

Union the Learning entity type onto a consumer's entity_types list.

Merge Learning onto a consumer ontology payload (from __ontology__/0) or nil, preserving edge_types, edge_type_map, and excluded_entity_types.

Functions

merge_entity_types(entity_types)

@spec merge_entity_types([map()]) :: [map()]

Union the Learning entity type onto a consumer's entity_types list.

Additive — a consumer that intentionally declared its own Learning entity is not overridden.

merge_ontology_payload(payload)

@spec merge_ontology_payload(map() | nil) :: map()

Merge Learning onto a consumer ontology payload (from __ontology__/0) or nil, preserving edge_types, edge_type_map, and excluded_entity_types.

nil → a payload carrying only the Learning entity type, so ERL applies even when no consumer ontology is configured.

spec()

@spec spec() :: %{name: String.t(), description: String.t(), fields: [map()]}