Skip to content

Commit 0f29501

Browse files
feat(api): api update
1 parent add1d76 commit 0f29501

File tree

8 files changed

+249
-38
lines changed

8 files changed

+249
-38
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
configured_endpoints: 21
2-
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-4f19d2194ceebd4e2f52fefc09e7936f3ce417a943a0709623c5de1edc9bfc78.yml
3-
openapi_spec_hash: 536a71de5eb401a09790bec0d26a32a0
2+
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/hyperspell%2Fhyperspell-a08047fff67bf0bb9fd8223baba5091eea8477e1933954222e0a690ddce41d5c.yml
3+
openapi_spec_hash: 7d2a75a868b25e22515a73835d7e13da
44
config_hash: ca45358b5407440488ec988e3ee21412

api.md

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,21 @@ Methods:
6565
Types:
6666

6767
```python
68-
from hyperspell.types import Memory, MemoryStatus, MemoryDeleteResponse, MemoryStatusResponse
68+
from hyperspell.types import (
69+
MemoryStatus,
70+
MemoryListResponse,
71+
MemoryDeleteResponse,
72+
MemoryGetResponse,
73+
MemoryStatusResponse,
74+
)
6975
```
7076

7177
Methods:
7278

73-
- <code title="get /memories/list">client.memories.<a href="./src/hyperspell/resources/memories.py">list</a>(\*\*<a href="src/hyperspell/types/memory_list_params.py">params</a>) -> <a href="./src/hyperspell/types/memory.py">SyncCursorPage[Memory]</a></code>
79+
- <code title="get /memories/list">client.memories.<a href="./src/hyperspell/resources/memories.py">list</a>(\*\*<a href="src/hyperspell/types/memory_list_params.py">params</a>) -> <a href="./src/hyperspell/types/memory_list_response.py">SyncCursorPage[MemoryListResponse]</a></code>
7480
- <code title="delete /memories/delete/{source}/{resource_id}">client.memories.<a href="./src/hyperspell/resources/memories.py">delete</a>(resource_id, \*, source) -> <a href="./src/hyperspell/types/memory_delete_response.py">MemoryDeleteResponse</a></code>
7581
- <code title="post /memories/add">client.memories.<a href="./src/hyperspell/resources/memories.py">add</a>(\*\*<a href="src/hyperspell/types/memory_add_params.py">params</a>) -> <a href="./src/hyperspell/types/memory_status.py">MemoryStatus</a></code>
76-
- <code title="get /memories/get/{source}/{resource_id}">client.memories.<a href="./src/hyperspell/resources/memories.py">get</a>(resource_id, \*, source) -> <a href="./src/hyperspell/types/memory.py">Memory</a></code>
82+
- <code title="get /memories/get/{source}/{resource_id}">client.memories.<a href="./src/hyperspell/resources/memories.py">get</a>(resource_id, \*, source) -> <a href="./src/hyperspell/types/memory_get_response.py">MemoryGetResponse</a></code>
7783
- <code title="post /memories/query">client.memories.<a href="./src/hyperspell/resources/memories.py">search</a>(\*\*<a href="src/hyperspell/types/memory_search_params.py">params</a>) -> <a href="./src/hyperspell/types/shared/query_result.py">QueryResult</a></code>
7884
- <code title="get /memories/status">client.memories.<a href="./src/hyperspell/resources/memories.py">status</a>() -> <a href="./src/hyperspell/types/memory_status_response.py">MemoryStatusResponse</a></code>
7985
- <code title="post /memories/upload">client.memories.<a href="./src/hyperspell/resources/memories.py">upload</a>(\*\*<a href="src/hyperspell/types/memory_upload_params.py">params</a>) -> <a href="./src/hyperspell/types/memory_status.py">MemoryStatus</a></code>

