mango-brain 3.2.2__tar.gz → 3.2.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mango_brain-3.2.2 → mango_brain-3.2.4}/PKG-INFO +3 -3
- {mango_brain-3.2.2 → mango_brain-3.2.4}/README.md +2 -2
- {mango_brain-3.2.2 → mango_brain-3.2.4}/mango_brain.egg-info/PKG-INFO +3 -3
- {mango_brain-3.2.2 → mango_brain-3.2.4}/pyproject.toml +1 -1
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/cli.py +15 -2
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/mcp_tools.py +5 -1
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/models.py +5 -5
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/skills/brain-init/SKILL.md +1 -1
- {mango_brain-3.2.2 → mango_brain-3.2.4}/mango_brain.egg-info/SOURCES.txt +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/mango_brain.egg-info/dependency_links.txt +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/mango_brain.egg-info/entry_points.txt +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/mango_brain.egg-info/requires.txt +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/mango_brain.egg-info/top_level.txt +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/__init__.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/__main__.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/agents/analyzer.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/agents/executor.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/agents/mem-manager.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/agents/verifier.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/api_routes.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/config.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/dashboard_dist/assets/index-B2dCBdj5.js +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/dashboard_dist/assets/index-C9E5pXFt.css +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/dashboard_dist/favicon.svg +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/dashboard_dist/icons.svg +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/dashboard_dist/index.html +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/database.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/decay.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/embeddings.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/graph.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/jsonl_parser.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/main.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/mangobrain.default.toml +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/prompts/init/01-doc-base.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/prompts/init/02-code-base.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/prompts/init/03-event-base.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/prompts/init/04-chat-base.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/prompts/init/05-elaborate-base.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/prompts/reference/memory-definition.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/retrieval.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/rules/mangobrain-remember.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/rules/mangobrain-workflow.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/skills/discuss/SKILL.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/skills/elaborate/SKILL.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/skills/health-check/SKILL.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/skills/memorize/SKILL.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/skills/smoke-test/SKILL.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/server/skills/task/SKILL.md +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/setup.cfg +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/tests/test_core.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/tests/test_init.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/tests/test_phase2.py +0 -0
- {mango_brain-3.2.2 → mango_brain-3.2.4}/tests/test_setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mango-brain
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.4
|
|
4
4
|
Summary: The learning layer for Claude Code — persistent associative memory + development workflow. Claude Code gets smarter the longer you use it.
|
|
5
5
|
Author-email: Federico Anastasi <federico.anastasi@outlook.com>
|
|
6
6
|
License: MIT
|
|
@@ -97,7 +97,7 @@ After 500+ memories across two real projects, session 50 is genuinely better tha
|
|
|
97
97
|
### 1. Install
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
pip install
|
|
100
|
+
pip install mango-brain
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Lightweight install (~50MB). PyTorch and the embedding engine are installed in the next step, optimized for your hardware.
|
|
@@ -128,7 +128,7 @@ Open Claude Code in your project and paste:
|
|
|
128
128
|
Install MangoBrain for this project.
|
|
129
129
|
IMPORTANT: Use Python 3.11 or higher. Check available versions first (python --version,
|
|
130
130
|
py -3.12 --version, python3.12 --version, etc.) and use the correct one for pip install.
|
|
131
|
-
Run: pip install
|
|
131
|
+
Run: pip install mango-brain (using Python >= 3.11's pip)
|
|
132
132
|
Then run: mangobrain install
|
|
133
133
|
Then run: mangobrain serve --api (in background)
|
|
134
134
|
Then tell me to open http://localhost:3101 and to restart Claude Code.
|
|
@@ -70,7 +70,7 @@ After 500+ memories across two real projects, session 50 is genuinely better tha
|
|
|
70
70
|
### 1. Install
|
|
71
71
|
|
|
72
72
|
```bash
|
|
73
|
-
pip install
|
|
73
|
+
pip install mango-brain
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
Lightweight install (~50MB). PyTorch and the embedding engine are installed in the next step, optimized for your hardware.
|
|
@@ -101,7 +101,7 @@ Open Claude Code in your project and paste:
|
|
|
101
101
|
Install MangoBrain for this project.
|
|
102
102
|
IMPORTANT: Use Python 3.11 or higher. Check available versions first (python --version,
|
|
103
103
|
py -3.12 --version, python3.12 --version, etc.) and use the correct one for pip install.
|
|
104
|
-
Run: pip install
|
|
104
|
+
Run: pip install mango-brain (using Python >= 3.11's pip)
|
|
105
105
|
Then run: mangobrain install
|
|
106
106
|
Then run: mangobrain serve --api (in background)
|
|
107
107
|
Then tell me to open http://localhost:3101 and to restart Claude Code.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mango-brain
|
|
3
|
-
Version: 3.2.
|
|
3
|
+
Version: 3.2.4
|
|
4
4
|
Summary: The learning layer for Claude Code — persistent associative memory + development workflow. Claude Code gets smarter the longer you use it.
|
|
5
5
|
Author-email: Federico Anastasi <federico.anastasi@outlook.com>
|
|
6
6
|
License: MIT
|
|
@@ -97,7 +97,7 @@ After 500+ memories across two real projects, session 50 is genuinely better tha
|
|
|
97
97
|
### 1. Install
|
|
98
98
|
|
|
99
99
|
```bash
|
|
100
|
-
pip install
|
|
100
|
+
pip install mango-brain
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
Lightweight install (~50MB). PyTorch and the embedding engine are installed in the next step, optimized for your hardware.
|
|
@@ -128,7 +128,7 @@ Open Claude Code in your project and paste:
|
|
|
128
128
|
Install MangoBrain for this project.
|
|
129
129
|
IMPORTANT: Use Python 3.11 or higher. Check available versions first (python --version,
|
|
130
130
|
py -3.12 --version, python3.12 --version, etc.) and use the correct one for pip install.
|
|
131
|
-
Run: pip install
|
|
131
|
+
Run: pip install mango-brain (using Python >= 3.11's pip)
|
|
132
132
|
Then run: mangobrain install
|
|
133
133
|
Then run: mangobrain serve --api (in background)
|
|
134
134
|
Then tell me to open http://localhost:3101 and to restart Claude Code.
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mango-brain"
|
|
7
|
-
version = "3.2.
|
|
7
|
+
version = "3.2.4"
|
|
8
8
|
description = "The learning layer for Claude Code — persistent associative memory + development workflow. Claude Code gets smarter the longer you use it."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -445,10 +445,23 @@ def _setup_mcp_json(project_path: Path) -> None:
|
|
|
445
445
|
|
|
446
446
|
|
|
447
447
|
def _patch_claude_md(project_path: Path, project_name: str) -> None:
|
|
448
|
-
"""Add MangoBrain section to project's CLAUDE.md if not already present.
|
|
449
|
-
|
|
448
|
+
"""Add MangoBrain section to project's CLAUDE.md if not already present.
|
|
449
|
+
|
|
450
|
+
Searches for CLAUDE.md in order: .claude/CLAUDE.md, then root CLAUDE.md.
|
|
451
|
+
Patches whichever is found first. Creates root CLAUDE.md only if neither exists.
|
|
452
|
+
"""
|
|
453
|
+
claude_md_inner = project_path / ".claude" / "CLAUDE.md"
|
|
454
|
+
claude_md_root = project_path / "CLAUDE.md"
|
|
450
455
|
marker = "## MangoBrain"
|
|
451
456
|
|
|
457
|
+
# Find existing CLAUDE.md — prefer .claude/ over root
|
|
458
|
+
if claude_md_inner.exists():
|
|
459
|
+
claude_md = claude_md_inner
|
|
460
|
+
elif claude_md_root.exists():
|
|
461
|
+
claude_md = claude_md_root
|
|
462
|
+
else:
|
|
463
|
+
claude_md = claude_md_root # Create at root if neither exists
|
|
464
|
+
|
|
452
465
|
if claude_md.exists():
|
|
453
466
|
content = claude_md.read_text(encoding="utf-8")
|
|
454
467
|
if marker in content:
|
|
@@ -1312,8 +1312,12 @@ def register_tools(
|
|
|
1312
1312
|
phase: Phase name (required for action="update").
|
|
1313
1313
|
step: Step name (required for action="update").
|
|
1314
1314
|
status: New status: pending, in_progress, completed, skipped, failed.
|
|
1315
|
-
result: JSON string with step results/metrics.
|
|
1315
|
+
result: JSON string with step results/metrics. If a dict is passed, it will be auto-serialized.
|
|
1316
1316
|
"""
|
|
1317
|
+
# Auto-serialize dict result to JSON string
|
|
1318
|
+
if result is not None and not isinstance(result, str):
|
|
1319
|
+
result = json.dumps(result)
|
|
1320
|
+
|
|
1317
1321
|
if action == "init":
|
|
1318
1322
|
count = await db.init_setup_progress(project)
|
|
1319
1323
|
summary = await db.get_setup_summary(project)
|
|
@@ -217,23 +217,23 @@ SETUP_STEPS_TEMPLATE: list[tuple[str, str, int, str, str, str | None]] = [
|
|
|
217
217
|
("init", "doc_base", 3,
|
|
218
218
|
"Doc Base — Rules & Documentation",
|
|
219
219
|
"Extract memories from CLAUDE.md, .claude/rules/, and any project documentation",
|
|
220
|
-
"prompts/init/01-doc-base.md"),
|
|
220
|
+
".claude/prompts/mangobrain/init/01-doc-base.md"),
|
|
221
221
|
("init", "code_base", 4,
|
|
222
222
|
"Code Base — Parallel Codebase Scan",
|
|
223
223
|
"Explore the codebase with 4-5 parallel analyzer agents to create reference memories",
|
|
224
|
-
"prompts/init/02-code-base.md"),
|
|
224
|
+
".claude/prompts/mangobrain/init/02-code-base.md"),
|
|
225
225
|
("init", "event_base", 5,
|
|
226
226
|
"Event Base — Existing Memory Import",
|
|
227
227
|
"Import from PROJECT_MEMORY.jsonl, documents, task lists, or other knowledge archives (optional)",
|
|
228
|
-
"prompts/init/03-event-base.md"),
|
|
228
|
+
".claude/prompts/mangobrain/init/03-event-base.md"),
|
|
229
229
|
("init", "chat_base", 6,
|
|
230
230
|
"Chat Base — Chat History Extraction",
|
|
231
231
|
"Extract memories from 5-20 recent Claude Code chat sessions",
|
|
232
|
-
"prompts/init/04-chat-base.md"),
|
|
232
|
+
".claude/prompts/mangobrain/init/04-chat-base.md"),
|
|
233
233
|
("init", "elaborate_base", 7,
|
|
234
234
|
"Elaborate Base — First Elaboration Pass",
|
|
235
235
|
"Run N elaboration cycles until all memories have at least one pass and unconnected nodes are linked",
|
|
236
|
-
"prompts/init/05-elaborate-base.md"),
|
|
236
|
+
".claude/prompts/mangobrain/init/05-elaborate-base.md"),
|
|
237
237
|
("smoke_test", "queries", 8,
|
|
238
238
|
"Smoke Test — Query Verification",
|
|
239
239
|
"Run 10-20 diverse remember queries to verify retrieval quality across different areas",
|
|
@@ -74,7 +74,7 @@ Based on which step is next, follow the appropriate logic:
|
|
|
74
74
|
These steps have a `prompt_file` field in the setup_status response. The prompt file contains detailed instructions for that phase.
|
|
75
75
|
|
|
76
76
|
1. Mark step as in_progress: `setup_status(project, action="update", phase="{phase}", step="{step}", status="in_progress")`
|
|
77
|
-
2. Read the prompt file using the Read tool (path is relative to the
|
|
77
|
+
2. Read the prompt file using the Read tool (path is relative to the project root, e.g. `.claude/prompts/mangobrain/init/01-doc-base.md`)
|
|
78
78
|
3. Follow the instructions in the prompt file exactly
|
|
79
79
|
4. When done, mark as completed: `setup_status(project, action="update", phase="{phase}", step="{step}", status="completed", result="{JSON with metrics}")`
|
|
80
80
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|