API Index

June 9, 2026 · View on GitHub

Each EverAlgo distribution has its own README with a quick-start, public API surface, prompt customisation guide, and testing patterns.


Per-distribution READMEs

DistributionREADMEWhat it provides
everalgo-corepackages/everalgo-core/README.mdChatMessage, MemCell, Episode, RankInput/RankOutput, LLMClient, LLMConfig, FakeLLMClient
everalgo-boundarypackages/everalgo-boundary/README.mddetect_boundaries, DetectionResult, BoundaryDecision
everalgo-clusteringpackages/everalgo-clustering/README.mdCluster, cluster_by_geometry, cluster_by_llm
everalgo-rankpackages/everalgo-rank/README.mdrank.episodic, rank.profile, rank.case, rank.skill, rank.fusion, rank.weight, rank.rerank
everalgo-parserpackages/everalgo-parser/README.mdaparse, ParsedContent, image / audio / document / URL parsers (video deferred)
everalgo-user-memorypackages/everalgo-user-memory/README.mdBoundaryDetector, EpisodeExtractor, ForesightExtractor, AtomicFactExtractor, ProfileExtractor
everalgo-agent-memorypackages/everalgo-agent-memory/README.mdAgentBoundaryDetector, AgentCaseExtractor, AgentSkillExtractor
everalgo-knowledgepackages/everalgo-knowledge/README.mdKnowledgeExtractor, KnowledgeMemory (NOT YET IMPLEMENTED — not published)

Key types at a glance

All shared data contracts are in everalgo.types:

from everalgo.types import (
    ChatMessage,        # single conversation turn — kind="text"
    ToolCallRequest,    # assistant-emitted tool invocation — kind="tool_call"
    ToolCallResult,     # tool execution result — kind="tool_result"
    ConversationItem,   # ChatMessage | ToolCallRequest | ToolCallResult (discriminated union)
    MemCell,            # boundary-segmented conversation slice; items: list[ConversationItem]
    Episode,            # narrative memory — owner_id, episode, subject, timestamp
    Foresight,          # anticipated future event — owner_id, foresight, evidence, start_time, end_time, duration_days
    AtomicFact,         # single verifiable assertion — owner_id (str | None), fact, timestamp
    Profile,            # structured user profile — owner_id, summary, timestamp; extra fields via extra="allow"
    AgentCase,          # distilled agent trajectory — id, timestamp, task_intent, approach, quality_score, key_insight
    AgentSkill,         # aggregated skill — id, cluster_id (caller-stamped), name, description, content, confidence
    KnowledgeMemory,    # extracted knowledge from a file (EXPERIMENTAL)
    RankInput,          # multi-route recall candidates + cross-memory linkage
    RankOutput,         # ranked memory list
    ParsedContent,      # multimodal file parsed into structured content (EXPERIMENTAL)
)

The clustering value object lives in everalgo.clustering:

from everalgo.clustering import Cluster
# Cluster: id (caller-supplied), centroid, count, last_ts, preview, members (caller entity ids)

LLM wire types live in everalgo.llm.types:

from everalgo.llm.types import ChatMessage, ChatResponse, Usage

everalgo.llm.types.ChatMessage is the LLM prompt wire type (sent to the model). everalgo.types.ChatMessage is the domain type (conversation message). They are distinct classes.