src/hyperspell/resources/memories.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,10 @@
2121
)
2222
from ..pagination import SyncCursorPage, AsyncCursorPage
2323
from .._base_client import AsyncPaginator, make_request_options
24-
from ..types.memory import Memory
2524
from ..types.memory_status import MemoryStatus
25+
from ..types.memory_get_response import MemoryGetResponse
2626
from ..types.shared.query_result import QueryResult
27+
from ..types.memory_list_response import MemoryListResponse
2728
from ..types.memory_delete_response import MemoryDeleteResponse
2829
from ..types.memory_status_response import MemoryStatusResponse
2930

@@ -113,7 +114,7 @@ def list(
113114
extra_query: Query | None = None,
114115
extra_body: Body | None = None,
115116
timeout: float | httpx.Timeout | None | NotGiven = not_given,
116-
) -> SyncCursorPage[Memory]:
117+
) -> SyncCursorPage[MemoryListResponse]:
117118
"""This endpoint allows you to paginate through all documents in the index.
118119
119120
You can
@@ -134,7 +135,7 @@ def list(
134135
"""
135136
return self._get_api_list(
136137
"/memories/list",
137-
page=SyncCursorPage[Memory],
138+
page=SyncCursorPage[MemoryListResponse],
138139
options=make_request_options(
139140
extra_headers=extra_headers,
140141
extra_query=extra_query,
@@ -150,7 +151,7 @@ def list(
150151
memory_list_params.MemoryListParams,
151152
),
152153
),
153-
model=Memory,
154+
model=MemoryListResponse,
154155
)
155156

