- README.MD: add original-source-code and nano-claude-code sections, update overview table (4 subprojects), add v3.0 news entry, expand comparison table with memory/multi-agent/skills dimensions - nano-claude-code v3.0: multi-agent package (multi_agent/), memory package (memory/), skill package (skill/) with built-in /commit and /review skills, context compression (compaction.py), tool registry plugin system, diff view, 17 slash commands, 18 built-in tools, 101 tests (~5000 lines total) - original-source-code/src: add raw TypeScript source tree (1884 files) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
87 lines
2.2 KiB
Python
87 lines
2.2 KiB
Python
"""Memory package for nano-claude-code.
|
|
|
|
Provides persistent, file-based memory across conversations.
|
|
|
|
Storage layout:
|
|
user scope : ~/.nano_claude/memory/<slug>.md (shared across projects)
|
|
project scope : .nano_claude/memory/<slug>.md (local to cwd)
|
|
|
|
The MEMORY.md index in each directory is auto-maintained and injected
|
|
into the system prompt so Claude has an overview of available memories.
|
|
|
|
Public API (backward-compatible with the old memory.py module):
|
|
MemoryEntry — dataclass for a single memory
|
|
save_memory() — write/update a memory file
|
|
delete_memory() — remove a memory file
|
|
load_index() — load all entries from one or both scopes
|
|
search_memory() — keyword search across entries
|
|
get_memory_context() — MEMORY.md content for system prompt injection
|
|
"""
|
|
from .store import ( # noqa: F401
|
|
MemoryEntry,
|
|
save_memory,
|
|
delete_memory,
|
|
load_index,
|
|
load_entries,
|
|
search_memory,
|
|
get_index_content,
|
|
parse_frontmatter,
|
|
USER_MEMORY_DIR,
|
|
INDEX_FILENAME,
|
|
MAX_INDEX_LINES,
|
|
MAX_INDEX_BYTES,
|
|
)
|
|
from .scan import ( # noqa: F401
|
|
MemoryHeader,
|
|
scan_memory_dir,
|
|
scan_all_memories,
|
|
format_memory_manifest,
|
|
memory_age_days,
|
|
memory_age_str,
|
|
memory_freshness_text,
|
|
)
|
|
from .context import ( # noqa: F401
|
|
get_memory_context,
|
|
find_relevant_memories,
|
|
truncate_index_content,
|
|
)
|
|
from .types import ( # noqa: F401
|
|
MEMORY_TYPES,
|
|
MEMORY_TYPE_DESCRIPTIONS,
|
|
MEMORY_SYSTEM_PROMPT,
|
|
WHAT_NOT_TO_SAVE,
|
|
)
|
|
|
|
__all__ = [
|
|
# store
|
|
"MemoryEntry",
|
|
"save_memory",
|
|
"delete_memory",
|
|
"load_index",
|
|
"load_entries",
|
|
"search_memory",
|
|
"get_index_content",
|
|
"parse_frontmatter",
|
|
"USER_MEMORY_DIR",
|
|
"INDEX_FILENAME",
|
|
"MAX_INDEX_LINES",
|
|
"MAX_INDEX_BYTES",
|
|
# scan
|
|
"MemoryHeader",
|
|
"scan_memory_dir",
|
|
"scan_all_memories",
|
|
"format_memory_manifest",
|
|
"memory_age_days",
|
|
"memory_age_str",
|
|
"memory_freshness_text",
|
|
# context
|
|
"get_memory_context",
|
|
"find_relevant_memories",
|
|
"truncate_index_content",
|
|
# types
|
|
"MEMORY_TYPES",
|
|
"MEMORY_TYPE_DESCRIPTIONS",
|
|
"MEMORY_SYSTEM_PROMPT",
|
|
"WHAT_NOT_TO_SAVE",
|
|
]
|