Skip to content

Commit 4a6b77a

Browse files
feat(api): manual updates
1 parent 5b0c810 commit 4a6b77a

File tree

8 files changed

+216
-60
lines changed

8 files changed

+216
-60
lines changed

.stats.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 10
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/supermemory--inc%2Fsupermemory-a280bf0a406a709c156d5e3fe7c8ae93ebe607d937af8d725d0a2997cab07a7d.yml
3-
openapi_spec_hash: 15c602571db9cbcce4703c929b994d82
4-
config_hash: 1c771b2d30afc18bf405a425ea1c327a
1+
configured_endpoints: 11
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/supermemory--inc%2Fsupermemory-9f6d4050800c7cde90cbc3d1b59c782955e3cc1f73790c13a1924a000e09ec14.yml
3+
openapi_spec_hash: 92739eccad02248cc2bf07874e299fec
4+
config_hash: 3a000ea344f2f52c50cf06452fcf52ca

api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ from supermemory.types import (
1515
Methods:
1616

1717
- <code title="patch /v3/memories/{id}">client.memories.<a href="./src/supermemory/resources/memories.py">update</a>(path_id, \*\*<a href="src/supermemory/types/memory_update_params.py">params</a>) -> <a href="./src/supermemory/types/memory_update_response.py">MemoryUpdateResponse</a></code>
18-
- <code title="delete /v3/memories/{id}">client.memories.<a href="./src/supermemory/resources/memories.py">list</a>(id) -> <a href="./src/supermemory/types/memory_list_response.py">MemoryListResponse</a></code>
19-
- <code title="get /v3/memories/{id}">client.memories.<a href="./src/supermemory/resources/memories.py">delete</a>(id) -> <a href="./src/supermemory/types/memory_delete_response.py">MemoryDeleteResponse</a></code>
18+
- <code title="get /v3/memories">client.memories.<a href="./src/supermemory/resources/memories.py">list</a>(\*\*<a href="src/supermemory/types/memory_list_params.py">params</a>) -> <a href="./src/supermemory/types/memory_list_response.py">MemoryListResponse</a></code>
19+
- <code title="delete /v3/memories/{id}">client.memories.<a href="./src/supermemory/resources/memories.py">delete</a>(id) -> <a href="./src/supermemory/types/memory_delete_response.py">MemoryDeleteResponse</a></code>
2020
- <code title="post /v3/memories">client.memories.<a href="./src/supermemory/resources/memories.py">add</a>(\*\*<a href="src/supermemory/types/memory_add_params.py">params</a>) -> <a href="./src/supermemory/types/memory_add_response.py">MemoryAddResponse</a></code>
2121
- <code title="get /v3/memories/{id}">client.memories.<a href="./src/supermemory/resources/memories.py">get</a>(id) -> <a href="./src/supermemory/types/memory_get_response.py">MemoryGetResponse</a></code>
2222

src/supermemory/resources/memories.py

Lines changed: 70 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
from __future__ import annotations
44

55
from typing import Dict, List, Union
6+
from typing_extensions import Literal
67

78
import httpx
89

9-
from ..types import memory_add_params, memory_update_params
10+
from ..types import memory_add_params, memory_list_params, memory_update_params
1011
from .._types import NOT_GIVEN, Body, Query, Headers, NotGiven
1112
from .._utils import maybe_transform, async_maybe_transform
1213
from .._compat import cached_property
@@ -95,8 +96,12 @@ def update(
9596

9697
def list(
9798
self,
98-
id: str,
9999
*,
100+
filters: str | NotGiven = NOT_GIVEN,
101+
limit: str | NotGiven = NOT_GIVEN,
102+
order: Literal["asc", "desc"] | NotGiven = NOT_GIVEN,
103+
page: str | NotGiven = NOT_GIVEN,
104+
sort: Literal["createdAt", "updatedAt"] | NotGiven = NOT_GIVEN,
100105
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
101106
# The extra values given here take precedence over values defined on the client or passed to this method.
102107
extra_headers: Headers | None = None,
@@ -105,9 +110,19 @@ def list(
105110
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
106111
) -> MemoryListResponse:
107112
"""
108-
Delete a memory
113+
Retrieves a paginated list of memories with their metadata and workflow status
109114
110115
Args:
116+
filters: Optional filters to apply to the search
117+
118+
limit: Number of items per page
119+
120+
order: Sort order
121+
122+
page: Page number to fetch
123+
124+
sort: Field to sort by
125+
111126
extra_headers: Send extra headers
112127
113128
extra_query: Add additional query parameters to the request
@@ -116,12 +131,23 @@ def list(
116131
117132
timeout: Override the client-level default timeout for this request, in seconds
118133
"""
119-
if not id:
120-
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
121-
return self._delete(
122-
f"/v3/memories/{id}",
134+
return self._get(
135+
"/v3/memories",
123136
options=make_request_options(
124-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
137+
extra_headers=extra_headers,
138+
extra_query=extra_query,
139+
extra_body=extra_body,
140+
timeout=timeout,
141+
query=maybe_transform(
142+
{
143+
"filters": filters,
144+
"limit": limit,
145+
"order": order,
146+
"page": page,
147+
"sort": sort,
148+
},
149+
memory_list_params.MemoryListParams,
150+
),
125151
),
126152
cast_to=MemoryListResponse,
127153
)
@@ -138,7 +164,7 @@ def delete(
138164
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
139165
) -> MemoryDeleteResponse:
140166
"""
141-
Get a memory by ID
167+
Delete a memory
142168
143169
Args:
144170
extra_headers: Send extra headers
@@ -151,7 +177,7 @@ def delete(
151177
"""
152178
if not id:
153179
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
154-
return self._get(
180+
return self._delete(
155181
f"/v3/memories/{id}",
156182
options=make_request_options(
157183
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
@@ -302,8 +328,12 @@ async def update(
302328

303329
async def list(
304330
self,
305-
id: str,
306331
*,
332+
filters: str | NotGiven = NOT_GIVEN,
333+
limit: str | NotGiven = NOT_GIVEN,
334+
order: Literal["asc", "desc"] | NotGiven = NOT_GIVEN,
335+
page: str | NotGiven = NOT_GIVEN,
336+
sort: Literal["createdAt", "updatedAt"] | NotGiven = NOT_GIVEN,
307337
# Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
308338
# The extra values given here take precedence over values defined on the client or passed to this method.
309339
extra_headers: Headers | None = None,
@@ -312,9 +342,19 @@ async def list(
312342
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
313343
) -> MemoryListResponse:
314344
"""
315-
Delete a memory
345+
Retrieves a paginated list of memories with their metadata and workflow status
316346
317347
Args:
348+
filters: Optional filters to apply to the search
349+
350+
limit: Number of items per page
351+
352+
order: Sort order
353+
354+
page: Page number to fetch
355+
356+
sort: Field to sort by
357+
318358
extra_headers: Send extra headers
319359
320360
extra_query: Add additional query parameters to the request
@@ -323,12 +363,23 @@ async def list(
323363
324364
timeout: Override the client-level default timeout for this request, in seconds
325365
"""
326-
if not id:
327-
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
328-
return await self._delete(
329-
f"/v3/memories/{id}",
366+
return await self._get(
367+
"/v3/memories",
330368
options=make_request_options(
331-
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
369+
extra_headers=extra_headers,
370+
extra_query=extra_query,
371+
extra_body=extra_body,
372+
timeout=timeout,
373+
query=await async_maybe_transform(
374+
{
375+
"filters": filters,
376+
"limit": limit,
377+
"order": order,
378+
"page": page,
379+
"sort": sort,
380+
},
381+
memory_list_params.MemoryListParams,
382+
),
332383
),
333384
cast_to=MemoryListResponse,
334385
)
@@ -345,7 +396,7 @@ async def delete(
345396
timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
346397
) -> MemoryDeleteResponse:
347398
"""
348-
Get a memory by ID
399+
Delete a memory
349400
350401
Args:
351402
extra_headers: Send extra headers
@@ -358,7 +409,7 @@ async def delete(
358409
"""
359410
if not id:
360411
raise ValueError(f"Expected a non-empty value for `id` but received {id!r}")
361-
return await self._get(
412+
return await self._delete(
362413
f"/v3/memories/{id}",
363414
options=make_request_options(
364415
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout

src/supermemory/types/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from __future__ import annotations
44

55
from .memory_add_params import MemoryAddParams as MemoryAddParams
6+
from .memory_list_params import MemoryListParams as MemoryListParams
67
from .memory_add_response import MemoryAddResponse as MemoryAddResponse
78
from .memory_get_response import MemoryGetResponse as MemoryGetResponse
89
from .memory_list_response import MemoryListResponse as MemoryListResponse

src/supermemory/types/memory_delete_response.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,4 @@
66

77

88
class MemoryDeleteResponse(BaseModel):
9-
id: str
10-
11-
status: str
9+
success: bool
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from __future__ import annotations
4+
5+
from typing_extensions import Literal, TypedDict
6+
7+
__all__ = ["MemoryListParams"]
8+
9+
10+
class MemoryListParams(TypedDict, total=False):
11+
filters: str
12+
"""Optional filters to apply to the search"""
13+
14+
limit: str
15+
"""Number of items per page"""
16+
17+
order: Literal["asc", "desc"]
18+
"""Sort order"""
19+
20+
page: str
21+
"""Page number to fetch"""
22+
23+
sort: Literal["createdAt", "updatedAt"]
24+
"""Field to sort by"""
Lines changed: 88 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,95 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3+
from typing import Dict, List, Union, Optional
4+
from datetime import datetime
5+
from typing_extensions import Literal
6+
7+
from pydantic import Field as FieldInfo
8+
39
from .._models import BaseModel
410

5-
__all__ = ["MemoryListResponse"]
11+
__all__ = ["MemoryListResponse", "Memory", "Pagination"]
12+
13+
14+
class Memory(BaseModel):
15+
id: str
16+
"""Unique identifier of the memory."""
17+
18+
content: Optional[str] = None
19+
"""The content to extract and process into a memory.
20+
21+
This can be a URL to a website, a PDF, an image, or a video.
22+
23+
Plaintext: Any plaintext format
24+
25+
URL: A URL to a website, PDF, image, or video
26+
27+
We automatically detect the content type from the url's response format.
28+
"""
29+
30+
created_at: datetime = FieldInfo(alias="createdAt")
31+
"""Creation timestamp"""
32+
33+
custom_id: Optional[str] = FieldInfo(alias="customId", default=None)
34+
"""Optional custom ID of the memory.
35+
36+
This could be an ID from your database that will uniquely identify this memory.
37+
"""
38+
39+
metadata: Union[str, float, bool, Dict[str, object], List[object], None] = None
40+
"""Optional metadata for the memory.
41+
42+
This is used to store additional information about the memory. You can use this
43+
to store any additional information you need about the memory. Metadata can be
44+
filtered through. Keys must be strings and are case sensitive. Values can be
45+
strings, numbers, or booleans. You cannot nest objects.
46+
"""
47+
48+
og_image: Optional[str] = FieldInfo(alias="ogImage", default=None)
49+
50+
source: Optional[str] = None
51+
52+
status: Literal["unknown", "queued", "extracting", "chunking", "embedding", "indexing", "done", "failed"]
53+
"""Status of the memory"""
54+
55+
summary: Optional[str] = None
56+
"""Summary of the memory content"""
57+
58+
title: Optional[str] = None
59+
"""Title of the memory"""
60+
61+
type: Literal["text", "pdf", "tweet", "google_doc", "image", "video", "notion_doc", "webpage"]
62+
"""Type of the memory"""
63+
64+
updated_at: datetime = FieldInfo(alias="updatedAt")
65+
"""Last update timestamp"""
66+
67+
url: Optional[str] = None
68+
"""URL of the memory"""
69+
70+
container_tags: Optional[List[str]] = FieldInfo(alias="containerTags", default=None)
71+
"""Optional tags this memory should be containerized by.
72+
73+
This can be an ID for your user, a project ID, or any other identifier you wish
74+
to use to group memories.
75+
"""
76+
77+
raw: None = None
78+
"""Raw content of the memory"""
79+
80+
81+
class Pagination(BaseModel):
82+
current_page: float = FieldInfo(alias="currentPage")
83+
84+
limit: float
85+
86+
total_items: float = FieldInfo(alias="totalItems")
87+
88+
total_pages: float = FieldInfo(alias="totalPages")
689

790

891
class MemoryListResponse(BaseModel):
9-
success: bool
92+
memories: List[Memory]
93+
94+
pagination: Pagination
95+
"""Pagination metadata"""

0 commit comments

Comments
 (0)