uaml-memory 1.0.0__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.
- uaml_memory-1.0.0/LICENSE +60 -0
- uaml_memory-1.0.0/NOTICE +29 -0
- uaml_memory-1.0.0/PKG-INFO +390 -0
- uaml_memory-1.0.0/README.md +347 -0
- uaml_memory-1.0.0/pyproject.toml +71 -0
- uaml_memory-1.0.0/setup.cfg +4 -0
- uaml_memory-1.0.0/tests/test_access.py +54 -0
- uaml_memory-1.0.0/tests/test_analytics.py +70 -0
- uaml_memory-1.0.0/tests/test_api.py +241 -0
- uaml_memory-1.0.0/tests/test_api_client.py +193 -0
- uaml_memory-1.0.0/tests/test_asimov.py +302 -0
- uaml_memory-1.0.0/tests/test_associative.py +192 -0
- uaml_memory-1.0.0/tests/test_audit_stream.py +525 -0
- uaml_memory-1.0.0/tests/test_backup.py +88 -0
- uaml_memory-1.0.0/tests/test_batch.py +112 -0
- uaml_memory-1.0.0/tests/test_benchmark.py +331 -0
- uaml_memory-1.0.0/tests/test_cache.py +83 -0
- uaml_memory-1.0.0/tests/test_changelog.py +52 -0
- uaml_memory-1.0.0/tests/test_clustering.py +70 -0
- uaml_memory-1.0.0/tests/test_compliance.py +264 -0
- uaml_memory-1.0.0/tests/test_config.py +67 -0
- uaml_memory-1.0.0/tests/test_configurator.py +585 -0
- uaml_memory-1.0.0/tests/test_conflicts.py +70 -0
- uaml_memory-1.0.0/tests/test_consent.py +147 -0
- uaml_memory-1.0.0/tests/test_context.py +73 -0
- uaml_memory-1.0.0/tests/test_continuous.py +145 -0
- uaml_memory-1.0.0/tests/test_contradiction.py +448 -0
- uaml_memory-1.0.0/tests/test_customer.py +326 -0
- uaml_memory-1.0.0/tests/test_dedup.py +80 -0
- uaml_memory-1.0.0/tests/test_embeddings.py +82 -0
- uaml_memory-1.0.0/tests/test_entities.py +89 -0
- uaml_memory-1.0.0/tests/test_escrow.py +97 -0
- uaml_memory-1.0.0/tests/test_ethics.py +201 -0
- uaml_memory-1.0.0/tests/test_events.py +75 -0
- uaml_memory-1.0.0/tests/test_facade.py +143 -0
- uaml_memory-1.0.0/tests/test_feature_gate.py +394 -0
- uaml_memory-1.0.0/tests/test_federation.py +102 -0
- uaml_memory-1.0.0/tests/test_focus_engine.py +821 -0
- uaml_memory-1.0.0/tests/test_focus_integration.py +212 -0
- uaml_memory-1.0.0/tests/test_formats.py +84 -0
- uaml_memory-1.0.0/tests/test_gdpr.py +129 -0
- uaml_memory-1.0.0/tests/test_hardening.py +115 -0
- uaml_memory-1.0.0/tests/test_health.py +59 -0
- uaml_memory-1.0.0/tests/test_incidents.py +396 -0
- uaml_memory-1.0.0/tests/test_ingest.py +428 -0
- uaml_memory-1.0.0/tests/test_inventory.py +72 -0
- uaml_memory-1.0.0/tests/test_io.py +232 -0
- uaml_memory-1.0.0/tests/test_licensing.py +332 -0
- uaml_memory-1.0.0/tests/test_linker.py +57 -0
- uaml_memory-1.0.0/tests/test_local_graph.py +111 -0
- uaml_memory-1.0.0/tests/test_lock_manager.py +554 -0
- uaml_memory-1.0.0/tests/test_logs.py +131 -0
- uaml_memory-1.0.0/tests/test_longmemeval.py +242 -0
- uaml_memory-1.0.0/tests/test_mcp.py +196 -0
- uaml_memory-1.0.0/tests/test_messaging.py +78 -0
- uaml_memory-1.0.0/tests/test_metrics.py +80 -0
- uaml_memory-1.0.0/tests/test_migration.py +69 -0
- uaml_memory-1.0.0/tests/test_neo4j_sync.py +307 -0
- uaml_memory-1.0.0/tests/test_notifications.py +90 -0
- uaml_memory-1.0.0/tests/test_optimizer.py +53 -0
- uaml_memory-1.0.0/tests/test_pipeline.py +76 -0
- uaml_memory-1.0.0/tests/test_plugins.py +84 -0
- uaml_memory-1.0.0/tests/test_policy.py +152 -0
- uaml_memory-1.0.0/tests/test_pqc.py +263 -0
- uaml_memory-1.0.0/tests/test_provenance.py +65 -0
- uaml_memory-1.0.0/tests/test_ratelimit.py +64 -0
- uaml_memory-1.0.0/tests/test_rbac.py +93 -0
- uaml_memory-1.0.0/tests/test_reasoning.py +198 -0
- uaml_memory-1.0.0/tests/test_retention.py +126 -0
- uaml_memory-1.0.0/tests/test_sanitizer.py +76 -0
- uaml_memory-1.0.0/tests/test_scheduler.py +79 -0
- uaml_memory-1.0.0/tests/test_schema_v2.py +252 -0
- uaml_memory-1.0.0/tests/test_scoring.py +69 -0
- uaml_memory-1.0.0/tests/test_signatures.py +318 -0
- uaml_memory-1.0.0/tests/test_snapshot.py +76 -0
- uaml_memory-1.0.0/tests/test_store.py +191 -0
- uaml_memory-1.0.0/tests/test_store_v2.py +198 -0
- uaml_memory-1.0.0/tests/test_summarizer.py +57 -0
- uaml_memory-1.0.0/tests/test_sync.py +1012 -0
- uaml_memory-1.0.0/tests/test_tagger.py +79 -0
- uaml_memory-1.0.0/tests/test_tagging.py +71 -0
- uaml_memory-1.0.0/tests/test_templates.py +85 -0
- uaml_memory-1.0.0/tests/test_temporal.py +95 -0
- uaml_memory-1.0.0/tests/test_validation.py +55 -0
- uaml_memory-1.0.0/tests/test_versioning.py +83 -0
- uaml_memory-1.0.0/tests/test_voice.py +97 -0
- uaml_memory-1.0.0/tests/test_web.py +210 -0
- uaml_memory-1.0.0/uaml/__init__.py +35 -0
- uaml_memory-1.0.0/uaml/__main__.py +8 -0
- uaml_memory-1.0.0/uaml/adapters/__init__.py +10 -0
- uaml_memory-1.0.0/uaml/api/__init__.py +9 -0
- uaml_memory-1.0.0/uaml/api/client.py +315 -0
- uaml_memory-1.0.0/uaml/api/server.py +786 -0
- uaml_memory-1.0.0/uaml/audit/__init__.py +7 -0
- uaml_memory-1.0.0/uaml/audit/access.py +138 -0
- uaml_memory-1.0.0/uaml/audit/collector.py +594 -0
- uaml_memory-1.0.0/uaml/audit/logs.py +254 -0
- uaml_memory-1.0.0/uaml/audit/provenance.py +151 -0
- uaml_memory-1.0.0/uaml/audit/stream.py +1011 -0
- uaml_memory-1.0.0/uaml/billing/__init__.py +15 -0
- uaml_memory-1.0.0/uaml/billing/emails.py +333 -0
- uaml_memory-1.0.0/uaml/billing/invoice.py +735 -0
- uaml_memory-1.0.0/uaml/cli/__init__.py +4 -0
- uaml_memory-1.0.0/uaml/cli/main.py +1157 -0
- uaml_memory-1.0.0/uaml/compliance/__init__.py +12 -0
- uaml_memory-1.0.0/uaml/compliance/auditor.py +762 -0
- uaml_memory-1.0.0/uaml/compliance/consent.py +168 -0
- uaml_memory-1.0.0/uaml/compliance/dpia.py +319 -0
- uaml_memory-1.0.0/uaml/compliance/inventory.py +167 -0
- uaml_memory-1.0.0/uaml/coordination.py +705 -0
- uaml_memory-1.0.0/uaml/core/__init__.py +4 -0
- uaml_memory-1.0.0/uaml/core/associative.py +375 -0
- uaml_memory-1.0.0/uaml/core/batch.py +271 -0
- uaml_memory-1.0.0/uaml/core/changelog.py +161 -0
- uaml_memory-1.0.0/uaml/core/config.py +160 -0
- uaml_memory-1.0.0/uaml/core/contradiction.py +377 -0
- uaml_memory-1.0.0/uaml/core/dedup.py +220 -0
- uaml_memory-1.0.0/uaml/core/embeddings.py +168 -0
- uaml_memory-1.0.0/uaml/core/events.py +155 -0
- uaml_memory-1.0.0/uaml/core/focus_config.py +847 -0
- uaml_memory-1.0.0/uaml/core/focus_engine.py +388 -0
- uaml_memory-1.0.0/uaml/core/health.py +160 -0
- uaml_memory-1.0.0/uaml/core/metrics.py +157 -0
- uaml_memory-1.0.0/uaml/core/migration.py +125 -0
- uaml_memory-1.0.0/uaml/core/models.py +272 -0
- uaml_memory-1.0.0/uaml/core/notifications.py +185 -0
- uaml_memory-1.0.0/uaml/core/policy.py +255 -0
- uaml_memory-1.0.0/uaml/core/reasoning.py +310 -0
- uaml_memory-1.0.0/uaml/core/retention.py +195 -0
- uaml_memory-1.0.0/uaml/core/rules_changelog.py +319 -0
- uaml_memory-1.0.0/uaml/core/scheduler.py +165 -0
- uaml_memory-1.0.0/uaml/core/schema.py +472 -0
- uaml_memory-1.0.0/uaml/core/search.py +52 -0
- uaml_memory-1.0.0/uaml/core/snapshot.py +152 -0
- uaml_memory-1.0.0/uaml/core/store.py +1972 -0
- uaml_memory-1.0.0/uaml/core/tagging.py +134 -0
- uaml_memory-1.0.0/uaml/core/templates.py +187 -0
- uaml_memory-1.0.0/uaml/core/validation.py +140 -0
- uaml_memory-1.0.0/uaml/core/versioning.py +259 -0
- uaml_memory-1.0.0/uaml/crypto/__init__.py +12 -0
- uaml_memory-1.0.0/uaml/crypto/escrow.py +315 -0
- uaml_memory-1.0.0/uaml/crypto/pqc.py +364 -0
- uaml_memory-1.0.0/uaml/crypto/signatures.py +434 -0
- uaml_memory-1.0.0/uaml/customer.py +1614 -0
- uaml_memory-1.0.0/uaml/docs/AGENT_GUIDE.md +463 -0
- uaml_memory-1.0.0/uaml/docs/API_REFERENCE.md +96 -0
- uaml_memory-1.0.0/uaml/docs/FEATURE_MATRIX.md +71 -0
- uaml_memory-1.0.0/uaml/docs/__init__.py +31 -0
- uaml_memory-1.0.0/uaml/ethics/__init__.py +8 -0
- uaml_memory-1.0.0/uaml/ethics/checker.py +549 -0
- uaml_memory-1.0.0/uaml/facade.py +289 -0
- uaml_memory-1.0.0/uaml/feature_gate.py +653 -0
- uaml_memory-1.0.0/uaml/federation/__init__.py +20 -0
- uaml_memory-1.0.0/uaml/federation/hub.py +227 -0
- uaml_memory-1.0.0/uaml/federation/messaging.py +186 -0
- uaml_memory-1.0.0/uaml/graph/__init__.py +8 -0
- uaml_memory-1.0.0/uaml/graph/local.py +277 -0
- uaml_memory-1.0.0/uaml/graph/sync.py +781 -0
- uaml_memory-1.0.0/uaml/ingest/__init__.py +166 -0
- uaml_memory-1.0.0/uaml/ingest/base.py +131 -0
- uaml_memory-1.0.0/uaml/ingest/chat.py +229 -0
- uaml_memory-1.0.0/uaml/ingest/continuous.py +239 -0
- uaml_memory-1.0.0/uaml/ingest/filters.py +296 -0
- uaml_memory-1.0.0/uaml/ingest/markdown.py +172 -0
- uaml_memory-1.0.0/uaml/ingest/pipeline.py +139 -0
- uaml_memory-1.0.0/uaml/ingest/search.py +163 -0
- uaml_memory-1.0.0/uaml/ingest/web.py +196 -0
- uaml_memory-1.0.0/uaml/io/__init__.py +13 -0
- uaml_memory-1.0.0/uaml/io/backup.py +268 -0
- uaml_memory-1.0.0/uaml/io/exporter.py +367 -0
- uaml_memory-1.0.0/uaml/io/formats.py +179 -0
- uaml_memory-1.0.0/uaml/io/importer.py +276 -0
- uaml_memory-1.0.0/uaml/licensing.py +735 -0
- uaml_memory-1.0.0/uaml/mcp/__init__.py +4 -0
- uaml_memory-1.0.0/uaml/mcp/server.py +713 -0
- uaml_memory-1.0.0/uaml/plugins/__init__.py +25 -0
- uaml_memory-1.0.0/uaml/plugins/manager.py +184 -0
- uaml_memory-1.0.0/uaml/py.typed +0 -0
- uaml_memory-1.0.0/uaml/reasoning/__init__.py +5 -0
- uaml_memory-1.0.0/uaml/reasoning/analytics.py +126 -0
- uaml_memory-1.0.0/uaml/reasoning/cache.py +121 -0
- uaml_memory-1.0.0/uaml/reasoning/clustering.py +144 -0
- uaml_memory-1.0.0/uaml/reasoning/conflicts.py +165 -0
- uaml_memory-1.0.0/uaml/reasoning/context.py +213 -0
- uaml_memory-1.0.0/uaml/reasoning/entities.py +156 -0
- uaml_memory-1.0.0/uaml/reasoning/incidents.py +479 -0
- uaml_memory-1.0.0/uaml/reasoning/linker.py +155 -0
- uaml_memory-1.0.0/uaml/reasoning/optimizer.py +154 -0
- uaml_memory-1.0.0/uaml/reasoning/scoring.py +177 -0
- uaml_memory-1.0.0/uaml/reasoning/summarizer.py +158 -0
- uaml_memory-1.0.0/uaml/reasoning/tagger.py +138 -0
- uaml_memory-1.0.0/uaml/reasoning/temporal.py +304 -0
- uaml_memory-1.0.0/uaml/security/__init__.py +8 -0
- uaml_memory-1.0.0/uaml/security/configurator.py +2753 -0
- uaml_memory-1.0.0/uaml/security/hardening.py +456 -0
- uaml_memory-1.0.0/uaml/security/ratelimit.py +106 -0
- uaml_memory-1.0.0/uaml/security/rbac.py +162 -0
- uaml_memory-1.0.0/uaml/security/sanitizer.py +244 -0
- uaml_memory-1.0.0/uaml/sync.py +1525 -0
- uaml_memory-1.0.0/uaml/telemetry.py +183 -0
- uaml_memory-1.0.0/uaml/voice/__init__.py +22 -0
- uaml_memory-1.0.0/uaml/voice/stt.py +245 -0
- uaml_memory-1.0.0/uaml/voice/tts.py +197 -0
- uaml_memory-1.0.0/uaml/web/__init__.py +8 -0
- uaml_memory-1.0.0/uaml/web/app.py +1254 -0
- uaml_memory-1.0.0/uaml/web/static/css/style.css +461 -0
- uaml_memory-1.0.0/uaml/web/static/i18n/cs.json +238 -0
- uaml_memory-1.0.0/uaml/web/static/i18n/en.json +253 -0
- uaml_memory-1.0.0/uaml/web/static/i18n/es.json +125 -0
- uaml_memory-1.0.0/uaml/web/static/i18n/fr.json +125 -0
- uaml_memory-1.0.0/uaml/web/static/i18n/pl.json +125 -0
- uaml_memory-1.0.0/uaml/web/static/i18n/sk.json +125 -0
- uaml_memory-1.0.0/uaml/web/static/js/app.js +213 -0
- uaml_memory-1.0.0/uaml/web/templates/compliance.html +108 -0
- uaml_memory-1.0.0/uaml/web/templates/dashboard.html +199 -0
- uaml_memory-1.0.0/uaml/web/templates/export.html +85 -0
- uaml_memory-1.0.0/uaml/web/templates/graph.html +231 -0
- uaml_memory-1.0.0/uaml/web/templates/infrastructure.html +43 -0
- uaml_memory-1.0.0/uaml/web/templates/input-filter.html +312 -0
- uaml_memory-1.0.0/uaml/web/templates/knowledge.html +195 -0
- uaml_memory-1.0.0/uaml/web/templates/layout.html +63 -0
- uaml_memory-1.0.0/uaml/web/templates/license.html +163 -0
- uaml_memory-1.0.0/uaml/web/templates/orchestration.html +353 -0
- uaml_memory-1.0.0/uaml/web/templates/output-filter.html +378 -0
- uaml_memory-1.0.0/uaml/web/templates/projects.html +81 -0
- uaml_memory-1.0.0/uaml/web/templates/rules-log.html +112 -0
- uaml_memory-1.0.0/uaml/web/templates/sanitize.html +239 -0
- uaml_memory-1.0.0/uaml/web/templates/settings.html +50 -0
- uaml_memory-1.0.0/uaml/web/templates/tasks.html +104 -0
- uaml_memory-1.0.0/uaml/web/templates/team.html +132 -0
- uaml_memory-1.0.0/uaml/web/templates/timeline.html +70 -0
- uaml_memory-1.0.0/uaml_memory.egg-info/PKG-INFO +390 -0
- uaml_memory-1.0.0/uaml_memory.egg-info/SOURCES.txt +235 -0
- uaml_memory-1.0.0/uaml_memory.egg-info/dependency_links.txt +1 -0
- uaml_memory-1.0.0/uaml_memory.egg-info/entry_points.txt +2 -0
- uaml_memory-1.0.0/uaml_memory.egg-info/requires.txt +21 -0
- uaml_memory-1.0.0/uaml_memory.egg-info/top_level.txt +1 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
UAML Memory — Universal Agent Memory Layer
|
|
2
|
+
Copyright (c) 2026 GLG, a.s. All rights reserved.
|
|
3
|
+
|
|
4
|
+
PROPRIETARY SOFTWARE LICENSE
|
|
5
|
+
|
|
6
|
+
1. PERSONAL USE (Community Plan)
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any individual obtaining
|
|
9
|
+
a copy of this software and associated documentation files (the "Software"),
|
|
10
|
+
to use the Software for personal, non-commercial purposes only, subject to
|
|
11
|
+
the following conditions:
|
|
12
|
+
|
|
13
|
+
- The above copyright notice and this permission notice shall be included
|
|
14
|
+
in all copies or substantial portions of the Software.
|
|
15
|
+
- Personal use is limited to features available under the Community plan.
|
|
16
|
+
- The Software may not be used for commercial purposes, resold,
|
|
17
|
+
sublicensed, or redistributed for commercial advantage.
|
|
18
|
+
- You may not reverse engineer, decompile, or create derivative works
|
|
19
|
+
for commercial distribution.
|
|
20
|
+
|
|
21
|
+
2. COMMERCIAL USE (Paid Subscription)
|
|
22
|
+
|
|
23
|
+
Commercial use of the Software requires an active paid subscription from
|
|
24
|
+
GLG, a.s. Subscription plans (Starter, Professional, Team, Enterprise)
|
|
25
|
+
unlock additional features based on the selected tier.
|
|
26
|
+
|
|
27
|
+
- License rights are time-limited to the active subscription period.
|
|
28
|
+
- Upon subscription expiration, paid features are locked; personal-use
|
|
29
|
+
features (Community plan) remain available. Your data is preserved.
|
|
30
|
+
- One full installation; features are enabled/disabled based on the
|
|
31
|
+
active license tier.
|
|
32
|
+
- For pricing and plans, see: https://uaml-memory.com
|
|
33
|
+
|
|
34
|
+
3. RESTRICTIONS
|
|
35
|
+
|
|
36
|
+
- No part of this Software may be used commercially without a valid
|
|
37
|
+
paid subscription from GLG, a.s.
|
|
38
|
+
- Redistribution of the Software or its components for commercial
|
|
39
|
+
purposes is strictly prohibited.
|
|
40
|
+
- The Software and all intellectual property therein remain the
|
|
41
|
+
exclusive property of GLG, a.s.
|
|
42
|
+
|
|
43
|
+
4. EXPERIMENTAL STATUS
|
|
44
|
+
|
|
45
|
+
The Software is under active development and should be considered
|
|
46
|
+
experimental. APIs, configurations, and behavior may change between
|
|
47
|
+
versions without prior notice. Use at your own risk. Customization
|
|
48
|
+
to your specific workflow and use case will be required.
|
|
49
|
+
|
|
50
|
+
5. DISCLAIMER
|
|
51
|
+
|
|
52
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
53
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
54
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
|
55
|
+
GLG, A.S. OR ITS CONTRIBUTORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
56
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
57
|
+
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
|
58
|
+
DEALINGS IN THE SOFTWARE.
|
|
59
|
+
|
|
60
|
+
Contact: info@uaml.ai | https://uaml-memory.com
|
uaml_memory-1.0.0/NOTICE
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
UAML — Universal Agent Memory Layer
|
|
2
|
+
Copyright 2026 GLG, a.s.
|
|
3
|
+
Proprietary software. Free for personal use, commercial use requires paid subscription.
|
|
4
|
+
|
|
5
|
+
This product includes software developed by third parties:
|
|
6
|
+
|
|
7
|
+
- click (https://palletsprojects.com/p/click/)
|
|
8
|
+
License: BSD-3-Clause
|
|
9
|
+
Copyright: Pallets Projects
|
|
10
|
+
|
|
11
|
+
- neo4j (https://neo4j.com/) [optional]
|
|
12
|
+
License: Apache-2.0
|
|
13
|
+
Copyright: Neo4j, Inc.
|
|
14
|
+
|
|
15
|
+
- spacy (https://spacy.io/) [optional]
|
|
16
|
+
License: MIT
|
|
17
|
+
Copyright: Explosion AI
|
|
18
|
+
|
|
19
|
+
- age-encryption (https://age-encryption.org/) [optional]
|
|
20
|
+
License: Apache-2.0
|
|
21
|
+
|
|
22
|
+
- mcp (https://modelcontextprotocol.io/) [optional]
|
|
23
|
+
License: MIT
|
|
24
|
+
Copyright: Anthropic, PBC
|
|
25
|
+
|
|
26
|
+
Development dependencies (not distributed):
|
|
27
|
+
- pytest: MIT
|
|
28
|
+
- pytest-cov: MIT
|
|
29
|
+
- ruff: MIT
|
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: uaml-memory
|
|
3
|
+
Version: 1.0.0
|
|
4
|
+
Summary: Universal Agent Memory Layer — persistent, temporal, ethical memory for AI agents
|
|
5
|
+
Author: GLG, a.s.
|
|
6
|
+
License: Proprietary — Free for personal use, commercial use requires paid subscription (see LICENSE)
|
|
7
|
+
Project-URL: Homepage, https://github.com/uaml/uaml
|
|
8
|
+
Project-URL: Documentation, https://uaml.dev
|
|
9
|
+
Project-URL: Repository, https://github.com/uaml/uaml
|
|
10
|
+
Project-URL: Bug Tracker, https://github.com/uaml/uaml/issues
|
|
11
|
+
Project-URL: Changelog, https://github.com/uaml/uaml/blob/main/CHANGELOG.md
|
|
12
|
+
Keywords: ai,agent,memory,knowledge-graph,temporal,ethics,mcp
|
|
13
|
+
Classifier: Development Status :: 3 - Alpha
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Typing :: Typed
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Description-Content-Type: text/markdown
|
|
26
|
+
License-File: LICENSE
|
|
27
|
+
License-File: NOTICE
|
|
28
|
+
Requires-Dist: click>=8.0
|
|
29
|
+
Provides-Extra: neo4j
|
|
30
|
+
Requires-Dist: neo4j>=5.0; extra == "neo4j"
|
|
31
|
+
Provides-Extra: entities
|
|
32
|
+
Requires-Dist: spacy>=3.7; extra == "entities"
|
|
33
|
+
Provides-Extra: pqc
|
|
34
|
+
Requires-Dist: age-encryption>=0.1; extra == "pqc"
|
|
35
|
+
Provides-Extra: mcp
|
|
36
|
+
Requires-Dist: mcp>=1.0; extra == "mcp"
|
|
37
|
+
Provides-Extra: all
|
|
38
|
+
Requires-Dist: uaml[entities,mcp,neo4j]; extra == "all"
|
|
39
|
+
Provides-Extra: dev
|
|
40
|
+
Requires-Dist: pytest>=7.0; extra == "dev"
|
|
41
|
+
Requires-Dist: pytest-cov; extra == "dev"
|
|
42
|
+
Requires-Dist: ruff; extra == "dev"
|
|
43
|
+
|
|
44
|
+
# UAML — Universal Agent Memory Layer
|
|
45
|
+
|
|
46
|
+
**Persistent, temporal, ethical memory for AI agents.**
|
|
47
|
+
|
|
48
|
+
Give your AI agent a real memory — one that persists across sessions, respects time, isolates client data, and works with any framework.
|
|
49
|
+
|
|
50
|
+
## Quick Start
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
pip install uaml
|
|
54
|
+
uaml init
|
|
55
|
+
uaml learn "Python GIL prevents true multithreading" --topic python
|
|
56
|
+
uaml search "GIL threading"
|
|
57
|
+
uaml serve # Start MCP server for Claude, Cursor, etc.
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Why UAML?
|
|
61
|
+
|
|
62
|
+
Most AI agents are amnesiacs. They lose context between sessions, mix up client data, and can't answer "what did we know last Tuesday?"
|
|
63
|
+
|
|
64
|
+
UAML fixes this:
|
|
65
|
+
|
|
66
|
+
| Feature | UAML | Vector DB | Flat files |
|
|
67
|
+
|---------|------|-----------|------------|
|
|
68
|
+
| Full-text search | ✅ FTS5 | ❌ Semantic only | ❌ grep |
|
|
69
|
+
| Temporal queries | ✅ Point-in-time | ❌ | ❌ |
|
|
70
|
+
| Client isolation | ✅ Built-in | ❌ Manual | ❌ Manual |
|
|
71
|
+
| Deduplication | ✅ Content hash | ❌ | ❌ |
|
|
72
|
+
| Audit trail | ✅ Every operation | ❌ | ❌ |
|
|
73
|
+
| Zero dependencies | ✅ SQLite stdlib | ❌ Server needed | ✅ |
|
|
74
|
+
| MCP server | ✅ stdio + HTTP | ❌ | ❌ |
|
|
75
|
+
|
|
76
|
+
## Features
|
|
77
|
+
|
|
78
|
+
- **SQLite + FTS5** — Fast full-text search, zero external dependencies, single-file database
|
|
79
|
+
- **Temporal queries** — "What was valid at time X?" (killer feature for legal/compliance)
|
|
80
|
+
- **Client isolation** — Per-client data separation for regulated industries (GDPR, legal, finance)
|
|
81
|
+
- **Multi-agent support** — Private and shared knowledge tiers with agent attribution
|
|
82
|
+
- **Content deduplication** — SHA-256 hash prevents duplicate entries
|
|
83
|
+
- **Audit trail** — Every learn/search operation logged with agent ID and timestamp
|
|
84
|
+
- **MCP server** — Works with Claude Desktop, Cursor, OpenClaw, or any MCP-compatible client
|
|
85
|
+
- **Two transports** — stdio (local) and HTTP (remote/shared)
|
|
86
|
+
- **CLI included** — `uaml init`, `uaml learn`, `uaml search`, `uaml stats`, `uaml serve`
|
|
87
|
+
|
|
88
|
+
- **Ethics pipeline** — 8 rules (3 hard/reject, 5 soft/flag), 3 modes (enforce/warn/off), YAML import/export
|
|
89
|
+
- **Task management** — Create, assign, track tasks with priorities, subtasks, and FTS5 search
|
|
90
|
+
- **Export/Import** — JSONL format, selective filters (topic/project/client/layer), identity protection
|
|
91
|
+
- **Ingestors** — Chat sessions (JSONL), Markdown (with heading split), Web pages (HTML stripping + chunking)
|
|
92
|
+
- **5-layer DataLayer** — Identity / Knowledge / Team / Operational / Project with per-layer access control
|
|
93
|
+
- **Source origin tracking** — external / generated / derived / observed metadata on every entry
|
|
94
|
+
|
|
95
|
+
### v1.0 — Full Stack
|
|
96
|
+
|
|
97
|
+
- **UAML Facade** — Single entry point: `from uaml.facade import UAML` with lazy module init
|
|
98
|
+
- **Context Builder** — LLM-optimized context assembly with token budgeting and dedup
|
|
99
|
+
- **Knowledge Scoring** — Multi-dimensional quality scoring (completeness, freshness, confidence)
|
|
100
|
+
- **Knowledge Clustering** — Jaccard similarity clustering with outlier detection
|
|
101
|
+
- **Conflict Resolution** — Detect contradictions, resolve via strategies (keep_newest, merge, etc.)
|
|
102
|
+
- **Query Optimizer** — Abbreviation expansion, normalization, synonym suggestions
|
|
103
|
+
- **Search Analytics** — Query tracking, latency stats, zero-result rate analysis
|
|
104
|
+
- **Search Cache** — LRU cache with TTL for repeated queries
|
|
105
|
+
- **Knowledge Summarizer** — Topic summaries, store overview, entry compression
|
|
106
|
+
- **Knowledge Linker** — Auto-suggest links by content/topic overlap
|
|
107
|
+
- **Entity Extraction** — Regex NER for persons, organizations, locations, dates, emails
|
|
108
|
+
- **Temporal Reasoning** — Timeline, stale detection, conflict analysis, freshness scoring
|
|
109
|
+
- **Event Sourcing** — Append-only event log with replay and listeners
|
|
110
|
+
- **Ingest Pipeline** — Multi-stage ingestion with custom validation stages
|
|
111
|
+
- **Retention Policies** — Lifecycle rules (archive, delete, reduce_confidence, flag_review)
|
|
112
|
+
- **Backup Manager** — Create/verify/list/rotate/restore with gzip compression
|
|
113
|
+
- **RBAC** — Role-based access control with permissions and grants
|
|
114
|
+
- **Rate Limiter** — Token bucket per-agent/operation protection
|
|
115
|
+
- **Data Sanitizer** — PII detection and redaction (email, phone, IP, CC, API keys)
|
|
116
|
+
- **Provenance Tracking** — Full lineage: origin, transforms, agent contributions
|
|
117
|
+
- **Data Inventory** — GDPR Art. 30 processing records with compliance checks
|
|
118
|
+
- **Knowledge Validation** — Content quality, metadata completeness, schema compliance
|
|
119
|
+
- **Tag Manager** — Bulk tag operations, tag cloud, rename, normalization
|
|
120
|
+
- **Snapshot Manager** — Point-in-time snapshots with diff comparison
|
|
121
|
+
- **Knowledge Templates** — Predefined entry templates with validation
|
|
122
|
+
- **Embedding Engine** — Pluggable embedding abstraction with cosine similarity
|
|
123
|
+
- **Changelog Generator** — Audit-based changelog with markdown export
|
|
124
|
+
- **Inter-agent Messaging** — Typed messages, handlers, threading, reply chains
|
|
125
|
+
- **Notification Center** — Event subscriptions with throttling
|
|
126
|
+
- **Health Checker** — DB integrity, storage, audit trail, knowledge quality
|
|
127
|
+
- **Maintenance Scheduler** — Periodic task scheduling with error tracking
|
|
128
|
+
- **Auto-Tagger** — Topic detection, keyword extraction, pattern matching
|
|
129
|
+
- **Export Formatter** — JSON, JSONL, CSV, Markdown with filtering
|
|
130
|
+
- **Config Manager** — Centralized config with dot-path access and env overrides
|
|
131
|
+
- **Plugin System** — Hook-based plugin manager for extensibility
|
|
132
|
+
- **Local Knowledge Graph** — SQLite-based graph without Neo4j dependency
|
|
133
|
+
- **Federation Hub** — Multi-agent knowledge sharing with identity protection
|
|
134
|
+
- **Neo4j integration** — Graph sync with dual-DB architecture (`pip install uaml[neo4j]`)
|
|
135
|
+
- **PQC encryption** — ML-KEM-768 post-quantum cryptography (`pip install uaml[pqc]`)
|
|
136
|
+
- **REST API** — Full CRUD + search + timeline + graph endpoints
|
|
137
|
+
- **Policy engine** — Query classification, recall tiers, token budget control
|
|
138
|
+
- **Compliance auditor** — Automated GDPR + ISO 27001 checks
|
|
139
|
+
- **Voice pipeline** — TTS (Piper) + STT (Whisper) for edge deployments
|
|
140
|
+
|
|
141
|
+
## Usage
|
|
142
|
+
|
|
143
|
+
### Facade API (recommended for v1.0+)
|
|
144
|
+
|
|
145
|
+
```python
|
|
146
|
+
from uaml.facade import UAML
|
|
147
|
+
|
|
148
|
+
uaml = UAML("knowledge.db", agent_id="my-agent")
|
|
149
|
+
|
|
150
|
+
# Store and search
|
|
151
|
+
uaml.learn("Python's GIL prevents true threading", topic="python")
|
|
152
|
+
results = uaml.search("threading")
|
|
153
|
+
|
|
154
|
+
# Build LLM context with token budgeting
|
|
155
|
+
ctx = uaml.context("What about Python threading?", max_tokens=2000)
|
|
156
|
+
print(ctx.text) # Ready for prompt injection
|
|
157
|
+
|
|
158
|
+
# Quality scoring
|
|
159
|
+
score = uaml.score(entry_id=1)
|
|
160
|
+
print(f"Quality: {score.overall:.0%}")
|
|
161
|
+
|
|
162
|
+
# Detect conflicts
|
|
163
|
+
conflicts = uaml.detect_conflicts()
|
|
164
|
+
|
|
165
|
+
# PII sanitization
|
|
166
|
+
clean = uaml.sanitize("Email me at john@example.com")
|
|
167
|
+
# → "Email me at [EMAIL_REDACTED]"
|
|
168
|
+
|
|
169
|
+
# Backup and health
|
|
170
|
+
uaml.backup()
|
|
171
|
+
health = uaml.health_check()
|
|
172
|
+
|
|
173
|
+
# Store overview
|
|
174
|
+
overview = uaml.overview()
|
|
175
|
+
print(overview.to_markdown())
|
|
176
|
+
|
|
177
|
+
uaml.close()
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
### Low-Level API
|
|
181
|
+
|
|
182
|
+
```python
|
|
183
|
+
from uaml import MemoryStore
|
|
184
|
+
|
|
185
|
+
# Create or open a memory database
|
|
186
|
+
store = MemoryStore("my_agent.db", agent_id="agent-1")
|
|
187
|
+
|
|
188
|
+
# Store knowledge
|
|
189
|
+
store.learn(
|
|
190
|
+
"GDPR requires data protection by design",
|
|
191
|
+
topic="legal",
|
|
192
|
+
tags="gdpr,privacy",
|
|
193
|
+
valid_from="2018-05-25",
|
|
194
|
+
client_ref="client-acme",
|
|
195
|
+
confidence=0.95,
|
|
196
|
+
)
|
|
197
|
+
|
|
198
|
+
# Search
|
|
199
|
+
results = store.search("data protection", limit=5)
|
|
200
|
+
for r in results:
|
|
201
|
+
print(f"[{r.score:.2f}] {r.entry.content}")
|
|
202
|
+
|
|
203
|
+
# Temporal query — what was valid on a specific date?
|
|
204
|
+
results = store.point_in_time("privacy law", "2017-01-01")
|
|
205
|
+
|
|
206
|
+
# Client-isolated search — only returns data for this client
|
|
207
|
+
results = store.search("contract", client_ref="client-acme")
|
|
208
|
+
|
|
209
|
+
# Statistics
|
|
210
|
+
print(store.stats())
|
|
211
|
+
|
|
212
|
+
store.close()
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### MCP Server (for Claude, Cursor, etc.)
|
|
216
|
+
|
|
217
|
+
**stdio transport** (local, recommended):
|
|
218
|
+
```bash
|
|
219
|
+
uaml serve --db my_agent.db
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
**HTTP transport** (remote access):
|
|
223
|
+
```bash
|
|
224
|
+
uaml serve --db my_agent.db --transport http --port 8768 --host 127.0.0.1
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
#### Claude Desktop Configuration
|
|
228
|
+
|
|
229
|
+
Add to `claude_desktop_config.json`:
|
|
230
|
+
```json
|
|
231
|
+
{
|
|
232
|
+
"mcpServers": {
|
|
233
|
+
"uaml": {
|
|
234
|
+
"command": "uaml",
|
|
235
|
+
"args": ["serve", "--db", "/path/to/memory.db"]
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
#### MCP Tools Available
|
|
242
|
+
|
|
243
|
+
| Tool | Description |
|
|
244
|
+
|------|-------------|
|
|
245
|
+
| `memory_search` | Full-text search with temporal and client isolation filters |
|
|
246
|
+
| `memory_learn` | Store new knowledge with metadata, dedup, and audit |
|
|
247
|
+
| `memory_entity` | Look up entities and their knowledge connections |
|
|
248
|
+
| `memory_stats` | Database statistics (counts, topics, agents) |
|
|
249
|
+
| `memory_ethics_check` | Check content against ethics rules |
|
|
250
|
+
| `task_create` | Create a new task |
|
|
251
|
+
| `task_list` | List tasks with filters |
|
|
252
|
+
| `task_update` | Update task status/fields |
|
|
253
|
+
|
|
254
|
+
#### MCP Resources
|
|
255
|
+
|
|
256
|
+
| URI | Description |
|
|
257
|
+
|-----|-------------|
|
|
258
|
+
| `uaml://stats` | Live database statistics |
|
|
259
|
+
| `uaml://schema` | Schema version and table structure |
|
|
260
|
+
|
|
261
|
+
### CLI
|
|
262
|
+
|
|
263
|
+
```bash
|
|
264
|
+
# Initialize a new database
|
|
265
|
+
uaml init --db project.db
|
|
266
|
+
|
|
267
|
+
# Store knowledge
|
|
268
|
+
uaml learn "React 19 uses a compiler" --topic frontend --tags "react,compiler"
|
|
269
|
+
|
|
270
|
+
# Search with filters
|
|
271
|
+
uaml search "compiler" --topic frontend --limit 10
|
|
272
|
+
uaml search "privacy" --at-time 2020-01-01 --client acme
|
|
273
|
+
|
|
274
|
+
# JSON output (for piping)
|
|
275
|
+
uaml search "GIL" --json-output
|
|
276
|
+
|
|
277
|
+
# Statistics
|
|
278
|
+
uaml stats --db project.db
|
|
279
|
+
|
|
280
|
+
# Ethics check
|
|
281
|
+
uaml ethics check "Some content to validate"
|
|
282
|
+
uaml ethics rules # Show all rules
|
|
283
|
+
|
|
284
|
+
# Task management
|
|
285
|
+
uaml task add "Implement feature X" --project myapp --assigned agent-1
|
|
286
|
+
uaml task list --status todo
|
|
287
|
+
uaml task done 42
|
|
288
|
+
|
|
289
|
+
# Export / Import
|
|
290
|
+
uaml io export --topic python -o python_knowledge.jsonl
|
|
291
|
+
uaml io export --client "client-A" -o audit.jsonl
|
|
292
|
+
uaml io import backup.jsonl --override-agent new-agent
|
|
293
|
+
|
|
294
|
+
# Ingest data
|
|
295
|
+
uaml ingest chat session.jsonl --topic ai --project uaml
|
|
296
|
+
uaml ingest md docs/ --heading-level 2 --recursive
|
|
297
|
+
uaml ingest web https://example.com --chunk-size 4000
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
## Architecture
|
|
301
|
+
|
|
302
|
+
```
|
|
303
|
+
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
|
|
304
|
+
│ Claude │ │ Your Agent │ │ LangChain │
|
|
305
|
+
│ Desktop │ │ Framework │ │ / AutoGen │
|
|
306
|
+
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
|
|
307
|
+
│ MCP │ Facade API │ Adapter
|
|
308
|
+
▼ ▼ ▼
|
|
309
|
+
┌──────────────────────────────────────────────────────┐
|
|
310
|
+
│ UAML Facade (lazy init) │
|
|
311
|
+
├──────────────────────────────────────────────────────┤
|
|
312
|
+
│ Core │ Reasoning │ Security │
|
|
313
|
+
│ ┌───────────┐ │ ┌────────────┐ │ ┌─────────────┐ │
|
|
314
|
+
│ │ Store │ │ │ Context │ │ │ RBAC │ │
|
|
315
|
+
│ │ Config │ │ │ Scoring │ │ │ Sanitizer │ │
|
|
316
|
+
│ │ Events │ │ │ Clustering │ │ │ RateLimiter │ │
|
|
317
|
+
│ │ Retention │ │ │ Conflicts │ │ │ Hardening │ │
|
|
318
|
+
│ │ Snapshot │ │ │ Summarizer │ │ └─────────────┘ │
|
|
319
|
+
│ │ Tagging │ │ │ Optimizer │ │ │
|
|
320
|
+
│ │ Scheduler │ │ │ Analytics │ │ Compliance │
|
|
321
|
+
│ │ Dedup │ │ │ Entities │ │ ┌─────────────┐ │
|
|
322
|
+
│ │ Templates │ │ │ Temporal │ │ │ Auditor │ │
|
|
323
|
+
│ │ Batch │ │ │ Linker │ │ │ DPIA │ │
|
|
324
|
+
│ │ Health │ │ │ Cache │ │ │ Inventory │ │
|
|
325
|
+
│ └───────────┘ │ └────────────┘ │ │ Consent │ │
|
|
326
|
+
│ │ │ └─────────────┘ │
|
|
327
|
+
│ I/O │ Federation │ │
|
|
328
|
+
│ ┌───────────┐ │ ┌────────────┐ │ Audit │
|
|
329
|
+
│ │ Backup │ │ │ Hub │ │ ┌─────────────┐ │
|
|
330
|
+
│ │ Export │ │ │ Messaging │ │ │ AuditLog │ │
|
|
331
|
+
│ │ Import │ │ └────────────┘ │ │ Access │ │
|
|
332
|
+
│ │ Formats │ │ │ │ Provenance │ │
|
|
333
|
+
│ └───────────┘ │ Plugins │ └─────────────┘ │
|
|
334
|
+
│ │ ┌────────────┐ │ │
|
|
335
|
+
│ Graph │ │ Manager │ │ Voice │
|
|
336
|
+
│ ┌───────────┐ │ └────────────┘ │ ┌─────────────┐ │
|
|
337
|
+
│ │ LocalGraph│ │ │ │ TTS / STT │ │
|
|
338
|
+
│ └───────────┘ │ │ └─────────────┘ │
|
|
339
|
+
├──────────────────────────────────────────────────────┤
|
|
340
|
+
│ SQLite + FTS5 (single file) │
|
|
341
|
+
└──────────────────────────────────────────────────────┘
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
UAML is **framework-agnostic**. Use it with OpenClaw, LangChain, CrewAI, AutoGen, or your own agent.
|
|
345
|
+
|
|
346
|
+
**1000+ tests** ensure reliability across all modules.
|
|
347
|
+
|
|
348
|
+
## Data Model
|
|
349
|
+
|
|
350
|
+
Each knowledge entry has:
|
|
351
|
+
|
|
352
|
+
| Field | Type | Description |
|
|
353
|
+
|-------|------|-------------|
|
|
354
|
+
| `content` | text | The knowledge content |
|
|
355
|
+
| `topic` | text | Category/topic |
|
|
356
|
+
| `summary` | text | Short summary |
|
|
357
|
+
| `source_type` | enum | manual, chat, web_page, research, document, ... |
|
|
358
|
+
| `source_ref` | text | URL, file path, session ID |
|
|
359
|
+
| `tags` | text | Comma-separated tags |
|
|
360
|
+
| `confidence` | float | 0.0–1.0 confidence score |
|
|
361
|
+
| `access_level` | enum | public, internal, confidential, restricted |
|
|
362
|
+
| `trust_level` | enum | verified, unverified, disputed |
|
|
363
|
+
| `valid_from` | datetime | Temporal validity start |
|
|
364
|
+
| `valid_until` | datetime | Temporal validity end |
|
|
365
|
+
| `client_ref` | text | Client ID for data isolation |
|
|
366
|
+
| `project` | text | Project name |
|
|
367
|
+
| `agent_id` | text | Which agent created this |
|
|
368
|
+
| `data_layer` | enum | identity, knowledge, team, operational, project |
|
|
369
|
+
| `source_origin` | enum | external, generated, derived, observed |
|
|
370
|
+
| `content_hash` | text | SHA-256 for deduplication |
|
|
371
|
+
|
|
372
|
+
## Requirements
|
|
373
|
+
|
|
374
|
+
- Python 3.10+
|
|
375
|
+
- No external dependencies (SQLite is in stdlib)
|
|
376
|
+
|
|
377
|
+
## License
|
|
378
|
+
|
|
379
|
+
**Proprietary Software** — Copyright (c) 2026 GLG, a.s. All rights reserved.
|
|
380
|
+
|
|
381
|
+
- **Personal use:** Free (Community plan — limited features)
|
|
382
|
+
- **Commercial use:** Requires an active paid subscription from GLG, a.s.
|
|
383
|
+
- Features are unlocked based on your subscription tier (Starter / Professional / Team / Enterprise)
|
|
384
|
+
- Upon subscription expiration, paid features lock; your data is preserved
|
|
385
|
+
|
|
386
|
+
⚠️ All features are experimental and under active development. Use at your own risk.
|
|
387
|
+
|
|
388
|
+
Contact for commercial licensing: [info@uaml.ai](mailto:info@uaml.ai) | [uaml-memory.com](https://uaml-memory.com)
|
|
389
|
+
|
|
390
|
+
See [LICENSE](LICENSE) for full terms.
|