Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.getcore.me/llms.txt

Use this file to discover all available pages before exploring further.

What entities are

Entities are nodes in the memory graph. Statements link entities together to form facts like “Sarah works at Red Planet”. When the same entity is mentioned across multiple episodes, CORE deduplicates it by name normalization plus vector similarity in the ENTITY namespace, so all references resolve to a single node.

The 11 entity types

CORE defines 11 entity types in EntityTypes (packages/types/src/graph/graph.entity.ts). Only named, searchable entities are extracted, no generic vocabulary.
TypeCapturesExamples
PersonPeopleSarah, John, Dr. Chen, Mike
OrganizationCompanies, teamsGoogle, Red Planet, Design Team
PlaceLocationsBangalore, San Francisco, Office HQ
EventOccurrencesReact Conference, Q2 Planning, Sprint Review
ProjectWork initiativesCORE, MVP, Website Redesign
TaskTracked itemsCORE-123, Issue #456, TODO-789
TechnologyTools, frameworksTypeScript, PostgreSQL, React, Neo4j
ProductProducts, servicesiPhone, Slack, ChatGPT, Figma
StandardMethodologiesOAuth 2.0, REST API, Agile, SOLID
ConceptAbstract topicsFat Loss, Code Review, Search Pipeline
PredicateRelationships”works at”, “lives in”, “manages”

Predicate is special

Predicate represents relationship edges, not standalone nodes. It is used when a statement asserts a connection between two other entities, such as works_at, lives_in, or manages. A Predicate does not appear as a node you would search for directly; it labels an edge in the graph.

How entities are extracted and resolved

During ingestion CORE extracts entities from episode text and classifies each one into one of the 11 types. New mentions are deduplicated against existing entities by name normalization plus vector similarity in the ENTITY namespace (packages/providers/src/vector/constants.ts). When the same entity appears in multiple episodes, the new mention is linked to the existing node automatically, so the graph grows without producing duplicate nodes for “Sarah”, “Sarah Chen”, and “@sarah”. When a search query mentions an entity by name, the router populates entityHints. Search handlers such as entity_lookup, relationship, aspect_query, and temporal embed each hint and search the ENTITY vector namespace to resolve the hint to one or more entity UUIDs. The handler then graph-fetches connected episodes and statements from those nodes, so a query for “Sarah” returns everything attached to the resolved Person entity, not just literal name matches.

Integration-sourced entities

Entities from connected apps are classified into one of the 11 types above, not separate types. A GitHub repository becomes a Project. A GitHub issue or Linear issue becomes a Task. A Slack channel becomes a Place or Organization depending on context. A Gmail contact becomes a Person. Integrations are sources of episodes, the entity schema is the same regardless of source.