memoryintelligence 1.0.0__tar.gz → 1.0.1__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.
@@ -0,0 +1,52 @@
1
+ # Changelog
2
+
3
+ All notable changes to the Memory Intelligence Python SDK will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [1.0.1] - 2026-02-07
9
+
10
+ ### Fixed
11
+ - Corrected `ProvenanceError` in `__all__` exports list (final typo fix)
12
+
13
+ ## [1.0.0] - 2026-02-07 [YANKED]
14
+
15
+ ### Added
16
+ - **MemoryClient** with 6 core operations: process, search, match, explain, delete, verify_provenance
17
+ - **EdgeClient** for on-premises HIPAA-compliant deployments
18
+ - Privacy-first architecture with meaning-only retention (default)
19
+ - Structured semantic extraction (entities, topics, SVO triples, key phrases)
20
+ - Explainable search results with human + audit explanations
21
+ - Cryptographic provenance tracking with hash chain verification
22
+ - ULID-based identity firewall for cryptographic tenant isolation
23
+ - Scope-based access control (user, team, client, organization)
24
+ - PII detection and configurable handling (extract_and_redact, hash, reject)
25
+ - Type-safe API with Pydantic models
26
+ - Comprehensive error handling (7 exception types)
27
+ - 30+ unit and integration tests
28
+
29
+ ### Known Limitations
30
+ - Pagination not yet implemented (coming in v1.1.0)
31
+ - Streaming search results not yet available
32
+ - Temporal intelligence parameter present but not fully validated in tests
33
+
34
+ ### Fixed
35
+ - Corrected `ProvenanceError` exception name (was misspelled as `ProvenenaceError`)
36
+
37
+ ## [Unreleased]
38
+
39
+ ### Planned for v1.1.0
40
+ - Cursor-based pagination for search results
41
+ - Enhanced temporal intelligence validation
42
+ - Circuit breaker and retry logic
43
+ - Performance benchmarks published
44
+
45
+ ### Planned for v2.0.0
46
+ - Streaming search results
47
+ - Batch processing operations
48
+ - GraphQL API support
49
+ - React hooks companion package (@memoryintelligence/react)
50
+
51
+ [1.0.0]: https://github.com/memoryintelligence/sdk-python/releases/tag/v1.0.0
52
+ [Unreleased]: https://github.com/memoryintelligence/sdk-python/compare/v1.0.0...HEAD
@@ -0,0 +1,21 @@
1
+ # Include essential files
2
+ include README.md
3
+ include LICENSE
4
+ include CHANGELOG.md
5
+
6
+ # Include package data
7
+ recursive-include memoryintelligence *.py
8
+
9
+ # Exclude development files
10
+ exclude .gitignore
11
+ exclude .env*
12
+ recursive-exclude tests *
13
+ recursive-exclude demos *
14
+ recursive-exclude examples *
15
+ recursive-exclude .venv *
16
+ recursive-exclude __pycache__ *
17
+ recursive-exclude *.egg-info *
18
+ global-exclude *.pyc
19
+ global-exclude *.pyo
20
+ global-exclude *~
21
+ global-exclude .DS_Store
@@ -0,0 +1,183 @@
1
+ Metadata-Version: 2.4
2
+ Name: memoryintelligence
3
+ Version: 1.0.1
4
+ Summary: Official Python SDK for Memory Intelligence - Verifiable meaning infrastructure for AI
5
+ Author-email: Memory Intelligence Team <sdk@memoryintelligence.dev>
6
+ Maintainer-email: Memory Intelligence Team <sdk@memoryintelligence.dev>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://memoryintelligence.dev
9
+ Project-URL: Documentation, https://docs.memoryintelligence.dev
10
+ Project-URL: Repository, https://github.com/memoryintelligence/sdk-python
11
+ Project-URL: Changelog, https://github.com/memoryintelligence/sdk-python/blob/main/CHANGELOG.md
12
+ Keywords: ai,llm,memory,rag,embeddings,nlp,privacy,compliance,hipaa,gdpr,provenance
13
+ Classifier: Development Status :: 4 - Beta
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.9
18
+ Classifier: Programming Language :: Python :: 3.10
19
+ Classifier: Programming Language :: Python :: 3.11
20
+ Classifier: Programming Language :: Python :: 3.12
21
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
23
+ Classifier: Typing :: Typed
24
+ Requires-Python: >=3.9
25
+ Description-Content-Type: text/markdown
26
+ License-File: LICENSE
27
+ Requires-Dist: httpx>=0.24.0
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest>=7.0; extra == "dev"
30
+ Requires-Dist: pytest-asyncio>=0.21; extra == "dev"
31
+ Requires-Dist: pytest-cov>=4.0; extra == "dev"
32
+ Requires-Dist: mypy>=1.0; extra == "dev"
33
+ Requires-Dist: ruff>=0.1; extra == "dev"
34
+ Dynamic: license-file
35
+
36
+ # Memory Intelligence SDK
37
+
38
+ The official Python SDK for Memory Intelligence - Verifiable meaning infrastructure for AI.
39
+
40
+ [![PyPI](https://img.shields.io/pypi/v/memoryintelligence.svg)](https://pypi.org/project/memoryintelligence/)
41
+ [![License](https://img.shields.io/pypi/l/memoryintelligence.svg)](https://pypi.org/project/memoryintelligence/)
42
+
43
+ ## Quick Start
44
+
45
+ ```python
46
+ from memoryintelligence import MemoryClient
47
+
48
+ # Initialize client
49
+ mi = MemoryClient(api_key="mi_sk_...")
50
+
51
+ # Process content → meaning
52
+ umo = mi.process("Meeting notes from today", user_ulid="01ABC...")
53
+
54
+ # Search meaning
55
+ results = mi.search("What did we discuss?", user_ulid="01ABC...", explain=True)
56
+
57
+ # Match for recommendations
58
+ match = mi.match("01ABC...", "01XYZ...", explain=True)
59
+
60
+ # Delete for GDPR
61
+ mi.delete(user_ulid="01ABC...")
62
+ ```
63
+
64
+ ## Key Features
65
+
66
+ - **Meaning-First Architecture**: Raw content discarded after processing
67
+ - **Five Core Operations**: Process, Search, Match, Explain, Delete
68
+ - **Provenance Tracking**: Cryptographic verification of content lineage
69
+ - **GDPR Compliance**: One-call data deletion with audit proof
70
+ - **Built-in Telemetry**: Debug logs for content processing
71
+ - **Simplified API**: Only 12 essential exports
72
+
73
+ ## Usage Guide
74
+
75
+ ### Initialize the Client
76
+
77
+ ```python
78
+ from memoryintelligence import MemoryClient
79
+
80
+ # For production (API key required)
81
+ mi = MemoryClient(api_key="mi_sk_prod_...")
82
+
83
+ # For development
84
+ mi = MemoryClient(api_key="mi_sk_dev_...")
85
+ ```
86
+
87
+ ### Process Content
88
+
89
+ Convert raw content to meaning (discards raw content by default):
90
+
91
+ ```python
92
+ umo = mi.process(
93
+ "Budget approved for Q3 initiatives",
94
+ user_ulid="01ABC...",
95
+ retention_policy="meaning_only"
96
+ )
97
+ ```
98
+
99
+ ### Search for Meaning
100
+
101
+ Find relevant memories with explanation:
102
+
103
+ ```python
104
+ results = mi.search(
105
+ "Q3 budget decisions",
106
+ user_ulid="01ABC...",
107
+ explain=True,
108
+ limit=5
109
+ )
110
+ ```
111
+
112
+ ### Match for Recommendations
113
+
114
+ Compare two memories for relevance:
115
+
116
+ ```python
117
+ match = mi.match(
118
+ source_ulid="01ABC...",
119
+ candidate_ulid="01XYZ...",
120
+ explain=True
121
+ )
122
+ ```
123
+
124
+ ### Get Explanations
125
+
126
+ Understand why content is relevant:
127
+
128
+ ```python
129
+ explanation = mi.explain(umo.umo_id)
130
+ print(explanation.human.summary)
131
+ ```
132
+
133
+ ### Delete Data
134
+
135
+ GDPR-compliant data removal:
136
+
137
+ ```python
138
+ result = mi.delete(user_ulid="01ABC...")
139
+ print(f"Deleted {result.deleted_count} memories")
140
+ ```
141
+
142
+ ## Monitoring & Telemetry
143
+
144
+ The SDK provides built-in telemetry for operational visibility:
145
+
146
+ ```python
147
+ import logging
148
+ logging.basicConfig(level=logging.DEBUG)
149
+ ```
150
+
151
+ ### Key Log Events:
152
+ - `DEBUG`: Content processing metrics (size, time)
153
+ - `INFO`: Operation completion with results
154
+ - `WARNING`: PII detection events
155
+ - `ERROR`: API and integration errors
156
+
157
+ ### Dashboard Setup
158
+
159
+ 1. Run the smoke test to generate sample telemetry:
160
+ ```bash
161
+ python sdk_smoke_test.py
162
+ ```
163
+ 2. Set up log collection with your monitoring system
164
+ 3. Import the included Grafana dashboard template:
165
+ ```bash
166
+ grafana-cli dashboard import grafana_dashboard.json
167
+ ```
168
+
169
+ ## Documentation
170
+
171
+ Full documentation is available at:
172
+ - [API Reference](https://docs.memoryintelligence.dev)
173
+ - [Getting Started Guide](https://memoryintelligence.dev/docs/getting-started)
174
+
175
+ ## Support
176
+
177
+ For SDK issues, please contact:
178
+ - support@memoryintelligence.dev
179
+ - GitHub Issues: [Create New Issue](https://github.com/memoryintelligence/sdk-python/issues/new)
180
+
181
+ ## License
182
+
183
+ This SDK is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -0,0 +1,148 @@
1
+ # Memory Intelligence SDK
2
+
3
+ The official Python SDK for Memory Intelligence - Verifiable meaning infrastructure for AI.
4
+
5
+ [![PyPI](https://img.shields.io/pypi/v/memoryintelligence.svg)](https://pypi.org/project/memoryintelligence/)
6
+ [![License](https://img.shields.io/pypi/l/memoryintelligence.svg)](https://pypi.org/project/memoryintelligence/)
7
+
8
+ ## Quick Start
9
+
10
+ ```python
11
+ from memoryintelligence import MemoryClient
12
+
13
+ # Initialize client
14
+ mi = MemoryClient(api_key="mi_sk_...")
15
+
16
+ # Process content → meaning
17
+ umo = mi.process("Meeting notes from today", user_ulid="01ABC...")
18
+
19
+ # Search meaning
20
+ results = mi.search("What did we discuss?", user_ulid="01ABC...", explain=True)
21
+
22
+ # Match for recommendations
23
+ match = mi.match("01ABC...", "01XYZ...", explain=True)
24
+
25
+ # Delete for GDPR
26
+ mi.delete(user_ulid="01ABC...")
27
+ ```
28
+
29
+ ## Key Features
30
+
31
+ - **Meaning-First Architecture**: Raw content discarded after processing
32
+ - **Five Core Operations**: Process, Search, Match, Explain, Delete
33
+ - **Provenance Tracking**: Cryptographic verification of content lineage
34
+ - **GDPR Compliance**: One-call data deletion with audit proof
35
+ - **Built-in Telemetry**: Debug logs for content processing
36
+ - **Simplified API**: Only 12 essential exports
37
+
38
+ ## Usage Guide
39
+
40
+ ### Initialize the Client
41
+
42
+ ```python
43
+ from memoryintelligence import MemoryClient
44
+
45
+ # For production (API key required)
46
+ mi = MemoryClient(api_key="mi_sk_prod_...")
47
+
48
+ # For development
49
+ mi = MemoryClient(api_key="mi_sk_dev_...")
50
+ ```
51
+
52
+ ### Process Content
53
+
54
+ Convert raw content to meaning (discards raw content by default):
55
+
56
+ ```python
57
+ umo = mi.process(
58
+ "Budget approved for Q3 initiatives",
59
+ user_ulid="01ABC...",
60
+ retention_policy="meaning_only"
61
+ )
62
+ ```
63
+
64
+ ### Search for Meaning
65
+
66
+ Find relevant memories with explanation:
67
+
68
+ ```python
69
+ results = mi.search(
70
+ "Q3 budget decisions",
71
+ user_ulid="01ABC...",
72
+ explain=True,
73
+ limit=5
74
+ )
75
+ ```
76
+
77
+ ### Match for Recommendations
78
+
79
+ Compare two memories for relevance:
80
+
81
+ ```python
82
+ match = mi.match(
83
+ source_ulid="01ABC...",
84
+ candidate_ulid="01XYZ...",
85
+ explain=True
86
+ )
87
+ ```
88
+
89
+ ### Get Explanations
90
+
91
+ Understand why content is relevant:
92
+
93
+ ```python
94
+ explanation = mi.explain(umo.umo_id)
95
+ print(explanation.human.summary)
96
+ ```
97
+
98
+ ### Delete Data
99
+
100
+ GDPR-compliant data removal:
101
+
102
+ ```python
103
+ result = mi.delete(user_ulid="01ABC...")
104
+ print(f"Deleted {result.deleted_count} memories")
105
+ ```
106
+
107
+ ## Monitoring & Telemetry
108
+
109
+ The SDK provides built-in telemetry for operational visibility:
110
+
111
+ ```python
112
+ import logging
113
+ logging.basicConfig(level=logging.DEBUG)
114
+ ```
115
+
116
+ ### Key Log Events:
117
+ - `DEBUG`: Content processing metrics (size, time)
118
+ - `INFO`: Operation completion with results
119
+ - `WARNING`: PII detection events
120
+ - `ERROR`: API and integration errors
121
+
122
+ ### Dashboard Setup
123
+
124
+ 1. Run the smoke test to generate sample telemetry:
125
+ ```bash
126
+ python sdk_smoke_test.py
127
+ ```
128
+ 2. Set up log collection with your monitoring system
129
+ 3. Import the included Grafana dashboard template:
130
+ ```bash
131
+ grafana-cli dashboard import grafana_dashboard.json
132
+ ```
133
+
134
+ ## Documentation
135
+
136
+ Full documentation is available at:
137
+ - [API Reference](https://docs.memoryintelligence.dev)
138
+ - [Getting Started Guide](https://memoryintelligence.dev/docs/getting-started)
139
+
140
+ ## Support
141
+
142
+ For SDK issues, please contact:
143
+ - support@memoryintelligence.dev
144
+ - GitHub Issues: [Create New Issue](https://github.com/memoryintelligence/sdk-python/issues/new)
145
+
146
+ ## License
147
+
148
+ This SDK is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -45,7 +45,7 @@ Version: 1.0.0
45
45
  Author: Memory Intelligence Team
46
46
  """
47
47
 
48
- __version__ = "1.0.0"
48
+ __version__ = "1.0.1"
49
49
  __author__ = "Memory Intelligence Team"
50
50
 
51
51
  # ============================================================================
@@ -54,7 +54,7 @@ __author__ = "Memory Intelligence Team"
54
54
 
55
55
  # Main clients
56
56
  from .memory_client import MemoryClient
57
- from .edge_client import EdgeClient, connect_edge
57
+ from .edge_client import EdgeClient
58
58
 
59
59
  # Enums
60
60
  from .mi_types import (
@@ -98,7 +98,7 @@ from .mi_types import (
98
98
  ScopeViolationError,
99
99
  PIIViolationError,
100
100
  GovernanceError,
101
- ProvenenaceError,
101
+ ProvenanceError,
102
102
  )
103
103
 
104
104
  # ============================================================================
@@ -112,7 +112,6 @@ __all__ = [
112
112
  # Clients
113
113
  "MemoryClient",
114
114
  "EdgeClient",
115
- "connect_edge",
116
115
 
117
116
  # Enums
118
117
  "Scope",
@@ -149,5 +148,5 @@ __all__ = [
149
148
  "ScopeViolationError",
150
149
  "PIIViolationError",
151
150
  "GovernanceError",
152
- "ProvenenaceError",
151
+ "ProvenanceError",
153
152
  ]
@@ -74,7 +74,7 @@ from .mi_types import (
74
74
  GovernanceError,
75
75
  )
76
76
 
77
- logger = logging.getLogger(__name__)
77
+ logger = logging.getLogger('memoryintelligence')
78
78
 
79
79
 
80
80
  # ============================================================================
@@ -242,7 +242,9 @@ class MemoryClient:
242
242
  if self.org_ulid:
243
243
  payload["org_ulid"] = self.org_ulid
244
244
 
245
+ logger.debug("Processing content of length %d", len(content))
245
246
  response = self._request("POST", "/v1/process", json=payload)
247
+ logger.info("Successfully processed content")
246
248
  return self._parse_meaning_object(response)
247
249
 
248
250
  # ========================================================================
@@ -359,6 +359,6 @@ class GovernanceError(MIError):
359
359
  pass
360
360
 
361
361
 
362
- class ProvenenaceError(MIError):
362
+ class ProvenanceError(MIError):
363
363
  """Provenance verification failed."""
364
364
  pass
@@ -0,0 +1,9 @@
1
+ CHANGELOG.md
2
+ LICENSE
3
+ MANIFEST.in
4
+ README.md
5
+ pyproject.toml
6
+ memoryintelligence/__init__.py
7
+ memoryintelligence/edge_client.py
8
+ memoryintelligence/memory_client.py
9
+ memoryintelligence/mi_types.py
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "memoryintelligence"
7
- version = "1.0.0"
7
+ version = "1.0.1"
8
8
  description = "Official Python SDK for Memory Intelligence - Verifiable meaning infrastructure for AI"
9
9
  readme = "README.md"
10
- license = {text = "MIT"}
10
+ license = "MIT"
11
11
  authors = [
12
12
  {name = "Memory Intelligence Team", email = "sdk@memoryintelligence.dev"}
13
13
  ]
@@ -30,7 +30,6 @@ keywords = [
30
30
  classifiers = [
31
31
  "Development Status :: 4 - Beta",
32
32
  "Intended Audience :: Developers",
33
- "License :: OSI Approved :: MIT License",
34
33
  "Operating System :: OS Independent",
35
34
  "Programming Language :: Python :: 3",
36
35
  "Programming Language :: Python :: 3.9",
@@ -64,6 +63,7 @@ Changelog = "https://github.com/memoryintelligence/sdk-python/blob/main/CHANGELO
64
63
  [tool.setuptools.packages.find]
65
64
  where = ["."]
66
65
  include = ["memoryintelligence*"]
66
+ exclude = ["tests*", "demos*", "examples*"]
67
67
 
68
68
  [tool.mypy]
69
69
  python_version = "3.9"