Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.3.10"
".": "0.4.0"
}
6 changes: 3 additions & 3 deletions .stats.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
configured_endpoints: 8
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/evermind%2FEverMemOS-6732e30cb627515a31477d31f17edfcdd7de9a036431d715f07b2b1cb632ff98.yml
openapi_spec_hash: d76a11e32ffb7eac60a3d7d6b1ed6902
config_hash: 557b0f53b8ae061106486cf953c2584a
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/evermind%2FEverMemOS-5ccc8157a5afc0538f26893c961538657b297e7b6c88e2b3c7459f7eb53692cf.yml
openapi_spec_hash: b150fd149d3c6b56855894ff799734d7
config_hash: 94baa1bea34f3933d8c0a25eaad03846
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,14 @@
# Changelog

## 0.4.0 (2026-02-06)

Full Changelog: [v0.3.10...v0.4.0](https://github.com/evermemos/evermemos-python/compare/v0.3.10...v0.4.0)

### Features

* **api:** api update ([ddfdd8c](https://github.com/evermemos/evermemos-python/commit/ddfdd8c03ce83031ddadf78d5c99a60e2a640c91))
* **api:** api update ([0981f02](https://github.com/evermemos/evermemos-python/commit/0981f021d776d39cb9278f8ced62d749459fd613))

## 0.3.10 (2026-01-31)

Full Changelog: [v0.3.9...v0.3.10](https://github.com/evermemos/evermemos-python/compare/v0.3.9...v0.3.10)
Expand Down
20 changes: 10 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ client = EverMemOS(
api_key=os.environ.get("EVERMEMOS_API_KEY"), # This is the default and can be omitted
)

response = client.v1.memories.add(
response = client.v0.memories.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
Expand Down Expand Up @@ -61,7 +61,7 @@ client = AsyncEverMemOS(


async def main() -> None:
response = await client.v1.memories.add(
response = await client.v0.memories.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
Expand Down Expand Up @@ -100,7 +100,7 @@ async def main() -> None:
api_key=os.environ.get("EVERMEMOS_API_KEY"), # This is the default and can be omitted
http_client=DefaultAioHttpClient(),
) as client:
response = await client.v1.memories.add(
response = await client.v0.memories.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
Expand Down Expand Up @@ -130,7 +130,7 @@ from evermemos import EverMemOS

client = EverMemOS()

conversation_meta = client.v1.memories.conversation_meta.create(
conversation_meta = client.v0.memories.conversation_meta.create(
created_at="2025-01-15T10:00:00+00:00",
llm_custom_setting={
"boundary": {
Expand Down Expand Up @@ -162,7 +162,7 @@ from evermemos import EverMemOS
client = EverMemOS()

try:
client.v1.memories.add(
client.v0.memories.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
Expand Down Expand Up @@ -210,7 +210,7 @@ client = EverMemOS(
)

# Or, configure per-request:
client.with_options(max_retries=5).v1.memories.add(
client.with_options(max_retries=5).v0.memories.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
Expand Down Expand Up @@ -238,7 +238,7 @@ client = EverMemOS(
)

# Override per-request:
client.with_options(timeout=5.0).v1.memories.add(
client.with_options(timeout=5.0).v0.memories.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
Expand Down Expand Up @@ -284,15 +284,15 @@ The "raw" Response object can be accessed by prefixing `.with_raw_response.` to
from evermemos import EverMemOS

client = EverMemOS()
response = client.v1.memories.with_raw_response.add(
response = client.v0.memories.with_raw_response.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
sender="user_001",
)
print(response.headers.get('X-My-Header'))

memory = response.parse() # get the object that `v1.memories.add()` would have returned
memory = response.parse() # get the object that `v0.memories.add()` would have returned
print(memory.request_id)
```

Expand All @@ -307,7 +307,7 @@ The above interface eagerly reads the full response body when you make the reque
To stream the response body, use `.with_streaming_response` instead, which requires a context manager and only reads the response body once you call `.read()`, `.text()`, `.json()`, `.iter_bytes()`, `.iter_text()`, `.iter_lines()` or `.parse()`. In the async client, these are async methods.

```python
with client.v1.memories.with_streaming_response.add(
with client.v0.memories.with_streaming_response.add(
content="Let's discuss the technical solution for the new feature today",
create_time="2025-01-15T10:00:00+00:00",
message_id="msg_001",
Expand Down
24 changes: 12 additions & 12 deletions api.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# V1
# V0

## Memories

Types:

```python
from evermemos.types.v1 import (
from evermemos.types.v0 import (
MemoryType,
Metadata,
MemoryDeleteResponse,
Expand All @@ -17,17 +17,17 @@ from evermemos.types.v1 import (

Methods:

- <code title="delete /api/v1/memories">client.v1.memories.<a href="./src/evermemos/resources/v1/memories/memories.py">delete</a>(\*\*<a href="src/evermemos/types/v1/memory_delete_params.py">params</a>) -> <a href="./src/evermemos/types/v1/memory_delete_response.py">MemoryDeleteResponse</a></code>
- <code title="post /api/v1/memories">client.v1.memories.<a href="./src/evermemos/resources/v1/memories/memories.py">add</a>(\*\*<a href="src/evermemos/types/v1/memory_add_params.py">params</a>) -> <a href="./src/evermemos/types/v1/memory_add_response.py">MemoryAddResponse</a></code>
- <code title="get /api/v1/memories">client.v1.memories.<a href="./src/evermemos/resources/v1/memories/memories.py">get</a>() -> <a href="./src/evermemos/types/v1/memory_get_response.py">MemoryGetResponse</a></code>
- <code title="get /api/v1/memories/search">client.v1.memories.<a href="./src/evermemos/resources/v1/memories/memories.py">search</a>() -> <a href="./src/evermemos/types/v1/memory_search_response.py">MemorySearchResponse</a></code>
- <code title="delete /api/v0/memories">client.v0.memories.<a href="./src/evermemos/resources/v0/memories/memories.py">delete</a>(\*\*<a href="src/evermemos/types/v0/memory_delete_params.py">params</a>) -> <a href="./src/evermemos/types/v0/memory_delete_response.py">MemoryDeleteResponse</a></code>
- <code title="post /api/v0/memories">client.v0.memories.<a href="./src/evermemos/resources/v0/memories/memories.py">add</a>(\*\*<a href="src/evermemos/types/v0/memory_add_params.py">params</a>) -> <a href="./src/evermemos/types/v0/memory_add_response.py">MemoryAddResponse</a></code>
- <code title="get /api/v0/memories">client.v0.memories.<a href="./src/evermemos/resources/v0/memories/memories.py">get</a>() -> <a href="./src/evermemos/types/v0/memory_get_response.py">MemoryGetResponse</a></code>
- <code title="get /api/v0/memories/search">client.v0.memories.<a href="./src/evermemos/resources/v0/memories/memories.py">search</a>() -> <a href="./src/evermemos/types/v0/memory_search_response.py">MemorySearchResponse</a></code>

### ConversationMeta

Types:

```python
from evermemos.types.v1.memories import (
from evermemos.types.v0.memories import (
ConversationMetaCreateResponse,
ConversationMetaUpdateResponse,
ConversationMetaGetResponse,
Expand All @@ -36,9 +36,9 @@ from evermemos.types.v1.memories import (

Methods:

- <code title="post /api/v1/memories/conversation-meta">client.v1.memories.conversation_meta.<a href="./src/evermemos/resources/v1/memories/conversation_meta.py">create</a>(\*\*<a href="src/evermemos/types/v1/memories/conversation_meta_create_params.py">params</a>) -> <a href="./src/evermemos/types/v1/memories/conversation_meta_create_response.py">ConversationMetaCreateResponse</a></code>
- <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>
- <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>
- <code title="post /api/v0/memories/conversation-meta">client.v0.memories.conversation_meta.<a href="./src/evermemos/resources/v0/memories/conversation_meta.py">create</a>(\*\*<a href="src/evermemos/types/v0/memories/conversation_meta_create_params.py">params</a>) -> <a href="./src/evermemos/types/v0/memories/conversation_meta_create_response.py">ConversationMetaCreateResponse</a></code>
- <code title="patch /api/v0/memories/conversation-meta">client.v0.memories.conversation_meta.<a href="./src/evermemos/resources/v0/memories/conversation_meta.py">update</a>(\*\*<a href="src/evermemos/types/v0/memories/conversation_meta_update_params.py">params</a>) -> <a href="./src/evermemos/types/v0/memories/conversation_meta_update_response.py">ConversationMetaUpdateResponse</a></code>
- <code title="get /api/v0/memories/conversation-meta">client.v0.memories.conversation_meta.<a href="./src/evermemos/resources/v0/memories/conversation_meta.py">get</a>() -> <a href="./src/evermemos/types/v0/memories/conversation_meta_get_response.py">ConversationMetaGetResponse</a></code>

## Status

Expand All @@ -47,9 +47,9 @@ Methods:
Types:

```python
from evermemos.types.v1.status import RequestGetResponse
from evermemos.types.v0.status import RequestGetResponse
```

Methods:

- <code title="get /api/v1/status/request">client.v1.status.request.<a href="./src/evermemos/resources/v1/status/request.py">get</a>(\*\*<a href="src/evermemos/types/v1/status/request_get_params.py">params</a>) -> <a href="./src/evermemos/types/v1/status/request_get_response.py">RequestGetResponse</a></code>
- <code title="get /api/v0/status/request">client.v0.status.request.<a href="./src/evermemos/resources/v0/status/request.py">get</a>(\*\*<a href="src/evermemos/types/v0/status/request_get_params.py">params</a>) -> <a href="./src/evermemos/types/v0/status/request_get_response.py">RequestGetResponse</a></code>
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "evermemos"
version = "0.3.10"
version = "0.4.0"
description = "The official Python library for the EverMemOS API"
dynamic = ["readme"]
license = "Apache-2.0"
Expand Down
40 changes: 20 additions & 20 deletions src/evermemos/_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@
)

if TYPE_CHECKING:
from .resources import v1
from .resources.v1.v1 import V1Resource, AsyncV1Resource
from .resources import v0
from .resources.v0.v0 import V0Resource, AsyncV0Resource

__all__ = [
"Timeout",
Expand Down Expand Up @@ -102,10 +102,10 @@ def __init__(
)

@cached_property
def v1(self) -> V1Resource:
from .resources.v1 import V1Resource
def v0(self) -> V0Resource:
from .resources.v0 import V0Resource

return V1Resource(self)
return V0Resource(self)

@cached_property
def with_raw_response(self) -> EverMemOSWithRawResponse:
Expand Down Expand Up @@ -276,10 +276,10 @@ def __init__(
)

@cached_property
def v1(self) -> AsyncV1Resource:
from .resources.v1 import AsyncV1Resource
def v0(self) -> AsyncV0Resource:
from .resources.v0 import AsyncV0Resource

return AsyncV1Resource(self)
return AsyncV0Resource(self)

@cached_property
def with_raw_response(self) -> AsyncEverMemOSWithRawResponse:
Expand Down Expand Up @@ -401,10 +401,10 @@ def __init__(self, client: EverMemOS) -> None:
self._client = client

@cached_property
def v1(self) -> v1.V1ResourceWithRawResponse:
from .resources.v1 import V1ResourceWithRawResponse
def v0(self) -> v0.V0ResourceWithRawResponse:
from .resources.v0 import V0ResourceWithRawResponse

return V1ResourceWithRawResponse(self._client.v1)
return V0ResourceWithRawResponse(self._client.v0)


class AsyncEverMemOSWithRawResponse:
Expand All @@ -414,10 +414,10 @@ def __init__(self, client: AsyncEverMemOS) -> None:
self._client = client

@cached_property
def v1(self) -> v1.AsyncV1ResourceWithRawResponse:
from .resources.v1 import AsyncV1ResourceWithRawResponse
def v0(self) -> v0.AsyncV0ResourceWithRawResponse:
from .resources.v0 import AsyncV0ResourceWithRawResponse

return AsyncV1ResourceWithRawResponse(self._client.v1)
return AsyncV0ResourceWithRawResponse(self._client.v0)


class EverMemOSWithStreamedResponse:
Expand All @@ -427,10 +427,10 @@ def __init__(self, client: EverMemOS) -> None:
self._client = client

@cached_property
def v1(self) -> v1.V1ResourceWithStreamingResponse:
from .resources.v1 import V1ResourceWithStreamingResponse
def v0(self) -> v0.V0ResourceWithStreamingResponse:
from .resources.v0 import V0ResourceWithStreamingResponse

return V1ResourceWithStreamingResponse(self._client.v1)
return V0ResourceWithStreamingResponse(self._client.v0)


class AsyncEverMemOSWithStreamedResponse:
Expand All @@ -440,10 +440,10 @@ def __init__(self, client: AsyncEverMemOS) -> None:
self._client = client

@cached_property
def v1(self) -> v1.AsyncV1ResourceWithStreamingResponse:
from .resources.v1 import AsyncV1ResourceWithStreamingResponse
def v0(self) -> v0.AsyncV0ResourceWithStreamingResponse:
from .resources.v0 import AsyncV0ResourceWithStreamingResponse

return AsyncV1ResourceWithStreamingResponse(self._client.v1)
return AsyncV0ResourceWithStreamingResponse(self._client.v0)


Client = EverMemOS
Expand Down
2 changes: 1 addition & 1 deletion src/evermemos/_version.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

__title__ = "evermemos"
__version__ = "0.3.10" # x-release-please-version
__version__ = "0.4.0" # x-release-please-version
26 changes: 13 additions & 13 deletions src/evermemos/resources/__init__.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .v1 import (
V1Resource,
AsyncV1Resource,
V1ResourceWithRawResponse,
AsyncV1ResourceWithRawResponse,
V1ResourceWithStreamingResponse,
AsyncV1ResourceWithStreamingResponse,
from .v0 import (
V0Resource,
AsyncV0Resource,
V0ResourceWithRawResponse,
AsyncV0ResourceWithRawResponse,
V0ResourceWithStreamingResponse,
AsyncV0ResourceWithStreamingResponse,
)

__all__ = [
"V1Resource",
"AsyncV1Resource",
"V1ResourceWithRawResponse",
"AsyncV1ResourceWithRawResponse",
"V1ResourceWithStreamingResponse",
"AsyncV1ResourceWithStreamingResponse",
"V0Resource",
"AsyncV0Resource",
"V0ResourceWithRawResponse",
"AsyncV0ResourceWithRawResponse",
"V0ResourceWithStreamingResponse",
"AsyncV0ResourceWithStreamingResponse",
]
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.

from .v1 import (
V1Resource,
AsyncV1Resource,
V1ResourceWithRawResponse,
AsyncV1ResourceWithRawResponse,
V1ResourceWithStreamingResponse,
AsyncV1ResourceWithStreamingResponse,
from .v0 import (
V0Resource,
AsyncV0Resource,
V0ResourceWithRawResponse,
AsyncV0ResourceWithRawResponse,
V0ResourceWithStreamingResponse,
AsyncV0ResourceWithStreamingResponse,
)
from .status import (
StatusResource,
Expand Down Expand Up @@ -38,10 +38,10 @@
"AsyncStatusResourceWithRawResponse",
"StatusResourceWithStreamingResponse",
"AsyncStatusResourceWithStreamingResponse",
"V1Resource",
"AsyncV1Resource",
"V1ResourceWithRawResponse",
"AsyncV1ResourceWithRawResponse",
"V1ResourceWithStreamingResponse",
"AsyncV1ResourceWithStreamingResponse",
"V0Resource",
"AsyncV0Resource",
"V0ResourceWithRawResponse",
"AsyncV0ResourceWithRawResponse",
"V0ResourceWithStreamingResponse",
"AsyncV0ResourceWithStreamingResponse",
]
Loading