156157
def delete(
@@ -370,7 +371,7 @@ def get(
370371
extra_query: Query | None = None,
371372
extra_body: Body | None = None,
372373
timeout: float | httpx.Timeout | None | NotGiven = not_given,
373-
) -> Memory:
374+
) -> MemoryGetResponse:
374375
"""
375376
Retrieves a document by provider and resource_id.
376377
@@ -392,7 +393,7 @@ def get(
392393
options=make_request_options(
393394
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
394395
),
395-
cast_to=Memory,
396+
cast_to=MemoryGetResponse,
396397
)
397398

398399
def search(
@@ -659,7 +660,7 @@ def list(
659660
extra_query: Query | None = None,
660661
extra_body: Body | None = None,
661662
timeout: float | httpx.Timeout | None | NotGiven = not_given,
662-
) -> AsyncPaginator[Memory, AsyncCursorPage[Memory]]:
663+
) -> AsyncPaginator[MemoryListResponse, AsyncCursorPage[MemoryListResponse]]:
663664
"""This endpoint allows you to paginate through all documents in the index.
664665
665666
You can
@@ -680,7 +681,7 @@ def list(
680681
"""
681682
return self._get_api_list(
682683
"/memories/list",
683-
page=AsyncCursorPage[Memory],
684+
page=AsyncCursorPage[MemoryListResponse],
684685
options=make_request_options(
685686
extra_headers=extra_headers,
686687
extra_query=extra_query,
@@ -696,7 +697,7 @@ def list(
696697
memory_list_params.MemoryListParams,
697698
),
698699
),
699-
model=Memory,
700+
model=MemoryListResponse,
700701
)
701702

702703
async def delete(
@@ -916,7 +917,7 @@ async def get(
916917
extra_query: Query | None = None,
917918
extra_body: Body | None = None,
918919
timeout: float | httpx.Timeout | None | NotGiven = not_given,
919-
) -> Memory:
920+
) -> MemoryGetResponse:
920921
"""
921922
Retrieves a document by provider and resource_id.
922923
@@ -938,7 +939,7 @@ async def get(
938939
options=make_request_options(
939940
extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
940941
),
941-
cast_to=Memory,
942+
cast_to=MemoryGetResponse,
942943
)
943944

944945
async def search(

src/hyperspell/types/__init__.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,15 @@
33
from __future__ import annotations
44

55
from .token import Token as Token
6-
from .memory import Memory as Memory
76
from .shared import QueryResult as QueryResult
87
from .memory_status import MemoryStatus as MemoryStatus
98
from .auth_me_response import AuthMeResponse as AuthMeResponse
109
from .memory_add_params import MemoryAddParams as MemoryAddParams
1110
from .vault_list_params import VaultListParams as VaultListParams
1211
from .memory_list_params import MemoryListParams as MemoryListParams
12+
from .memory_get_response import MemoryGetResponse as MemoryGetResponse
1313
from .vault_list_response import VaultListResponse as VaultListResponse
14+
from .memory_list_response import MemoryListResponse as MemoryListResponse
1415
from .memory_search_params import MemorySearchParams as MemorySearchParams
1516
from .memory_upload_params import MemoryUploadParams as MemoryUploadParams
1617
from .auth_user_token_params import AuthUserTokenParams as AuthUserTokenParams

src/hyperspell/types/memory.py renamed to src/hyperspell/types/memory_get_response.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
from .._models import BaseModel
1010

11-
__all__ = ["Memory", "Metadata", "MetadataEvent"]
11+
__all__ = ["MemoryGetResponse", "Metadata", "MetadataEvent"]
1212

1313

1414
class MetadataEvent(BaseModel):
@@ -45,7 +45,7 @@ def __getattr__(self, attr: str) -> object: ...
4545
__pydantic_extra__: Dict[str, object]
4646

4747

48-
class Memory(BaseModel):
48+
class MemoryGetResponse(BaseModel):
4949
resource_id: str
5050

5151
source: Literal[
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2+
3+
from typing import TYPE_CHECKING, Dict, List, Optional
4+
from datetime import datetime
5+
from typing_extensions import Literal
6+
7+
from pydantic import Field as FieldInfo
8+
9+
from .._models import BaseModel
10+
11+
__all__ = ["MemoryListResponse", "Metadata", "MetadataEvent"]
12+
13+
14+
class MetadataEvent(BaseModel):
15+
message: str
16+
17+
type: Literal["error", "warning", "info", "success"]
18+
19+
time: Optional[datetime] = None
20+
21+
22+
class Metadata(BaseModel):
23+
created_at: Optional[datetime] = None
24+
25+
events: Optional[List[MetadataEvent]] = None
26+
27+
indexed_at: Optional[datetime] = None
28+
29+
last_modified: Optional[datetime] = None
30+
31+
status: Optional[Literal["pending", "processing", "completed", "failed"]] = None
32+
33+
url: Optional[str] = None
34+
35+
if TYPE_CHECKING:
36+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
37+
# value to this field, so for compatibility we avoid doing it at runtime.
38+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
39+
40+
# Stub to indicate that arbitrary properties are accepted.
41+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
42+
# `getattr(obj, '$type')`
43+
def __getattr__(self, attr: str) -> object: ...
44+
else:
45+
__pydantic_extra__: Dict[str, object]
46+
47+
48+
class MemoryListResponse(BaseModel):
49+
resource_id: str
50+
51+
source: Literal[
52+
"collections",
53+
"vault",
54+
"web_crawler",
55+
"notion",
56+
"slack",
57+
"google_calendar",
58+
"reddit",
59+
"box",
60+
"google_drive",
61+
"airtable",
62+
"algolia",
63+
"amplitude",
64+
"asana",
65+
"ashby",
66+
"bamboohr",
67+
"basecamp",
68+
"bubbles",
69+
"calendly",
70+
"confluence",
71+
"clickup",
72+
"datadog",
73+
"deel",
74+
"discord",
75+
"dropbox",
76+
"exa",
77+
"facebook",
78+
"front",
79+
"github",
80+
"gitlab",
81+
"google_docs",
82+
"google_mail",
83+
"google_sheet",
84+
"hubspot",
85+
"jira",
86+
"linear",
87+
"microsoft_teams",
88+
"mixpanel",
89+
"monday",
90+
"outlook",
91+
"perplexity",
92+
"rippling",
93+
"salesforce",
94+
"segment",
95+
"todoist",
96+
"twitter",
97+
"zoom",
98+
]
99+
100+
metadata: Optional[Metadata] = None
101+
102+
score: Optional[float] = None
103+
"""The relevance of the resource to the query"""
104+
105+
title: Optional[str] = None

src/hyperspell/types/shared/query_result.py

Lines changed: 101 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,112 @@
11
# File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
22

3-
from typing import Dict, List, Optional
3+
from typing import TYPE_CHECKING, Dict, List, Optional
4+
from datetime import datetime
5+
from typing_extensions import Literal
6+
7+
from pydantic import Field as FieldInfo
48

5-
from ..memory import Memory
69
from ..._models import BaseModel
710

8-
__all__ = ["QueryResult"]
11+
__all__ = ["QueryResult", "Document", "DocumentMetadata", "DocumentMetadataEvent"]
12+
13+
14+
class DocumentMetadataEvent(BaseModel):
15+
message: str
16+
17+
type: Literal["error", "warning", "info", "success"]
18+
19+
time: Optional[datetime] = None
20+
21+
22+
class DocumentMetadata(BaseModel):
23+
created_at: Optional[datetime] = None
24+
25+
events: Optional[List[DocumentMetadataEvent]] = None
26+
27+
indexed_at: Optional[datetime] = None
28+
29+
last_modified: Optional[datetime] = None
30+
31+
status: Optional[Literal["pending", "processing", "completed", "failed"]] = None
32+
33+
url: Optional[str] = None
34+
35+
if TYPE_CHECKING:
36+
# Some versions of Pydantic <2.8.0 have a bug and don’t allow assigning a
37+
# value to this field, so for compatibility we avoid doing it at runtime.
38+
__pydantic_extra__: Dict[str, object] = FieldInfo(init=False) # pyright: ignore[reportIncompatibleVariableOverride]
39+
40+
# Stub to indicate that arbitrary properties are accepted.
41+
# To access properties that are not valid identifiers you can use `getattr`, e.g.
42+
# `getattr(obj, '$type')`
43+
def __getattr__(self, attr: str) -> object: ...
44+
else:
45+
__pydantic_extra__: Dict[str, object]
46+
47+
48+
class Document(BaseModel):
49+
resource_id: str
50+
51+
source: Literal[
52+
"collections",
53+
"vault",
54+
"web_crawler",
55+
"notion",
56+
"slack",
57+
"google_calendar",
58+
"reddit",
59+
"box",
60+
"google_drive",
61+
"airtable",
62+
"algolia",
63+
"amplitude",
64+
"asana",
65+
"ashby",
66+
"bamboohr",
67+
"basecamp",
68+
"bubbles",
69+
"calendly",
70+
"confluence",
71+
"clickup",
72+
"datadog",
73+
"deel",
74+
"discord",
75+
"dropbox",
76+
"exa",
77+
"facebook",
78+
"front",
79+
"github",
80+
"gitlab",
81+
"google_docs",
82+
"google_mail",
83+
"google_sheet",
84+
"hubspot",
85+
"jira",
86+
"linear",
87+
"microsoft_teams",
88+
"mixpanel",
89+
"monday",
90+
"outlook",
91+
"perplexity",
92+
"rippling",
93+
"salesforce",
94+
"segment",
95+
"todoist",
96+
"twitter",
97+
"zoom",
98+
]
99+
100+
metadata: Optional[DocumentMetadata] = None
101+
102+
score: Optional[float] = None
103+
"""The relevance of the resource to the query"""
104+
105+
title: Optional[str] = None
9106

10107

11108
class QueryResult(BaseModel):
12-
documents: List[Memory]
109+
documents: List[Document]
13110

14111
answer: Optional[str] = None
15112
"""The answer to the query, if the request was set to answer."""

0 commit comments

Comments
 (0)