evermemos 0.3.7__tar.gz → 0.3.8__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.
- evermemos-0.3.8/.release-please-manifest.json +3 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/CHANGELOG.md +14 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/PKG-INFO +5 -5
- {evermemos-0.3.7 → evermemos-0.3.8}/README.md +4 -4
- {evermemos-0.3.7 → evermemos-0.3.8}/api.md +0 -14
- {evermemos-0.3.7 → evermemos-0.3.8}/pyproject.toml +1 -1
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_version.py +1 -1
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/__init__.py +0 -14
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/memories/memories.py +18 -8
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/stats/request.py +2 -2
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/v1.py +0 -32
- evermemos-0.3.8/src/evermemos/types/v1/global_user_profile/__init__.py +3 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_create_params.py +7 -0
- evermemos-0.3.8/src/evermemos/types/v1/memory_create_response.py +13 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_delete_params.py +3 -3
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_get_response.py +4 -2
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/stats/request_get_params.py +1 -1
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/api_resources/v1/test_memories.py +4 -2
- evermemos-0.3.7/.release-please-manifest.json +0 -3
- evermemos-0.3.7/src/evermemos/resources/v1/global_user_profile/__init__.py +0 -33
- evermemos-0.3.7/src/evermemos/resources/v1/global_user_profile/custom.py +0 -185
- evermemos-0.3.7/src/evermemos/resources/v1/global_user_profile/global_user_profile.py +0 -102
- evermemos-0.3.7/src/evermemos/types/v1/global_user_profile/__init__.py +0 -6
- evermemos-0.3.7/src/evermemos/types/v1/global_user_profile/custom_upsert_params.py +0 -24
- evermemos-0.3.7/src/evermemos/types/v1/global_user_profile/custom_upsert_response.py +0 -23
- evermemos-0.3.7/src/evermemos/types/v1/memory_create_response.py +0 -39
- evermemos-0.3.7/tests/api_resources/v1/global_user_profile/test_custom.py +0 -134
- evermemos-0.3.7/tests/api_resources/v1/stats/__init__.py +0 -1
- {evermemos-0.3.7 → evermemos-0.3.8}/.gitignore +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/CONTRIBUTING.md +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/LICENSE +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/SECURITY.md +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/bin/check-release-environment +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/bin/publish-pypi +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/examples/.keep +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/release-please-config.json +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/requirements-dev.lock +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/EverMemOS/lib/.keep +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_base_client.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_client.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_compat.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_constants.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_exceptions.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_files.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_models.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_qs.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_resource.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_streaming.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_types.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_compat.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_datetime_parse.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_logs.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_proxy.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_reflection.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_resources_proxy.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_streams.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_sync.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_transform.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_typing.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/_utils/_utils.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/lib/.keep +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/py.typed +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/memories/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/memories/conversation_meta.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/stats/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/resources/v1/stats/stats.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memories/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memories/conversation_meta_create_params.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memories/conversation_meta_create_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memories/conversation_meta_get_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memories/conversation_meta_update_params.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memories/conversation_meta_update_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_delete_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_load_params.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_load_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_search_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/memory_type.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/metadata.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/stats/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/src/evermemos/types/v1/stats/request_get_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/api_resources/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/api_resources/v1/__init__.py +0 -0
- {evermemos-0.3.7/tests/api_resources/v1/global_user_profile → evermemos-0.3.8/tests/api_resources/v1/memories}/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/api_resources/v1/memories/test_conversation_meta.py +0 -0
- {evermemos-0.3.7/tests/api_resources/v1/memories → evermemos-0.3.8/tests/api_resources/v1/stats}/__init__.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/api_resources/v1/stats/test_request.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/conftest.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/sample_file.txt +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_client.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_deepcopy.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_extract_files.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_files.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_models.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_qs.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_required_args.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_response.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_streaming.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_transform.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_utils/test_datetime_parse.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_utils/test_proxy.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/test_utils/test_typing.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/tests/utils.py +0 -0
- {evermemos-0.3.7 → evermemos-0.3.8}/uv.lock +0 -0
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.3.8 (2026-01-28)
|
|
4
|
+
|
|
5
|
+
Full Changelog: [v0.3.7...v0.3.8](https://github.com/evermemos/evermemos-python/compare/v0.3.7...v0.3.8)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
* **api:** api update ([e2cc79c](https://github.com/evermemos/evermemos-python/commit/e2cc79c7b19cd8da12385d59bd6fcb7e83be6c84))
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
### Chores
|
|
13
|
+
|
|
14
|
+
* update SDK settings ([c6d796d](https://github.com/evermemos/evermemos-python/commit/c6d796d7bbbec539954c1802094932a919d0b8e5))
|
|
15
|
+
* update SDK settings ([11a1c09](https://github.com/evermemos/evermemos-python/commit/11a1c09da854becb6567ad5428db716e38e81ee0))
|
|
16
|
+
|
|
3
17
|
## 0.3.7 (2026-01-27)
|
|
4
18
|
|
|
5
19
|
Full Changelog: [v0.3.6...v0.3.7](https://github.com/evermemos/evermemos-python/compare/v0.3.6...v0.3.7)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: evermemos
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.8
|
|
4
4
|
Summary: The official Python library for the EverMemOS API
|
|
5
5
|
Project-URL: Homepage, https://github.com/evermemos/evermemos-python
|
|
6
6
|
Project-URL: Repository, https://github.com/evermemos/evermemos-python
|
|
@@ -73,7 +73,7 @@ memory = client.v1.memories.create(
|
|
|
73
73
|
message_id="msg_001",
|
|
74
74
|
sender="user_001",
|
|
75
75
|
)
|
|
76
|
-
print(memory.
|
|
76
|
+
print(memory.request_id)
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
While you can provide an `api_key` keyword argument,
|
|
@@ -102,7 +102,7 @@ async def main() -> None:
|
|
|
102
102
|
message_id="msg_001",
|
|
103
103
|
sender="user_001",
|
|
104
104
|
)
|
|
105
|
-
print(memory.
|
|
105
|
+
print(memory.request_id)
|
|
106
106
|
|
|
107
107
|
|
|
108
108
|
asyncio.run(main())
|
|
@@ -141,7 +141,7 @@ async def main() -> None:
|
|
|
141
141
|
message_id="msg_001",
|
|
142
142
|
sender="user_001",
|
|
143
143
|
)
|
|
144
|
-
print(memory.
|
|
144
|
+
print(memory.request_id)
|
|
145
145
|
|
|
146
146
|
|
|
147
147
|
asyncio.run(main())
|
|
@@ -331,7 +331,7 @@ response = client.v1.memories.with_raw_response.create(
|
|
|
331
331
|
print(response.headers.get('X-My-Header'))
|
|
332
332
|
|
|
333
333
|
memory = response.parse() # get the object that `v1.memories.create()` would have returned
|
|
334
|
-
print(memory.
|
|
334
|
+
print(memory.request_id)
|
|
335
335
|
```
|
|
336
336
|
|
|
337
337
|
These methods return an [`APIResponse`](https://github.com/evermemos/evermemos-python/tree/main/src/evermemos/_response.py) object.
|
|
@@ -38,7 +38,7 @@ memory = client.v1.memories.create(
|
|
|
38
38
|
message_id="msg_001",
|
|
39
39
|
sender="user_001",
|
|
40
40
|
)
|
|
41
|
-
print(memory.
|
|
41
|
+
print(memory.request_id)
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
While you can provide an `api_key` keyword argument,
|
|
@@ -67,7 +67,7 @@ async def main() -> None:
|
|
|
67
67
|
message_id="msg_001",
|
|
68
68
|
sender="user_001",
|
|
69
69
|
)
|
|
70
|
-
print(memory.
|
|
70
|
+
print(memory.request_id)
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
asyncio.run(main())
|
|
@@ -106,7 +106,7 @@ async def main() -> None:
|
|
|
106
106
|
message_id="msg_001",
|
|
107
107
|
sender="user_001",
|
|
108
108
|
)
|
|
109
|
-
print(memory.
|
|
109
|
+
print(memory.request_id)
|
|
110
110
|
|
|
111
111
|
|
|
112
112
|
asyncio.run(main())
|
|
@@ -296,7 +296,7 @@ response = client.v1.memories.with_raw_response.create(
|
|
|
296
296
|
print(response.headers.get('X-My-Header'))
|
|
297
297
|
|
|
298
298
|
memory = response.parse() # get the object that `v1.memories.create()` would have returned
|
|
299
|
-
print(memory.
|
|
299
|
+
print(memory.request_id)
|
|
300
300
|
```
|
|
301
301
|
|
|
302
302
|
These methods return an [`APIResponse`](https://github.com/evermemos/evermemos-python/tree/main/src/evermemos/_response.py) object.
|
|
@@ -42,20 +42,6 @@ Methods:
|
|
|
42
42
|
- <code title="patch /api/v1/memories/conversation-meta">client.v1.memories.conversation_meta.<a href="./src/evermemos/resources/v1/memories/conversation_meta.py">update</a>(\*\*<a href="src/evermemos/types/v1/memories/conversation_meta_update_params.py">params</a>) -> <a href="./src/evermemos/types/v1/memories/conversation_meta_update_response.py">ConversationMetaUpdateResponse</a></code>
|
|
43
43
|
- <code title="get /api/v1/memories/conversation-meta">client.v1.memories.conversation_meta.<a href="./src/evermemos/resources/v1/memories/conversation_meta.py">get</a>() -> <a href="./src/evermemos/types/v1/memories/conversation_meta_get_response.py">ConversationMetaGetResponse</a></code>
|
|
44
44
|
|
|
45
|
-
## GlobalUserProfile
|
|
46
|
-
|
|
47
|
-
### Custom
|
|
48
|
-
|
|
49
|
-
Types:
|
|
50
|
-
|
|
51
|
-
```python
|
|
52
|
-
from evermemos.types.v1.global_user_profile import CustomUpsertResponse
|
|
53
|
-
```
|
|
54
|
-
|
|
55
|
-
Methods:
|
|
56
|
-
|
|
57
|
-
- <code title="post /api/v1/global-user-profile/custom">client.v1.global_user_profile.custom.<a href="./src/evermemos/resources/v1/global_user_profile/custom.py">upsert</a>(\*\*<a href="src/evermemos/types/v1/global_user_profile/custom_upsert_params.py">params</a>) -> <a href="./src/evermemos/types/v1/global_user_profile/custom_upsert_response.py">CustomUpsertResponse</a></code>
|
|
58
|
-
|
|
59
45
|
## Stats
|
|
60
46
|
|
|
61
47
|
### Request
|
|
@@ -24,14 +24,6 @@ from .memories import (
|
|
|
24
24
|
MemoriesResourceWithStreamingResponse,
|
|
25
25
|
AsyncMemoriesResourceWithStreamingResponse,
|
|
26
26
|
)
|
|
27
|
-
from .global_user_profile import (
|
|
28
|
-
GlobalUserProfileResource,
|
|
29
|
-
AsyncGlobalUserProfileResource,
|
|
30
|
-
GlobalUserProfileResourceWithRawResponse,
|
|
31
|
-
AsyncGlobalUserProfileResourceWithRawResponse,
|
|
32
|
-
GlobalUserProfileResourceWithStreamingResponse,
|
|
33
|
-
AsyncGlobalUserProfileResourceWithStreamingResponse,
|
|
34
|
-
)
|
|
35
27
|
|
|
36
28
|
__all__ = [
|
|
37
29
|
"MemoriesResource",
|
|
@@ -40,12 +32,6 @@ __all__ = [
|
|
|
40
32
|
"AsyncMemoriesResourceWithRawResponse",
|
|
41
33
|
"MemoriesResourceWithStreamingResponse",
|
|
42
34
|
"AsyncMemoriesResourceWithStreamingResponse",
|
|
43
|
-
"GlobalUserProfileResource",
|
|
44
|
-
"AsyncGlobalUserProfileResource",
|
|
45
|
-
"GlobalUserProfileResourceWithRawResponse",
|
|
46
|
-
"AsyncGlobalUserProfileResourceWithRawResponse",
|
|
47
|
-
"GlobalUserProfileResourceWithStreamingResponse",
|
|
48
|
-
"AsyncGlobalUserProfileResourceWithStreamingResponse",
|
|
49
35
|
"StatsResource",
|
|
50
36
|
"AsyncStatsResource",
|
|
51
37
|
"StatsResourceWithRawResponse",
|
|
@@ -66,6 +66,7 @@ class MemoriesResource(SyncAPIResource):
|
|
|
66
66
|
create_time: str,
|
|
67
67
|
message_id: str,
|
|
68
68
|
sender: str,
|
|
69
|
+
flush: bool | Omit = omit,
|
|
69
70
|
group_id: Optional[str] | Omit = omit,
|
|
70
71
|
group_name: Optional[str] | Omit = omit,
|
|
71
72
|
refer_list: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -90,6 +91,9 @@ class MemoriesResource(SyncAPIResource):
|
|
|
90
91
|
|
|
91
92
|
sender: Sender user ID (required). Also used as user_id internally for memory ownership.
|
|
92
93
|
|
|
94
|
+
flush: Force boundary trigger. When True, immediately triggers memory extraction
|
|
95
|
+
instead of waiting for natural boundary detection.
|
|
96
|
+
|
|
93
97
|
group_id: Group ID. If not provided, will automatically generate based on hash(sender) +
|
|
94
98
|
'\\__group' suffix, representing single-user mode where each user's messages are
|
|
95
99
|
extracted into separate memory spaces.
|
|
@@ -122,6 +126,7 @@ class MemoriesResource(SyncAPIResource):
|
|
|
122
126
|
"create_time": create_time,
|
|
123
127
|
"message_id": message_id,
|
|
124
128
|
"sender": sender,
|
|
129
|
+
"flush": flush,
|
|
125
130
|
"group_id": group_id,
|
|
126
131
|
"group_name": group_name,
|
|
127
132
|
"refer_list": refer_list,
|
|
@@ -139,8 +144,8 @@ class MemoriesResource(SyncAPIResource):
|
|
|
139
144
|
def delete(
|
|
140
145
|
self,
|
|
141
146
|
*,
|
|
142
|
-
event_id: Optional[str] | Omit = omit,
|
|
143
147
|
group_id: Optional[str] | Omit = omit,
|
|
148
|
+
memory_id: Optional[str] | Omit = omit,
|
|
144
149
|
user_id: Optional[str] | Omit = omit,
|
|
145
150
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
146
151
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -153,10 +158,10 @@ class MemoriesResource(SyncAPIResource):
|
|
|
153
158
|
Delete memory records based on combined filter criteria
|
|
154
159
|
|
|
155
160
|
Args:
|
|
156
|
-
event_id: Memory event_id (filter condition)
|
|
157
|
-
|
|
158
161
|
group_id: Group ID (filter condition)
|
|
159
162
|
|
|
163
|
+
memory_id: Memory id (filter condition)
|
|
164
|
+
|
|
160
165
|
user_id: User ID (filter condition)
|
|
161
166
|
|
|
162
167
|
extra_headers: Send extra headers
|
|
@@ -171,8 +176,8 @@ class MemoriesResource(SyncAPIResource):
|
|
|
171
176
|
"/api/v1/memories",
|
|
172
177
|
body=maybe_transform(
|
|
173
178
|
{
|
|
174
|
-
"event_id": event_id,
|
|
175
179
|
"group_id": group_id,
|
|
180
|
+
"memory_id": memory_id,
|
|
176
181
|
"user_id": user_id,
|
|
177
182
|
},
|
|
178
183
|
memory_delete_params.MemoryDeleteParams,
|
|
@@ -305,6 +310,7 @@ class AsyncMemoriesResource(AsyncAPIResource):
|
|
|
305
310
|
create_time: str,
|
|
306
311
|
message_id: str,
|
|
307
312
|
sender: str,
|
|
313
|
+
flush: bool | Omit = omit,
|
|
308
314
|
group_id: Optional[str] | Omit = omit,
|
|
309
315
|
group_name: Optional[str] | Omit = omit,
|
|
310
316
|
refer_list: Optional[SequenceNotStr[str]] | Omit = omit,
|
|
@@ -329,6 +335,9 @@ class AsyncMemoriesResource(AsyncAPIResource):
|
|
|
329
335
|
|
|
330
336
|
sender: Sender user ID (required). Also used as user_id internally for memory ownership.
|
|
331
337
|
|
|
338
|
+
flush: Force boundary trigger. When True, immediately triggers memory extraction
|
|
339
|
+
instead of waiting for natural boundary detection.
|
|
340
|
+
|
|
332
341
|
group_id: Group ID. If not provided, will automatically generate based on hash(sender) +
|
|
333
342
|
'\\__group' suffix, representing single-user mode where each user's messages are
|
|
334
343
|
extracted into separate memory spaces.
|
|
@@ -361,6 +370,7 @@ class AsyncMemoriesResource(AsyncAPIResource):
|
|
|
361
370
|
"create_time": create_time,
|
|
362
371
|
"message_id": message_id,
|
|
363
372
|
"sender": sender,
|
|
373
|
+
"flush": flush,
|
|
364
374
|
"group_id": group_id,
|
|
365
375
|
"group_name": group_name,
|
|
366
376
|
"refer_list": refer_list,
|
|
@@ -378,8 +388,8 @@ class AsyncMemoriesResource(AsyncAPIResource):
|
|
|
378
388
|
async def delete(
|
|
379
389
|
self,
|
|
380
390
|
*,
|
|
381
|
-
event_id: Optional[str] | Omit = omit,
|
|
382
391
|
group_id: Optional[str] | Omit = omit,
|
|
392
|
+
memory_id: Optional[str] | Omit = omit,
|
|
383
393
|
user_id: Optional[str] | Omit = omit,
|
|
384
394
|
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
|
|
385
395
|
# The extra values given here take precedence over values defined on the client or passed to this method.
|
|
@@ -392,10 +402,10 @@ class AsyncMemoriesResource(AsyncAPIResource):
|
|
|
392
402
|
Delete memory records based on combined filter criteria
|
|
393
403
|
|
|
394
404
|
Args:
|
|
395
|
-
event_id: Memory event_id (filter condition)
|
|
396
|
-
|
|
397
405
|
group_id: Group ID (filter condition)
|
|
398
406
|
|
|
407
|
+
memory_id: Memory id (filter condition)
|
|
408
|
+
|
|
399
409
|
user_id: User ID (filter condition)
|
|
400
410
|
|
|
401
411
|
extra_headers: Send extra headers
|
|
@@ -410,8 +420,8 @@ class AsyncMemoriesResource(AsyncAPIResource):
|
|
|
410
420
|
"/api/v1/memories",
|
|
411
421
|
body=await async_maybe_transform(
|
|
412
422
|
{
|
|
413
|
-
"event_id": event_id,
|
|
414
423
|
"group_id": group_id,
|
|
424
|
+
"memory_id": memory_id,
|
|
415
425
|
"user_id": user_id,
|
|
416
426
|
},
|
|
417
427
|
memory_delete_params.MemoryDeleteParams,
|
|
@@ -58,7 +58,7 @@ class RequestResource(SyncAPIResource):
|
|
|
58
58
|
Query the processing status of a specific request
|
|
59
59
|
|
|
60
60
|
Args:
|
|
61
|
-
request_id:
|
|
61
|
+
request_id: this id is returned by add_memories api
|
|
62
62
|
|
|
63
63
|
extra_headers: Send extra headers
|
|
64
64
|
|
|
@@ -116,7 +116,7 @@ class AsyncRequestResource(AsyncAPIResource):
|
|
|
116
116
|
Query the processing status of a specific request
|
|
117
117
|
|
|
118
118
|
Args:
|
|
119
|
-
request_id:
|
|
119
|
+
request_id: this id is returned by add_memories api
|
|
120
120
|
|
|
121
121
|
extra_headers: Send extra headers
|
|
122
122
|
|
|
@@ -20,14 +20,6 @@ from .memories.memories import (
|
|
|
20
20
|
MemoriesResourceWithStreamingResponse,
|
|
21
21
|
AsyncMemoriesResourceWithStreamingResponse,
|
|
22
22
|
)
|
|
23
|
-
from .global_user_profile.global_user_profile import (
|
|
24
|
-
GlobalUserProfileResource,
|
|
25
|
-
AsyncGlobalUserProfileResource,
|
|
26
|
-
GlobalUserProfileResourceWithRawResponse,
|
|
27
|
-
AsyncGlobalUserProfileResourceWithRawResponse,
|
|
28
|
-
GlobalUserProfileResourceWithStreamingResponse,
|
|
29
|
-
AsyncGlobalUserProfileResourceWithStreamingResponse,
|
|
30
|
-
)
|
|
31
23
|
|
|
32
24
|
__all__ = ["V1Resource", "AsyncV1Resource"]
|
|
33
25
|
|
|
@@ -37,10 +29,6 @@ class V1Resource(SyncAPIResource):
|
|
|
37
29
|
def memories(self) -> MemoriesResource:
|
|
38
30
|
return MemoriesResource(self._client)
|
|
39
31
|
|
|
40
|
-
@cached_property
|
|
41
|
-
def global_user_profile(self) -> GlobalUserProfileResource:
|
|
42
|
-
return GlobalUserProfileResource(self._client)
|
|
43
|
-
|
|
44
32
|
@cached_property
|
|
45
33
|
def stats(self) -> StatsResource:
|
|
46
34
|
return StatsResource(self._client)
|
|
@@ -70,10 +58,6 @@ class AsyncV1Resource(AsyncAPIResource):
|
|
|
70
58
|
def memories(self) -> AsyncMemoriesResource:
|
|
71
59
|
return AsyncMemoriesResource(self._client)
|
|
72
60
|
|
|
73
|
-
@cached_property
|
|
74
|
-
def global_user_profile(self) -> AsyncGlobalUserProfileResource:
|
|
75
|
-
return AsyncGlobalUserProfileResource(self._client)
|
|
76
|
-
|
|
77
61
|
@cached_property
|
|
78
62
|
def stats(self) -> AsyncStatsResource:
|
|
79
63
|
return AsyncStatsResource(self._client)
|
|
@@ -106,10 +90,6 @@ class V1ResourceWithRawResponse:
|
|
|
106
90
|
def memories(self) -> MemoriesResourceWithRawResponse:
|
|
107
91
|
return MemoriesResourceWithRawResponse(self._v1.memories)
|
|
108
92
|
|
|
109
|
-
@cached_property
|
|
110
|
-
def global_user_profile(self) -> GlobalUserProfileResourceWithRawResponse:
|
|
111
|
-
return GlobalUserProfileResourceWithRawResponse(self._v1.global_user_profile)
|
|
112
|
-
|
|
113
93
|
@cached_property
|
|
114
94
|
def stats(self) -> StatsResourceWithRawResponse:
|
|
115
95
|
return StatsResourceWithRawResponse(self._v1.stats)
|
|
@@ -123,10 +103,6 @@ class AsyncV1ResourceWithRawResponse:
|
|
|
123
103
|
def memories(self) -> AsyncMemoriesResourceWithRawResponse:
|
|
124
104
|
return AsyncMemoriesResourceWithRawResponse(self._v1.memories)
|
|
125
105
|
|
|
126
|
-
@cached_property
|
|
127
|
-
def global_user_profile(self) -> AsyncGlobalUserProfileResourceWithRawResponse:
|
|
128
|
-
return AsyncGlobalUserProfileResourceWithRawResponse(self._v1.global_user_profile)
|
|
129
|
-
|
|
130
106
|
@cached_property
|
|
131
107
|
def stats(self) -> AsyncStatsResourceWithRawResponse:
|
|
132
108
|
return AsyncStatsResourceWithRawResponse(self._v1.stats)
|
|
@@ -140,10 +116,6 @@ class V1ResourceWithStreamingResponse:
|
|
|
140
116
|
def memories(self) -> MemoriesResourceWithStreamingResponse:
|
|
141
117
|
return MemoriesResourceWithStreamingResponse(self._v1.memories)
|
|
142
118
|
|
|
143
|
-
@cached_property
|
|
144
|
-
def global_user_profile(self) -> GlobalUserProfileResourceWithStreamingResponse:
|
|
145
|
-
return GlobalUserProfileResourceWithStreamingResponse(self._v1.global_user_profile)
|
|
146
|
-
|
|
147
119
|
@cached_property
|
|
148
120
|
def stats(self) -> StatsResourceWithStreamingResponse:
|
|
149
121
|
return StatsResourceWithStreamingResponse(self._v1.stats)
|
|
@@ -157,10 +129,6 @@ class AsyncV1ResourceWithStreamingResponse:
|
|
|
157
129
|
def memories(self) -> AsyncMemoriesResourceWithStreamingResponse:
|
|
158
130
|
return AsyncMemoriesResourceWithStreamingResponse(self._v1.memories)
|
|
159
131
|
|
|
160
|
-
@cached_property
|
|
161
|
-
def global_user_profile(self) -> AsyncGlobalUserProfileResourceWithStreamingResponse:
|
|
162
|
-
return AsyncGlobalUserProfileResourceWithStreamingResponse(self._v1.global_user_profile)
|
|
163
|
-
|
|
164
132
|
@cached_property
|
|
165
133
|
def stats(self) -> AsyncStatsResourceWithStreamingResponse:
|
|
166
134
|
return AsyncStatsResourceWithStreamingResponse(self._v1.stats)
|
|
@@ -26,6 +26,13 @@ class MemoryCreateParams(TypedDict, total=False):
|
|
|
26
26
|
Also used as user_id internally for memory ownership.
|
|
27
27
|
"""
|
|
28
28
|
|
|
29
|
+
flush: bool
|
|
30
|
+
"""Force boundary trigger.
|
|
31
|
+
|
|
32
|
+
When True, immediately triggers memory extraction instead of waiting for natural
|
|
33
|
+
boundary detection.
|
|
34
|
+
"""
|
|
35
|
+
|
|
29
36
|
group_id: Optional[str]
|
|
30
37
|
"""Group ID.
|
|
31
38
|
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
from ..._models import BaseModel
|
|
4
|
+
|
|
5
|
+
__all__ = ["MemoryCreateResponse"]
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MemoryCreateResponse(BaseModel):
|
|
9
|
+
message: str
|
|
10
|
+
|
|
11
|
+
request_id: str
|
|
12
|
+
|
|
13
|
+
status: str
|
|
@@ -9,11 +9,11 @@ __all__ = ["MemoryDeleteParams"]
|
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class MemoryDeleteParams(TypedDict, total=False):
|
|
12
|
-
event_id: Optional[str]
|
|
13
|
-
"""Memory event_id (filter condition)"""
|
|
14
|
-
|
|
15
12
|
group_id: Optional[str]
|
|
16
13
|
"""Group ID (filter condition)"""
|
|
17
14
|
|
|
15
|
+
memory_id: Optional[str]
|
|
16
|
+
"""Memory id (filter condition)"""
|
|
17
|
+
|
|
18
18
|
user_id: Optional[str]
|
|
19
19
|
"""User ID (filter condition)"""
|
|
@@ -145,10 +145,12 @@ class ResultMemoryEpisodicMemoryModel(BaseModel):
|
|
|
145
145
|
|
|
146
146
|
location: Optional[str] = None
|
|
147
147
|
|
|
148
|
-
memcell_event_id_list: Optional[List[str]] = None
|
|
149
|
-
|
|
150
148
|
metadata: Optional[Metadata] = None
|
|
151
149
|
|
|
150
|
+
parent_id: Optional[str] = None
|
|
151
|
+
|
|
152
|
+
parent_type: Optional[str] = None
|
|
153
|
+
|
|
152
154
|
participants: Optional[List[str]] = None
|
|
153
155
|
|
|
154
156
|
start_time: Optional[datetime] = None
|
|
@@ -42,6 +42,7 @@ class TestMemories:
|
|
|
42
42
|
create_time="2025-01-15T10:00:00+00:00",
|
|
43
43
|
message_id="msg_001",
|
|
44
44
|
sender="user_001",
|
|
45
|
+
flush=False,
|
|
45
46
|
group_id="group_123",
|
|
46
47
|
group_name="Project Discussion Group",
|
|
47
48
|
refer_list=["msg_000"],
|
|
@@ -92,8 +93,8 @@ class TestMemories:
|
|
|
92
93
|
@parametrize
|
|
93
94
|
def test_method_delete_with_all_params(self, client: EverMemOS) -> None:
|
|
94
95
|
memory = client.v1.memories.delete(
|
|
95
|
-
event_id="507f1f77bcf86cd799439011",
|
|
96
96
|
group_id="group_456",
|
|
97
|
+
memory_id="507f1f77bcf86cd799439011",
|
|
97
98
|
user_id="user_123",
|
|
98
99
|
)
|
|
99
100
|
assert_matches_type(MemoryDeleteResponse, memory, path=["response"])
|
|
@@ -270,6 +271,7 @@ class TestAsyncMemories:
|
|
|
270
271
|
create_time="2025-01-15T10:00:00+00:00",
|
|
271
272
|
message_id="msg_001",
|
|
272
273
|
sender="user_001",
|
|
274
|
+
flush=False,
|
|
273
275
|
group_id="group_123",
|
|
274
276
|
group_name="Project Discussion Group",
|
|
275
277
|
refer_list=["msg_000"],
|
|
@@ -320,8 +322,8 @@ class TestAsyncMemories:
|
|
|
320
322
|
@parametrize
|
|
321
323
|
async def test_method_delete_with_all_params(self, async_client: AsyncEverMemOS) -> None:
|
|
322
324
|
memory = await async_client.v1.memories.delete(
|
|
323
|
-
event_id="507f1f77bcf86cd799439011",
|
|
324
325
|
group_id="group_456",
|
|
326
|
+
memory_id="507f1f77bcf86cd799439011",
|
|
325
327
|
user_id="user_123",
|
|
326
328
|
)
|
|
327
329
|
assert_matches_type(MemoryDeleteResponse, memory, path=["response"])
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
-
|
|
3
|
-
from .custom import (
|
|
4
|
-
CustomResource,
|
|
5
|
-
AsyncCustomResource,
|
|
6
|
-
CustomResourceWithRawResponse,
|
|
7
|
-
AsyncCustomResourceWithRawResponse,
|
|
8
|
-
CustomResourceWithStreamingResponse,
|
|
9
|
-
AsyncCustomResourceWithStreamingResponse,
|
|
10
|
-
)
|
|
11
|
-
from .global_user_profile import (
|
|
12
|
-
GlobalUserProfileResource,
|
|
13
|
-
AsyncGlobalUserProfileResource,
|
|
14
|
-
GlobalUserProfileResourceWithRawResponse,
|
|
15
|
-
AsyncGlobalUserProfileResourceWithRawResponse,
|
|
16
|
-
GlobalUserProfileResourceWithStreamingResponse,
|
|
17
|
-
AsyncGlobalUserProfileResourceWithStreamingResponse,
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
__all__ = [
|
|
21
|
-
"CustomResource",
|
|
22
|
-
"AsyncCustomResource",
|
|
23
|
-
"CustomResourceWithRawResponse",
|
|
24
|
-
"AsyncCustomResourceWithRawResponse",
|
|
25
|
-
"CustomResourceWithStreamingResponse",
|
|
26
|
-
"AsyncCustomResourceWithStreamingResponse",
|
|
27
|
-
"GlobalUserProfileResource",
|
|
28
|
-
"AsyncGlobalUserProfileResource",
|
|
29
|
-
"GlobalUserProfileResourceWithRawResponse",
|
|
30
|
-
"AsyncGlobalUserProfileResourceWithRawResponse",
|
|
31
|
-
"GlobalUserProfileResourceWithStreamingResponse",
|
|
32
|
-
"AsyncGlobalUserProfileResourceWithStreamingResponse",
|
|
33
|
-
]
|