Files
mempalace/website/reference/api-reference.md
T
Igor Lins e Silva 0cb9ee5c58 fix(website): correct false claims and stale numbers in live docs
- Landing: replace nonexistent `mempalace remember` CLI demo with real
  `mempalace mine ./notes`
- Landing: soften unverifiable absolutes ("forever available",
  "100% recall by design", "<50 ms", "90%+ compression",
  "two-thousand-year-old", "tens of thousands of entries")
- MCP tool count: 19 → 29 across mcp-integration, claude-code, openclaw,
  and modules; expand tool overview with Drawers, Tunnels, and System
  categories to match mcp_server.py
- Wake-up token range: ~170–900 → ~600–900 in cli/api-reference/python-api
  to match cli.py help text and concept docs
- Gemini CLI: move `--scope user` before target name and add `--`
  separator so `-m mempalace.mcp_server` isn't parsed as Gemini flags
2026-04-16 23:31:35 -03:00

8.0 KiB
Raw Blame History

API Reference

Comprehensive parameter-level documentation for all public Python APIs.

mempalace.searcher

search(query, palace_path, wing=None, room=None, n_results=5)

CLI-oriented search that prints results to stdout.

Parameter Type Default Description
query str Search query text
palace_path str Path to ChromaDB palace directory
wing str None Filter by wing name
room str None Filter by room name
n_results int 5 Maximum number of results

Raises: SearchError if palace not found or query fails.


search_memories(query, palace_path, wing=None, room=None, n_results=5) → dict

Programmatic search returning a dict. Used by the MCP server.

Parameter Type Default Description
query str Search query text
palace_path str Path to ChromaDB palace directory
wing str None Filter by wing name
room str None Filter by room name
n_results int 5 Maximum number of results

Returns:

{
    "query": str,
    "filters": {"wing": str | None, "room": str | None},
    "results": [
        {
            "text": str,           # verbatim drawer content
            "wing": str,           # wing name
            "room": str,           # room name
            "source_file": str,    # original file basename
            "similarity": float,   # 0.0 to 1.0
        }
    ]
}

On error: {"error": str, "hint": str}


mempalace.layers

class Layer0(identity_path=None)

Identity layer (~50 tokens). Reads from ~/.mempalace/identity.txt.

Method Returns Description
render() str Identity text or default message
token_estimate() int Approximate token count (len(text) // 4)

class Layer1(palace_path=None, wing=None)

Essential story layer (~500800 tokens). Auto-generated from top drawers.

Attribute Type Description
MAX_DRAWERS int Max moments in wake-up (15)
MAX_CHARS int Hard cap on L1 text (3200)
Method Returns Description
generate() str Compact L1 text grouped by room

class Layer2(palace_path=None)

On-demand retrieval layer (~200500 tokens per call).

Method Parameters Returns
retrieve(wing, room, n_results=10) Wing/room filters Formatted drawer text

class Layer3(palace_path=None)

Deep semantic search layer (unlimited depth).

Method Parameters Returns
search(query, wing=None, room=None, n_results=5) Query + optional filters Formatted result text
search_raw(query, wing=None, room=None, n_results=5) Query + optional filters List of result dicts

class MemoryStack(palace_path=None, identity_path=None)

Unified 4-layer interface.

Method Parameters Returns Description
wake_up(wing=None) Optional wing str L0 + L1 context (~600900 tokens)
recall(wing, room, n_results=10) Filters str L2 on-demand retrieval
search(query, wing, room, n_results=5) Query + filters str L3 deep search
status() dict All layer status info

mempalace.knowledge_graph

class KnowledgeGraph(db_path=None)

Default path: ~/.mempalace/knowledge_graph.sqlite3

Write Methods

Method Parameters Returns Description
add_entity(name, entity_type='unknown', properties=None) Name, type, props dict str (entity ID) Add or update entity node
add_triple(subject, predicate, obj, valid_from, valid_to, confidence, source_closet, source_file) See below str (triple ID) Add relationship triple
invalidate(subject, predicate, obj, ended=None) Entity names, end date Mark relationship as ended

add_triple parameters:

Parameter Type Default Description
subject str Source entity name
predicate str Relationship type
obj str Target entity name
valid_from str None Start date (YYYY-MM-DD)
valid_to str None End date
confidence float 1.0 Confidence score 0.01.0
source_closet str None Link to verbatim memory
source_file str None Original source file

Query Methods

Method Parameters Returns
query_entity(name, as_of=None, direction='outgoing') Entity name, date filter, direction list[dict]
query_relationship(predicate, as_of=None) Relationship type, date filter list[dict]
timeline(entity_name=None) Optional entity filter list[dict]
stats() dict with entities, triples, predicates
seed_from_entity_facts(entity_facts) Dict of entity facts

query_entity direction values: "outgoing" (entity→?), "incoming" (?→entity), "both"


mempalace.palace_graph

build_graph(col=None, config=None) → (nodes, edges)

Build the palace graph from ChromaDB metadata.

Returns:

  • nodes: dict of {room: {wings: list, halls: list, count: int, dates: list}}
  • edges: list of {room, wing_a, wing_b, hall, count}

traverse(start_room, col=None, config=None, max_hops=2) → list

BFS graph traversal from a room across wings.

Parameter Type Default Description
start_room str Room slug to start from
max_hops int 2 Max connection depth

Returns: [{room, wings, halls, count, hop, connected_via}] (max 50)


find_tunnels(wing_a=None, wing_b=None, col=None, config=None) → list

Find rooms spanning multiple wings.

Returns: [{room, wings, halls, count, recent}] (max 50)


graph_stats(col=None, config=None) → dict

Returns: {total_rooms, tunnel_rooms, total_edges, rooms_per_wing, top_tunnels}


mempalace.dialect

class Dialect(entities=None, skip_names=None)

Parameter Type Description
entities dict[str, str] Full name → 3-letter code mapping
skip_names list[str] Names to skip (fictional characters, etc.)

Class Methods

Method Parameters Returns
from_config(config_path) JSON file path Dialect instance

Instance Methods

Method Parameters Returns Description
compress(text, metadata=None) Plain text + optional metadata dict str AAAK-formatted summary
encode_entity(name) Entity name str | None 3-letter entity code
encode_emotions(emotions) List of emotion strings str Compact emotion codes
compress_file(path, output=None) Zettel JSON path str Compress zettel file
compress_all(dir, output=None) Zettel directory str Compress all zettels
save_config(path) Output path Save entity mappings
compression_stats(original, compressed) Both texts dict Compression ratio stats

Static Methods

Method Parameters Returns
count_tokens(text) Any text int

mempalace.config

class MempalaceConfig()

Reads from ~/.mempalace/config.json and environment variables.

Property Type Default Description
palace_path str ~/.mempalace/palace ChromaDB storage path
collection_name str mempalace_drawers ChromaDB collection name
Method Description
init() Create config directory and default files