superlocalmemory 2.7.6 → 2.8.0
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.
- package/CHANGELOG.md +120 -155
- package/README.md +115 -89
- package/api_server.py +2 -12
- package/docs/PATTERN-LEARNING.md +64 -199
- package/docs/example_graph_usage.py +4 -6
- package/install.sh +59 -0
- package/mcp_server.py +83 -7
- package/package.json +1 -8
- package/scripts/generate-thumbnails.py +3 -5
- package/skills/slm-build-graph/SKILL.md +1 -1
- package/skills/slm-list-recent/SKILL.md +1 -1
- package/skills/slm-recall/SKILL.md +1 -1
- package/skills/slm-remember/SKILL.md +1 -1
- package/skills/slm-show-patterns/SKILL.md +1 -1
- package/skills/slm-status/SKILL.md +1 -1
- package/skills/slm-switch-profile/SKILL.md +1 -1
- package/src/agent_registry.py +7 -18
- package/src/auth_middleware.py +3 -5
- package/src/auto_backup.py +3 -7
- package/src/behavioral/__init__.py +49 -0
- package/src/behavioral/behavioral_listener.py +203 -0
- package/src/behavioral/behavioral_patterns.py +275 -0
- package/src/behavioral/cross_project_transfer.py +206 -0
- package/src/behavioral/outcome_inference.py +194 -0
- package/src/behavioral/outcome_tracker.py +193 -0
- package/src/behavioral/tests/__init__.py +4 -0
- package/src/behavioral/tests/test_behavioral_integration.py +108 -0
- package/src/behavioral/tests/test_behavioral_patterns.py +150 -0
- package/src/behavioral/tests/test_cross_project_transfer.py +142 -0
- package/src/behavioral/tests/test_mcp_behavioral.py +139 -0
- package/src/behavioral/tests/test_mcp_report_outcome.py +117 -0
- package/src/behavioral/tests/test_outcome_inference.py +107 -0
- package/src/behavioral/tests/test_outcome_tracker.py +96 -0
- package/src/cache_manager.py +4 -6
- package/src/compliance/__init__.py +48 -0
- package/src/compliance/abac_engine.py +149 -0
- package/src/compliance/abac_middleware.py +116 -0
- package/src/compliance/audit_db.py +215 -0
- package/src/compliance/audit_logger.py +148 -0
- package/src/compliance/retention_manager.py +289 -0
- package/src/compliance/retention_scheduler.py +186 -0
- package/src/compliance/tests/__init__.py +4 -0
- package/src/compliance/tests/test_abac_enforcement.py +95 -0
- package/src/compliance/tests/test_abac_engine.py +124 -0
- package/src/compliance/tests/test_abac_mcp_integration.py +118 -0
- package/src/compliance/tests/test_audit_db.py +123 -0
- package/src/compliance/tests/test_audit_logger.py +98 -0
- package/src/compliance/tests/test_mcp_audit.py +128 -0
- package/src/compliance/tests/test_mcp_retention_policy.py +125 -0
- package/src/compliance/tests/test_retention_manager.py +131 -0
- package/src/compliance/tests/test_retention_scheduler.py +99 -0
- package/src/db_connection_manager.py +2 -12
- package/src/embedding_engine.py +61 -669
- package/src/embeddings/__init__.py +47 -0
- package/src/embeddings/cache.py +70 -0
- package/src/embeddings/cli.py +113 -0
- package/src/embeddings/constants.py +47 -0
- package/src/embeddings/database.py +91 -0
- package/src/embeddings/engine.py +247 -0
- package/src/embeddings/model_loader.py +145 -0
- package/src/event_bus.py +3 -13
- package/src/graph/__init__.py +36 -0
- package/src/graph/build_helpers.py +74 -0
- package/src/graph/cli.py +87 -0
- package/src/graph/cluster_builder.py +188 -0
- package/src/graph/cluster_summary.py +148 -0
- package/src/graph/constants.py +47 -0
- package/src/graph/edge_builder.py +162 -0
- package/src/graph/entity_extractor.py +95 -0
- package/src/graph/graph_core.py +226 -0
- package/src/graph/graph_search.py +231 -0
- package/src/graph/hierarchical.py +207 -0
- package/src/graph/schema.py +99 -0
- package/src/graph_engine.py +45 -1451
- package/src/hnsw_index.py +3 -7
- package/src/hybrid_search.py +36 -683
- package/src/learning/__init__.py +27 -12
- package/src/learning/adaptive_ranker.py +50 -12
- package/src/learning/cross_project_aggregator.py +2 -12
- package/src/learning/engagement_tracker.py +2 -12
- package/src/learning/feature_extractor.py +175 -43
- package/src/learning/feedback_collector.py +7 -12
- package/src/learning/learning_db.py +180 -12
- package/src/learning/project_context_manager.py +2 -12
- package/src/learning/source_quality_scorer.py +2 -12
- package/src/learning/synthetic_bootstrap.py +2 -12
- package/src/learning/tests/__init__.py +2 -0
- package/src/learning/tests/test_adaptive_ranker.py +2 -6
- package/src/learning/tests/test_adaptive_ranker_v28.py +60 -0
- package/src/learning/tests/test_aggregator.py +2 -6
- package/src/learning/tests/test_auto_retrain_v28.py +35 -0
- package/src/learning/tests/test_e2e_ranking_v28.py +82 -0
- package/src/learning/tests/test_feature_extractor_v28.py +93 -0
- package/src/learning/tests/test_feedback_collector.py +2 -6
- package/src/learning/tests/test_learning_db.py +2 -6
- package/src/learning/tests/test_learning_db_v28.py +110 -0
- package/src/learning/tests/test_learning_init_v28.py +48 -0
- package/src/learning/tests/test_outcome_signals.py +48 -0
- package/src/learning/tests/test_project_context.py +2 -6
- package/src/learning/tests/test_schema_migration.py +319 -0
- package/src/learning/tests/test_signal_inference.py +11 -13
- package/src/learning/tests/test_source_quality.py +2 -6
- package/src/learning/tests/test_synthetic_bootstrap.py +3 -7
- package/src/learning/tests/test_workflow_miner.py +2 -6
- package/src/learning/workflow_pattern_miner.py +2 -12
- package/src/lifecycle/__init__.py +54 -0
- package/src/lifecycle/bounded_growth.py +239 -0
- package/src/lifecycle/compaction_engine.py +226 -0
- package/src/lifecycle/lifecycle_engine.py +302 -0
- package/src/lifecycle/lifecycle_evaluator.py +225 -0
- package/src/lifecycle/lifecycle_scheduler.py +130 -0
- package/src/lifecycle/retention_policy.py +285 -0
- package/src/lifecycle/tests/__init__.py +4 -0
- package/src/lifecycle/tests/test_bounded_growth.py +193 -0
- package/src/lifecycle/tests/test_compaction.py +179 -0
- package/src/lifecycle/tests/test_lifecycle_engine.py +137 -0
- package/src/lifecycle/tests/test_lifecycle_evaluation.py +177 -0
- package/src/lifecycle/tests/test_lifecycle_scheduler.py +127 -0
- package/src/lifecycle/tests/test_lifecycle_search.py +109 -0
- package/src/lifecycle/tests/test_mcp_compact.py +149 -0
- package/src/lifecycle/tests/test_mcp_lifecycle_status.py +114 -0
- package/src/lifecycle/tests/test_retention_policy.py +162 -0
- package/src/mcp_tools_v28.py +280 -0
- package/src/memory-profiles.py +2 -12
- package/src/memory-reset.py +2 -12
- package/src/memory_compression.py +2 -12
- package/src/memory_store_v2.py +76 -20
- package/src/migrate_v1_to_v2.py +2 -12
- package/src/pattern_learner.py +29 -975
- package/src/patterns/__init__.py +24 -0
- package/src/patterns/analyzers.py +247 -0
- package/src/patterns/learner.py +267 -0
- package/src/patterns/scoring.py +167 -0
- package/src/patterns/store.py +223 -0
- package/src/patterns/terminology.py +138 -0
- package/src/provenance_tracker.py +4 -14
- package/src/query_optimizer.py +4 -6
- package/src/rate_limiter.py +2 -6
- package/src/search/__init__.py +20 -0
- package/src/search/cli.py +77 -0
- package/src/search/constants.py +26 -0
- package/src/search/engine.py +239 -0
- package/src/search/fusion.py +122 -0
- package/src/search/index_loader.py +112 -0
- package/src/search/methods.py +162 -0
- package/src/search_engine_v2.py +4 -6
- package/src/setup_validator.py +7 -13
- package/src/subscription_manager.py +2 -12
- package/src/tree/__init__.py +59 -0
- package/src/tree/builder.py +183 -0
- package/src/tree/nodes.py +196 -0
- package/src/tree/queries.py +252 -0
- package/src/tree/schema.py +76 -0
- package/src/tree_manager.py +10 -711
- package/src/trust/__init__.py +45 -0
- package/src/trust/constants.py +66 -0
- package/src/trust/queries.py +157 -0
- package/src/trust/schema.py +95 -0
- package/src/trust/scorer.py +299 -0
- package/src/trust/signals.py +95 -0
- package/src/trust_scorer.py +39 -697
- package/src/webhook_dispatcher.py +2 -12
- package/ui/app.js +1 -1
- package/ui/js/agents.js +1 -1
- package/ui_server.py +2 -14
- package/ATTRIBUTION.md +0 -140
- package/docs/ARCHITECTURE-V2.5.md +0 -190
- package/docs/GRAPH-ENGINE.md +0 -503
- package/docs/architecture-diagram.drawio +0 -405
- package/docs/plans/2026-02-13-benchmark-suite.md +0 -1349
|
@@ -1,405 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
-
<mxfile host="app.diagrams.net" modified="2026-02-13T00:00:00.000Z" agent="SuperLocalMemory V2" version="24.0.0" type="device">
|
|
3
|
-
<diagram id="slm-v2-architecture" name="10-Layer Architecture">
|
|
4
|
-
<mxGraphModel dx="1422" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1200" pageHeight="900" background="#0A0E1A" math="0" shadow="0">
|
|
5
|
-
<root>
|
|
6
|
-
<mxCell id="0" />
|
|
7
|
-
<mxCell id="1" parent="0" />
|
|
8
|
-
|
|
9
|
-
<!-- ============================================================ -->
|
|
10
|
-
<!-- TITLE AND SUBTITLE -->
|
|
11
|
-
<!-- ============================================================ -->
|
|
12
|
-
<mxCell id="title" value="<font color='#FFFFFF' style='font-size:22px;font-weight:bold;'>SuperLocalMemory V2 &mdash; 10-Layer Architecture</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
13
|
-
<mxGeometry x="250" y="15" width="700" height="35" as="geometry" />
|
|
14
|
-
</mxCell>
|
|
15
|
-
<mxCell id="subtitle" value="<font color='#94A3B8' style='font-size:13px;'>MCP + A2A Dual Protocol &bull; Local-First &bull; Privacy-First &bull; Zero Cloud Dependencies</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
16
|
-
<mxGeometry x="310" y="48" width="580" height="25" as="geometry" />
|
|
17
|
-
</mxCell>
|
|
18
|
-
|
|
19
|
-
<!-- ============================================================ -->
|
|
20
|
-
<!-- 10-LAYER STACK (bottom to top, positioned from y=780 upward) -->
|
|
21
|
-
<!-- Each layer: 520w x 55h, centered at x=340 -->
|
|
22
|
-
<!-- ============================================================ -->
|
|
23
|
-
|
|
24
|
-
<!-- Layer 1: Raw Storage -->
|
|
25
|
-
<mxCell id="L1" value="<b>Layer 1: Raw Storage</b><br><font style='font-size:10px;color:#FEFCE8;'>src/memory_store_v2.py &mdash; SQLite + FTS5 + TF-IDF vectors<br>DB: ~/.claude-memory/memory.db</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F59E0B;fontColor=#1E1B0F;strokeColor=#D97706;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
26
|
-
<mxGeometry x="340" y="750" width="520" height="58" as="geometry" />
|
|
27
|
-
</mxCell>
|
|
28
|
-
|
|
29
|
-
<!-- Layer 2: Hierarchical Index -->
|
|
30
|
-
<mxCell id="L2" value="<b>Layer 2: Hierarchical Index</b><br><font style='font-size:10px;color:#FFF7ED;'>src/tree_manager.py &mdash; Parent-child relationships, breadcrumb navigation</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F97316;fontColor=#1E1B0F;strokeColor=#EA580C;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
31
|
-
<mxGeometry x="340" y="685" width="520" height="55" as="geometry" />
|
|
32
|
-
</mxCell>
|
|
33
|
-
|
|
34
|
-
<!-- Layer 3: Knowledge Graph -->
|
|
35
|
-
<mxCell id="L3" value="<b>Layer 3: Knowledge Graph</b><br><font style='font-size:10px;color:#FFF1F2;'>src/graph_engine.py &mdash; TF-IDF entity extraction, hierarchical Leiden clustering, community summaries</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EF4444;fontColor=#1E1B0F;strokeColor=#DC2626;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
36
|
-
<mxGeometry x="340" y="620" width="520" height="55" as="geometry" />
|
|
37
|
-
</mxCell>
|
|
38
|
-
|
|
39
|
-
<!-- Layer 4: Pattern Learning -->
|
|
40
|
-
<mxCell id="L4" value="<b>Layer 4: Pattern Learning</b><br><font style='font-size:10px;color:#FDF2F8;'>src/pattern_learner.py &mdash; MACLA Beta-Binomial Bayesian confidence scoring</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#EC4899;fontColor=#1E1B0F;strokeColor=#DB2777;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
41
|
-
<mxGeometry x="340" y="555" width="520" height="55" as="geometry" />
|
|
42
|
-
</mxCell>
|
|
43
|
-
|
|
44
|
-
<!-- Layer 5: Skills Layer -->
|
|
45
|
-
<mxCell id="L5" value="<b>Layer 5: Skills Layer</b><br><font style='font-size:10px;color:#FAF5FF;'>skills/* &mdash; 6 slash-command skills (Claude Code, Continue.dev, Cody)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#A855F7;fontColor=#FFFFFF;strokeColor=#9333EA;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
46
|
-
<mxGeometry x="340" y="490" width="520" height="55" as="geometry" />
|
|
47
|
-
</mxCell>
|
|
48
|
-
|
|
49
|
-
<!-- Layer 6: MCP Integration -->
|
|
50
|
-
<mxCell id="L6" value="<b>Layer 6: MCP Integration</b><br><font style='font-size:10px;color:#EDE9FE;'>mcp_server.py &mdash; 6 tools, 4 resources, 2 prompts via Model Context Protocol</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B5CF6;fontColor=#FFFFFF;strokeColor=#7C3AED;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
51
|
-
<mxGeometry x="340" y="425" width="520" height="55" as="geometry" />
|
|
52
|
-
</mxCell>
|
|
53
|
-
|
|
54
|
-
<!-- Layer 7: Universal Access -->
|
|
55
|
-
<mxCell id="L7" value="<b>Layer 7: Universal Access</b><br><font style='font-size:10px;color:#EEF2FF;'>MCP + Skills + CLI &mdash; 3 access methods, 16+ IDE integrations</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#6366F1;fontColor=#FFFFFF;strokeColor=#4F46E5;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
56
|
-
<mxGeometry x="340" y="360" width="520" height="55" as="geometry" />
|
|
57
|
-
</mxCell>
|
|
58
|
-
|
|
59
|
-
<!-- Layer 8: Hybrid Search -->
|
|
60
|
-
<mxCell id="L8" value="<b>Layer 8: Hybrid Search</b><br><font style='font-size:10px;color:#EFF6FF;'>src/hybrid_search.py &mdash; Semantic + FTS5 + Graph combined retrieval</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#3B82F6;fontColor=#FFFFFF;strokeColor=#2563EB;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
61
|
-
<mxGeometry x="340" y="295" width="520" height="55" as="geometry" />
|
|
62
|
-
</mxCell>
|
|
63
|
-
|
|
64
|
-
<!-- Layer 9: Visualization -->
|
|
65
|
-
<mxCell id="L9" value="<b>Layer 9: Visualization</b><br><font style='font-size:10px;color:#ECFEFF;'>ui_server.py &mdash; Interactive web dashboard, timeline, graph explorer</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#06B6D4;fontColor=#FFFFFF;strokeColor=#0891B2;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;" vertex="1" parent="1">
|
|
66
|
-
<mxGeometry x="340" y="230" width="520" height="55" as="geometry" />
|
|
67
|
-
</mxCell>
|
|
68
|
-
|
|
69
|
-
<!-- Layer 10: A2A Agent Collaboration -->
|
|
70
|
-
<mxCell id="L10" value="<b>Layer 10: A2A Agent Collaboration</b><br><font style='font-size:10px;color:#ECFDF5;'>src/a2a_server.py (PLANNED v2.7) &mdash; Agent-to-Agent Protocol (Google/Linux Foundation)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#10B981;fontColor=#FFFFFF;strokeColor=#059669;arcSize=8;fontSize=12;align=center;verticalAlign=middle;shadow=1;dashed=1;dashPattern=8 4;" vertex="1" parent="1">
|
|
71
|
-
<mxGeometry x="340" y="165" width="520" height="55" as="geometry" />
|
|
72
|
-
</mxCell>
|
|
73
|
-
|
|
74
|
-
<!-- ============================================================ -->
|
|
75
|
-
<!-- INTER-LAYER ARROWS (data flow upward) -->
|
|
76
|
-
<!-- ============================================================ -->
|
|
77
|
-
<mxCell id="arrow_L1_L2" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L1" target="L2" parent="1">
|
|
78
|
-
<mxGeometry relative="1" as="geometry" />
|
|
79
|
-
</mxCell>
|
|
80
|
-
<mxCell id="arrow_L2_L3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L2" target="L3" parent="1">
|
|
81
|
-
<mxGeometry relative="1" as="geometry" />
|
|
82
|
-
</mxCell>
|
|
83
|
-
<mxCell id="arrow_L3_L4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L3" target="L4" parent="1">
|
|
84
|
-
<mxGeometry relative="1" as="geometry" />
|
|
85
|
-
</mxCell>
|
|
86
|
-
<mxCell id="arrow_L4_L5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L4" target="L5" parent="1">
|
|
87
|
-
<mxGeometry relative="1" as="geometry" />
|
|
88
|
-
</mxCell>
|
|
89
|
-
<mxCell id="arrow_L5_L6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L5" target="L6" parent="1">
|
|
90
|
-
<mxGeometry relative="1" as="geometry" />
|
|
91
|
-
</mxCell>
|
|
92
|
-
<mxCell id="arrow_L6_L7" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L6" target="L7" parent="1">
|
|
93
|
-
<mxGeometry relative="1" as="geometry" />
|
|
94
|
-
</mxCell>
|
|
95
|
-
<mxCell id="arrow_L7_L8" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L7" target="L8" parent="1">
|
|
96
|
-
<mxGeometry relative="1" as="geometry" />
|
|
97
|
-
</mxCell>
|
|
98
|
-
<mxCell id="arrow_L8_L9" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;" edge="1" source="L8" target="L9" parent="1">
|
|
99
|
-
<mxGeometry relative="1" as="geometry" />
|
|
100
|
-
</mxCell>
|
|
101
|
-
<mxCell id="arrow_L9_L10" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#475569;strokeWidth=1;endArrow=block;endFill=1;opacity=40;dashed=1;dashPattern=8 4;" edge="1" source="L9" target="L10" parent="1">
|
|
102
|
-
<mxGeometry relative="1" as="geometry" />
|
|
103
|
-
</mxCell>
|
|
104
|
-
|
|
105
|
-
<!-- ============================================================ -->
|
|
106
|
-
<!-- LEFT SIDE: MCP PROTOCOL PATH (Agent -> Tool) — LIVE -->
|
|
107
|
-
<!-- ============================================================ -->
|
|
108
|
-
|
|
109
|
-
<!-- MCP Path Vertical Bar -->
|
|
110
|
-
<mxCell id="mcp_path" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#8B5CF6;strokeColor=#7C3AED;opacity=20;arcSize=12;" vertex="1" parent="1">
|
|
111
|
-
<mxGeometry x="55" y="165" width="255" height="660" as="geometry" />
|
|
112
|
-
</mxCell>
|
|
113
|
-
|
|
114
|
-
<!-- MCP Path Label -->
|
|
115
|
-
<mxCell id="mcp_label" value="<font color='#C4B5FD' style='font-size:14px;font-weight:bold;'>MCP Protocol</font><br><font color='#A78BFA' style='font-size:11px;'>Agent &rarr; Tool</font><br><font color='#22C55E' style='font-size:10px;font-weight:bold;'>LIVE</font>" style="text;html=1;align=center;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
116
|
-
<mxGeometry x="110" y="172" width="140" height="60" as="geometry" />
|
|
117
|
-
</mxCell>
|
|
118
|
-
|
|
119
|
-
<!-- MCP Connected IDEs -->
|
|
120
|
-
<mxCell id="mcp_ide1" value="<font style='font-size:10px;'><b>Claude Desktop</b></font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#6D28D9;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
121
|
-
<mxGeometry x="70" y="245" width="110" height="30" as="geometry" />
|
|
122
|
-
</mxCell>
|
|
123
|
-
<mxCell id="mcp_ide2" value="<font style='font-size:10px;'><b>Cursor</b></font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#6D28D9;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
124
|
-
<mxGeometry x="190" y="245" width="110" height="30" as="geometry" />
|
|
125
|
-
</mxCell>
|
|
126
|
-
<mxCell id="mcp_ide3" value="<font style='font-size:10px;'><b>Windsurf</b></font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#6D28D9;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
127
|
-
<mxGeometry x="70" y="285" width="110" height="30" as="geometry" />
|
|
128
|
-
</mxCell>
|
|
129
|
-
<mxCell id="mcp_ide4" value="<font style='font-size:10px;'><b>VS Code / Copilot</b></font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#6D28D9;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
130
|
-
<mxGeometry x="190" y="285" width="110" height="30" as="geometry" />
|
|
131
|
-
</mxCell>
|
|
132
|
-
<mxCell id="mcp_ide5" value="<font style='font-size:10px;'><b>Continue.dev</b></font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#6D28D9;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
133
|
-
<mxGeometry x="70" y="325" width="110" height="30" as="geometry" />
|
|
134
|
-
</mxCell>
|
|
135
|
-
<mxCell id="mcp_ide6" value="<font style='font-size:10px;'><b>Zed</b></font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#6D28D9;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
136
|
-
<mxGeometry x="190" y="325" width="110" height="30" as="geometry" />
|
|
137
|
-
</mxCell>
|
|
138
|
-
<mxCell id="mcp_ide_more" value="<font style='font-size:10px;color:#94A3B8;'>+ 10 more IDEs...</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
139
|
-
<mxGeometry x="115" y="360" width="120" height="25" as="geometry" />
|
|
140
|
-
</mxCell>
|
|
141
|
-
|
|
142
|
-
<!-- MCP Tools Detail -->
|
|
143
|
-
<mxCell id="mcp_tools" value="<font color='#C4B5FD' style='font-size:10px;'><b>MCP Capabilities:</b><br>6 Tools: remember, recall, search,<br>forget, list, build-graph<br>4 Resources: status, recent, stats, graph<br>2 Prompts: context, summary</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#4C1D95;arcSize=10;fontSize=10;align=left;spacingLeft=10;" vertex="1" parent="1">
|
|
144
|
-
<mxGeometry x="70" y="395" width="230" height="80" as="geometry" />
|
|
145
|
-
</mxCell>
|
|
146
|
-
|
|
147
|
-
<!-- MCP CLI & Skills -->
|
|
148
|
-
<mxCell id="mcp_cli" value="<font color='#C4B5FD' style='font-size:10px;'><b>CLI:</b> slm remember | recall | status<br><b>Skills:</b> /superlocalmemoryv2:*</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#1E1B4B;fontColor=#C4B5FD;strokeColor=#4C1D95;arcSize=10;fontSize=10;align=left;spacingLeft=10;" vertex="1" parent="1">
|
|
149
|
-
<mxGeometry x="70" y="485" width="230" height="45" as="geometry" />
|
|
150
|
-
</mxCell>
|
|
151
|
-
|
|
152
|
-
<!-- MCP Arrow to Layer 6 -->
|
|
153
|
-
<mxCell id="mcp_arrow_to_stack" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#8B5CF6;strokeWidth=2;rounded=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="mcp_tools" target="L6" parent="1">
|
|
154
|
-
<mxGeometry relative="1" as="geometry" />
|
|
155
|
-
</mxCell>
|
|
156
|
-
<mxCell id="mcp_arrow_to_L7" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#8B5CF6;strokeWidth=2;rounded=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="mcp_cli" target="L7" parent="1">
|
|
157
|
-
<mxGeometry relative="1" as="geometry" />
|
|
158
|
-
</mxCell>
|
|
159
|
-
|
|
160
|
-
<!-- MCP Arrow to Layer 5 (Skills) -->
|
|
161
|
-
<mxCell id="mcp_arrow_to_L5" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#8B5CF6;strokeWidth=1.5;rounded=1;exitX=1;exitY=0.8;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=0;" edge="1" source="mcp_cli" target="L5" parent="1">
|
|
162
|
-
<mxGeometry relative="1" as="geometry" />
|
|
163
|
-
</mxCell>
|
|
164
|
-
|
|
165
|
-
<!-- Database icon at bottom left -->
|
|
166
|
-
<mxCell id="db_icon" value="<font color='#F59E0B' style='font-size:11px;font-weight:bold;'>SQLite DB</font><br><font color='#94A3B8' style='font-size:9px;'>~/.claude-memory/<br>memory.db</font>" style="shape=cylinder3;whiteSpace=wrap;html=1;boundedLbl=1;backgroundOutline=1;size=6;fillColor=#1C1917;strokeColor=#F59E0B;fontColor=#F59E0B;arcSize=8;shadow=1;" vertex="1" parent="1">
|
|
167
|
-
<mxGeometry x="115" y="710" width="130" height="70" as="geometry" />
|
|
168
|
-
</mxCell>
|
|
169
|
-
<!-- DB Arrow to Layer 1 -->
|
|
170
|
-
<mxCell id="db_arrow" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#F59E0B;strokeWidth=2;rounded=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" source="db_icon" target="L1" parent="1">
|
|
171
|
-
<mxGeometry relative="1" as="geometry" />
|
|
172
|
-
</mxCell>
|
|
173
|
-
|
|
174
|
-
<!-- ============================================================ -->
|
|
175
|
-
<!-- RIGHT SIDE: A2A PROTOCOL PATH (Agent <-> Agent) — PLANNED -->
|
|
176
|
-
<!-- ============================================================ -->
|
|
177
|
-
|
|
178
|
-
<!-- A2A Path Vertical Bar -->
|
|
179
|
-
<mxCell id="a2a_path" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#10B981;strokeColor=#059669;opacity=15;arcSize=12;dashed=1;dashPattern=12 6;" vertex="1" parent="1">
|
|
180
|
-
<mxGeometry x="890" y="165" width="280" height="430" as="geometry" />
|
|
181
|
-
</mxCell>
|
|
182
|
-
|
|
183
|
-
<!-- A2A Path Label -->
|
|
184
|
-
<mxCell id="a2a_label" value="<font color='#6EE7B7' style='font-size:14px;font-weight:bold;'>A2A Protocol</font><br><font color='#34D399' style='font-size:11px;'>Agent &harr; Agent</font><br><font color='#FBBF24' style='font-size:10px;font-weight:bold;'>PLANNED v2.7</font>" style="text;html=1;align=center;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
185
|
-
<mxGeometry x="960" y="172" width="140" height="60" as="geometry" />
|
|
186
|
-
</mxCell>
|
|
187
|
-
|
|
188
|
-
<!-- A2A Connected Agents -->
|
|
189
|
-
<mxCell id="a2a_agent1" value="<font style='font-size:10px;'><b>Research Agent</b><br>(Perplexity)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#064E3B;fontColor=#6EE7B7;strokeColor=#059669;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
190
|
-
<mxGeometry x="905" y="245" width="120" height="40" as="geometry" />
|
|
191
|
-
</mxCell>
|
|
192
|
-
<mxCell id="a2a_agent2" value="<font style='font-size:10px;'><b>Coding Agent</b><br>(Claude Code)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#064E3B;fontColor=#6EE7B7;strokeColor=#059669;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
193
|
-
<mxGeometry x="1035" y="245" width="120" height="40" as="geometry" />
|
|
194
|
-
</mxCell>
|
|
195
|
-
<mxCell id="a2a_agent3" value="<font style='font-size:10px;'><b>Testing Agent</b><br>(Codex)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#064E3B;fontColor=#6EE7B7;strokeColor=#059669;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
196
|
-
<mxGeometry x="905" y="295" width="120" height="40" as="geometry" />
|
|
197
|
-
</mxCell>
|
|
198
|
-
<mxCell id="a2a_agent4" value="<font style='font-size:10px;'><b>Review Agent</b><br>(Custom)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#064E3B;fontColor=#6EE7B7;strokeColor=#059669;arcSize=14;fontSize=10;shadow=1;" vertex="1" parent="1">
|
|
199
|
-
<mxGeometry x="1035" y="295" width="120" height="40" as="geometry" />
|
|
200
|
-
</mxCell>
|
|
201
|
-
|
|
202
|
-
<!-- A2A Protocol Details -->
|
|
203
|
-
<mxCell id="a2a_details" value="<font color='#6EE7B7' style='font-size:10px;'><b>A2A Capabilities:</b><br>JSON-RPC 2.0 + SSE Streaming<br>Agent Card Discovery<br>gRPC + JSON-RPC Dual Transport<br>Ed25519 Signed Security Cards<br>150+ orgs (Google, MS, AWS, IBM)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#064E3B;fontColor=#6EE7B7;strokeColor=#065F46;arcSize=10;fontSize=10;align=left;spacingLeft=10;" vertex="1" parent="1">
|
|
204
|
-
<mxGeometry x="910" y="350" width="245" height="90" as="geometry" />
|
|
205
|
-
</mxCell>
|
|
206
|
-
|
|
207
|
-
<!-- A2A Key Insight -->
|
|
208
|
-
<mxCell id="a2a_insight" value="<font color='#FBBF24' style='font-size:9px;'><b>Key Insight:</b> A2A has NO shared memory.<br>SLM fills this gap as the universal<br>memory layer for all agents.</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#422006;fontColor=#FBBF24;strokeColor=#92400E;arcSize=10;fontSize=9;align=center;dashed=1;dashPattern=4 4;" vertex="1" parent="1">
|
|
209
|
-
<mxGeometry x="920" y="455" width="225" height="50" as="geometry" />
|
|
210
|
-
</mxCell>
|
|
211
|
-
|
|
212
|
-
<!-- A2A Arrow to Layer 10 -->
|
|
213
|
-
<mxCell id="a2a_arrow_to_L10" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#10B981;strokeWidth=2;rounded=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;dashPattern=8 4;" edge="1" source="a2a_details" target="L10" parent="1">
|
|
214
|
-
<mxGeometry relative="1" as="geometry" />
|
|
215
|
-
</mxCell>
|
|
216
|
-
|
|
217
|
-
<!-- Bidirectional arrow showing A2A is bidirectional -->
|
|
218
|
-
<mxCell id="a2a_bidir" value="" style="endArrow=block;startArrow=block;endFill=1;startFill=1;html=1;strokeColor=#10B981;strokeWidth=1.5;rounded=1;dashed=1;dashPattern=6 3;" edge="1" source="a2a_agent1" target="a2a_agent2" parent="1">
|
|
219
|
-
<mxGeometry relative="1" as="geometry" />
|
|
220
|
-
</mxCell>
|
|
221
|
-
|
|
222
|
-
<!-- ============================================================ -->
|
|
223
|
-
<!-- v2.5 COMPONENTS GROUP (right side, below A2A) -->
|
|
224
|
-
<!-- ============================================================ -->
|
|
225
|
-
|
|
226
|
-
<!-- v2.5 Group Container -->
|
|
227
|
-
<mxCell id="v25_group" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=none;strokeColor=#F59E0B;arcSize=6;dashed=1;dashPattern=8 4;strokeWidth=2;opacity=80;" vertex="1" parent="1">
|
|
228
|
-
<mxGeometry x="890" y="610" width="280" height="210" as="geometry" />
|
|
229
|
-
</mxCell>
|
|
230
|
-
|
|
231
|
-
<!-- v2.5 Group Title -->
|
|
232
|
-
<mxCell id="v25_title" value="<font color='#F59E0B' style='font-size:12px;font-weight:bold;'>v2.5 Components</font><br><font color='#FBBF24' style='font-size:9px;'>IN DEVELOPMENT</font>" style="text;html=1;align=center;verticalAlign=top;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
233
|
-
<mxGeometry x="960" y="615" width="140" height="38" as="geometry" />
|
|
234
|
-
</mxCell>
|
|
235
|
-
|
|
236
|
-
<!-- v2.5: db_connection_manager (PREREQUISITE) -->
|
|
237
|
-
<mxCell id="v25_db" value="<font style='font-size:9px;'><b>db_connection_manager.py</b><br>WAL mode, pool, write queue</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#78350F;fontColor=#FDE68A;strokeColor=#F59E0B;arcSize=12;fontSize=9;shadow=1;" vertex="1" parent="1">
|
|
238
|
-
<mxGeometry x="900" y="655" width="125" height="36" as="geometry" />
|
|
239
|
-
</mxCell>
|
|
240
|
-
<mxCell id="v25_prereq_badge" value="<font color='#FEF3C7' style='font-size:7px;font-weight:bold;'>PREREQUISITE</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#DC2626;fontColor=#FEF3C7;strokeColor=#DC2626;arcSize=20;fontSize=7;" vertex="1" parent="1">
|
|
241
|
-
<mxGeometry x="1030" y="655" width="70" height="16" as="geometry" />
|
|
242
|
-
</mxCell>
|
|
243
|
-
|
|
244
|
-
<!-- v2.5: event_bus -->
|
|
245
|
-
<mxCell id="v25_eventbus" value="<font style='font-size:9px;'><b>event_bus.py</b><br>SSE/WebSocket/Webhook</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#78350F;fontColor=#FDE68A;strokeColor=#B45309;arcSize=12;fontSize=9;" vertex="1" parent="1">
|
|
246
|
-
<mxGeometry x="1035" y="675" width="125" height="36" as="geometry" />
|
|
247
|
-
</mxCell>
|
|
248
|
-
|
|
249
|
-
<!-- v2.5: subscription_manager -->
|
|
250
|
-
<mxCell id="v25_sub" value="<font style='font-size:9px;'><b>subscription_manager.py</b><br>Durable/ephemeral subs</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#78350F;fontColor=#FDE68A;strokeColor=#B45309;arcSize=12;fontSize=9;" vertex="1" parent="1">
|
|
251
|
-
<mxGeometry x="900" y="697" width="125" height="36" as="geometry" />
|
|
252
|
-
</mxCell>
|
|
253
|
-
|
|
254
|
-
<!-- v2.5: webhook_dispatcher -->
|
|
255
|
-
<mxCell id="v25_webhook" value="<font style='font-size:9px;'><b>webhook_dispatcher.py</b><br>HTTP POST events</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#78350F;fontColor=#FDE68A;strokeColor=#B45309;arcSize=12;fontSize=9;" vertex="1" parent="1">
|
|
256
|
-
<mxGeometry x="1035" y="717" width="125" height="36" as="geometry" />
|
|
257
|
-
</mxCell>
|
|
258
|
-
|
|
259
|
-
<!-- v2.5: agent_registry -->
|
|
260
|
-
<mxCell id="v25_registry" value="<font style='font-size:9px;'><b>agent_registry.py</b><br>Agent tracking, protocols, stats</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#78350F;fontColor=#FDE68A;strokeColor=#B45309;arcSize=12;fontSize=9;" vertex="1" parent="1">
|
|
261
|
-
<mxGeometry x="900" y="739" width="125" height="36" as="geometry" />
|
|
262
|
-
</mxCell>
|
|
263
|
-
|
|
264
|
-
<!-- v2.5: provenance_tracker -->
|
|
265
|
-
<mxCell id="v25_provenance" value="<font style='font-size:9px;'><b>provenance_tracker.py</b><br>Memory origin, lineage</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#78350F;fontColor=#FDE68A;strokeColor=#B45309;arcSize=12;fontSize=9;" vertex="1" parent="1">
|
|
266
|
-
<mxGeometry x="1035" y="759" width="125" height="36" as="geometry" />
|
|
267
|
-
</mxCell>
|
|
268
|
-
|
|
269
|
-
<!-- v2.5: trust_scorer -->
|
|
270
|
-
<mxCell id="v25_trust" value="<font style='font-size:9px;'><b>trust_scorer.py</b><br>Bayesian trust (MACLA)</font>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#78350F;fontColor=#FDE68A;strokeColor=#B45309;arcSize=12;fontSize=9;" vertex="1" parent="1">
|
|
271
|
-
<mxGeometry x="965" y="781" width="125" height="36" as="geometry" />
|
|
272
|
-
</mxCell>
|
|
273
|
-
|
|
274
|
-
<!-- v2.5 Arrow to main stack (db_connection_manager -> Layer 1) -->
|
|
275
|
-
<mxCell id="v25_arrow_db" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#F59E0B;strokeWidth=1.5;rounded=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.7;entryDx=0;entryDy=0;dashed=1;dashPattern=6 3;" edge="1" source="v25_db" target="L1" parent="1">
|
|
276
|
-
<mxGeometry relative="1" as="geometry" />
|
|
277
|
-
</mxCell>
|
|
278
|
-
|
|
279
|
-
<!-- v2.5 Arrow: event_bus -> Layer 9 (dashboard) -->
|
|
280
|
-
<mxCell id="v25_arrow_eventbus" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#F59E0B;strokeWidth=1.5;rounded=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;dashed=1;dashPattern=6 3;" edge="1" target="L9" parent="1">
|
|
281
|
-
<mxGeometry relative="1" as="geometry">
|
|
282
|
-
<mxPoint x="1035" y="693" as="sourcePoint" />
|
|
283
|
-
<Array as="points">
|
|
284
|
-
<mxPoint x="880" y="693" />
|
|
285
|
-
<mxPoint x="880" y="258" />
|
|
286
|
-
</Array>
|
|
287
|
-
</mxGeometry>
|
|
288
|
-
</mxCell>
|
|
289
|
-
|
|
290
|
-
<!-- v2.5 Arrow: agent_registry -> Layer 10 (A2A) -->
|
|
291
|
-
<mxCell id="v25_arrow_registry" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#F59E0B;strokeWidth=1.5;rounded=1;entryX=1;entryY=0.8;entryDx=0;entryDy=0;dashed=1;dashPattern=6 3;" edge="1" target="L10" parent="1">
|
|
292
|
-
<mxGeometry relative="1" as="geometry">
|
|
293
|
-
<mxPoint x="900" y="757" as="sourcePoint" />
|
|
294
|
-
<Array as="points">
|
|
295
|
-
<mxPoint x="875" y="757" />
|
|
296
|
-
<mxPoint x="875" y="209" />
|
|
297
|
-
</Array>
|
|
298
|
-
</mxGeometry>
|
|
299
|
-
</mxCell>
|
|
300
|
-
|
|
301
|
-
<!-- ============================================================ -->
|
|
302
|
-
<!-- LEGEND -->
|
|
303
|
-
<!-- ============================================================ -->
|
|
304
|
-
<mxCell id="legend_bg" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#111827;strokeColor=#374151;arcSize=10;opacity=90;" vertex="1" parent="1">
|
|
305
|
-
<mxGeometry x="70" y="570" width="230" height="115" as="geometry" />
|
|
306
|
-
</mxCell>
|
|
307
|
-
<mxCell id="legend_title" value="<font color='#E5E7EB' style='font-size:11px;font-weight:bold;'>Legend</font>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
308
|
-
<mxGeometry x="82" y="575" width="60" height="25" as="geometry" />
|
|
309
|
-
</mxCell>
|
|
310
|
-
|
|
311
|
-
<!-- Legend: Live -->
|
|
312
|
-
<mxCell id="legend_live_box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#22C55E;strokeColor=#16A34A;arcSize=30;" vertex="1" parent="1">
|
|
313
|
-
<mxGeometry x="85" y="605" width="14" height="14" as="geometry" />
|
|
314
|
-
</mxCell>
|
|
315
|
-
<mxCell id="legend_live_text" value="<font color='#D1D5DB' style='font-size:10px;'>Live (Production)</font>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
316
|
-
<mxGeometry x="105" y="600" width="110" height="25" as="geometry" />
|
|
317
|
-
</mxCell>
|
|
318
|
-
|
|
319
|
-
<!-- Legend: Planned v2.7 -->
|
|
320
|
-
<mxCell id="legend_planned_box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#10B981;strokeColor=#059669;arcSize=30;dashed=1;dashPattern=4 2;" vertex="1" parent="1">
|
|
321
|
-
<mxGeometry x="85" y="628" width="14" height="14" as="geometry" />
|
|
322
|
-
</mxCell>
|
|
323
|
-
<mxCell id="legend_planned_text" value="<font color='#D1D5DB' style='font-size:10px;'>Planned v2.7 (A2A)</font>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
324
|
-
<mxGeometry x="105" y="623" width="120" height="25" as="geometry" />
|
|
325
|
-
</mxCell>
|
|
326
|
-
|
|
327
|
-
<!-- Legend: v2.5 In Development -->
|
|
328
|
-
<mxCell id="legend_dev_box" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#F59E0B;strokeColor=#D97706;arcSize=30;dashed=1;dashPattern=4 2;" vertex="1" parent="1">
|
|
329
|
-
<mxGeometry x="85" y="651" width="14" height="14" as="geometry" />
|
|
330
|
-
</mxCell>
|
|
331
|
-
<mxCell id="legend_dev_text" value="<font color='#D1D5DB' style='font-size:10px;'>v2.5 In Development</font>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
332
|
-
<mxGeometry x="105" y="646" width="130" height="25" as="geometry" />
|
|
333
|
-
</mxCell>
|
|
334
|
-
|
|
335
|
-
<!-- Legend: MCP Protocol -->
|
|
336
|
-
<mxCell id="legend_mcp_line" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#8B5CF6;strokeWidth=2;rounded=0;" edge="1" parent="1">
|
|
337
|
-
<mxGeometry relative="1" as="geometry">
|
|
338
|
-
<mxPoint x="85" y="679" as="sourcePoint" />
|
|
339
|
-
<mxPoint x="99" y="679" as="targetPoint" />
|
|
340
|
-
</mxGeometry>
|
|
341
|
-
</mxCell>
|
|
342
|
-
<mxCell id="legend_mcp_text" value="<font color='#C4B5FD' style='font-size:10px;'>MCP Protocol (Violet)</font>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
343
|
-
<mxGeometry x="105" y="669" width="130" height="25" as="geometry" />
|
|
344
|
-
</mxCell>
|
|
345
|
-
|
|
346
|
-
<!-- ============================================================ -->
|
|
347
|
-
<!-- LAYER NUMBER BADGES (left side of each layer) -->
|
|
348
|
-
<!-- ============================================================ -->
|
|
349
|
-
<mxCell id="badge_L1" value="<font color='#0A0E1A' style='font-size:9px;font-weight:bold;'>L1</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#F59E0B;strokeColor=#D97706;aspect=fixed;" vertex="1" parent="1">
|
|
350
|
-
<mxGeometry x="345" y="753" width="24" height="24" as="geometry" />
|
|
351
|
-
</mxCell>
|
|
352
|
-
<mxCell id="badge_L2" value="<font color='#0A0E1A' style='font-size:9px;font-weight:bold;'>L2</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#F97316;strokeColor=#EA580C;aspect=fixed;" vertex="1" parent="1">
|
|
353
|
-
<mxGeometry x="345" y="700" width="24" height="24" as="geometry" />
|
|
354
|
-
</mxCell>
|
|
355
|
-
<mxCell id="badge_L3" value="<font color='#0A0E1A' style='font-size:9px;font-weight:bold;'>L3</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#EF4444;strokeColor=#DC2626;aspect=fixed;" vertex="1" parent="1">
|
|
356
|
-
<mxGeometry x="345" y="636" width="24" height="24" as="geometry" />
|
|
357
|
-
</mxCell>
|
|
358
|
-
<mxCell id="badge_L4" value="<font color='#0A0E1A' style='font-size:9px;font-weight:bold;'>L4</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#EC4899;strokeColor=#DB2777;aspect=fixed;" vertex="1" parent="1">
|
|
359
|
-
<mxGeometry x="345" y="571" width="24" height="24" as="geometry" />
|
|
360
|
-
</mxCell>
|
|
361
|
-
<mxCell id="badge_L5" value="<font color='#FFFFFF' style='font-size:9px;font-weight:bold;'>L5</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#A855F7;strokeColor=#9333EA;aspect=fixed;" vertex="1" parent="1">
|
|
362
|
-
<mxGeometry x="345" y="506" width="24" height="24" as="geometry" />
|
|
363
|
-
</mxCell>
|
|
364
|
-
<mxCell id="badge_L6" value="<font color='#FFFFFF' style='font-size:9px;font-weight:bold;'>L6</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#8B5CF6;strokeColor=#7C3AED;aspect=fixed;" vertex="1" parent="1">
|
|
365
|
-
<mxGeometry x="345" y="441" width="24" height="24" as="geometry" />
|
|
366
|
-
</mxCell>
|
|
367
|
-
<mxCell id="badge_L7" value="<font color='#FFFFFF' style='font-size:9px;font-weight:bold;'>L7</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#6366F1;strokeColor=#4F46E5;aspect=fixed;" vertex="1" parent="1">
|
|
368
|
-
<mxGeometry x="345" y="376" width="24" height="24" as="geometry" />
|
|
369
|
-
</mxCell>
|
|
370
|
-
<mxCell id="badge_L8" value="<font color='#FFFFFF' style='font-size:9px;font-weight:bold;'>L8</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#3B82F6;strokeColor=#2563EB;aspect=fixed;" vertex="1" parent="1">
|
|
371
|
-
<mxGeometry x="345" y="311" width="24" height="24" as="geometry" />
|
|
372
|
-
</mxCell>
|
|
373
|
-
<mxCell id="badge_L9" value="<font color='#FFFFFF' style='font-size:9px;font-weight:bold;'>L9</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#06B6D4;strokeColor=#0891B2;aspect=fixed;" vertex="1" parent="1">
|
|
374
|
-
<mxGeometry x="345" y="246" width="24" height="24" as="geometry" />
|
|
375
|
-
</mxCell>
|
|
376
|
-
<mxCell id="badge_L10" value="<font color='#FFFFFF' style='font-size:9px;font-weight:bold;'>L10</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#10B981;strokeColor=#059669;aspect=fixed;" vertex="1" parent="1">
|
|
377
|
-
<mxGeometry x="345" y="178" width="24" height="24" as="geometry" />
|
|
378
|
-
</mxCell>
|
|
379
|
-
|
|
380
|
-
<!-- ============================================================ -->
|
|
381
|
-
<!-- DATA FLOW ANNOTATION -->
|
|
382
|
-
<!-- ============================================================ -->
|
|
383
|
-
<mxCell id="dataflow_label" value="<font color='#64748B' style='font-size:10px;font-style:italic;'>Data flows upward through<br>additive enhancement layers</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
384
|
-
<mxGeometry x="75" y="835" width="170" height="40" as="geometry" />
|
|
385
|
-
</mxCell>
|
|
386
|
-
|
|
387
|
-
<!-- Upward arrow for data flow annotation -->
|
|
388
|
-
<mxCell id="dataflow_arrow" value="" style="endArrow=block;endFill=1;html=1;strokeColor=#475569;strokeWidth=1.5;rounded=0;" edge="1" parent="1">
|
|
389
|
-
<mxGeometry relative="1" as="geometry">
|
|
390
|
-
<mxPoint x="160" y="837" as="sourcePoint" />
|
|
391
|
-
<mxPoint x="160" y="815" as="targetPoint" />
|
|
392
|
-
</mxGeometry>
|
|
393
|
-
</mxCell>
|
|
394
|
-
|
|
395
|
-
<!-- ============================================================ -->
|
|
396
|
-
<!-- FOOTER — Attribution -->
|
|
397
|
-
<!-- ============================================================ -->
|
|
398
|
-
<mxCell id="footer" value="<font color='#475569' style='font-size:9px;'>SuperLocalMemory V2 &copy; 2026 Varun Pratap Bhardwaj &bull; MIT License &bull; github.com/varun369/SuperLocalMemoryV2</font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
399
|
-
<mxGeometry x="310" y="860" width="560" height="25" as="geometry" />
|
|
400
|
-
</mxCell>
|
|
401
|
-
|
|
402
|
-
</root>
|
|
403
|
-
</mxGraphModel>
|
|
404
|
-
</diagram>
|
|
405
|
-
</mxfile>
|