Skip to content

Commit e3de154

Browse files
feat(api): manual updates
1 parent 9126852 commit e3de154

File tree

9 files changed

+1546
-16
lines changed

9 files changed

+1546
-16
lines changed

.stats.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
configured_endpoints: 12
1+
configured_endpoints: 18
22
openapi_spec_url: https://storage.googleapis.com/stainless-sdk-openapi-specs/supermemory--inc%2Fsupermemory-new-f181eaeb22a42d197dbd9c45fa61bf9a9b78a91d3334fc0f841494dc73d1a203.yml
33
openapi_spec_hash: bb8262ebcdea53979cf1cafbc2c68dc8
4-
config_hash: 9b9291a6c872b063900a46386729ba3c
4+
config_hash: 2737bce9823a13e0263c0fa2701821fa

README.md

Lines changed: 36 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,40 @@ const client = new Supermemory({
4343
apiKey: process.env['SUPERMEMORY_API_KEY'], // This is the default and can be omitted
4444
});
4545

46-
const params: Supermemory.SearchDocumentsParams = { q: 'machine learning concepts' };
47-
const response: Supermemory.SearchDocumentsResponse = await client.search.documents(params);
46+
const memory: Supermemory.MemoryUpdateResponse = await client.memories.update('id');
4847
```
4948

5049
Documentation for each method, request param, and response field are available in docstrings and will appear on hover in most modern editors.
5150

51+
## File uploads
52+
53+
Request parameters that correspond to file uploads can be passed in many different forms:
54+
55+
- `File` (or an object with the same structure)
56+
- a `fetch` `Response` (or an object with the same structure)
57+
- an `fs.ReadStream`
58+
- the return value of our `toFile` helper
59+
60+
```ts
61+
import fs from 'fs';
62+
import Supermemory, { toFile } from 'supermemory';
63+
64+
const client = new Supermemory();
65+
66+
// If you have access to Node `fs` we recommend using `fs.createReadStream()`:
67+
await client.memories.uploadFile({ file: fs.createReadStream('/path/to/file') });
68+
69+
// Or if you have the web `File` API you can pass a `File` instance:
70+
await client.memories.uploadFile({ file: new File(['my bytes'], 'file') });
71+
72+
// You can also pass a `fetch` `Response`:
73+
await client.memories.uploadFile({ file: await fetch('https://somesite/file') });
74+
75+
// Finally, if none of the above are convenient, you can use our `toFile` helper:
76+
await client.memories.uploadFile({ file: await toFile(Buffer.from('my bytes'), 'file') });
77+
await client.memories.uploadFile({ file: await toFile(new Uint8Array([0, 1, 2]), 'file') });
78+
```
79+
5280
## Handling errors
5381

5482
When the library is unable to connect to the API,
@@ -57,7 +85,7 @@ a subclass of `APIError` will be thrown:
5785

5886
<!-- prettier-ignore -->
5987
```ts
60-
const response = await client.search.documents({ q: 'machine learning concepts' }).catch(async (err) => {
88+
const memory = await client.memories.update('id').catch(async (err) => {
6189
if (err instanceof Supermemory.APIError) {
6290
console.log(err.status); // 400
6391
console.log(err.name); // BadRequestError
@@ -97,7 +125,7 @@ const client = new Supermemory({
97125
});
98126

99127
// Or, configure per-request:
100-
await client.search.documents({ q: 'machine learning concepts' }, {
128+
await client.memories.update('id', {
101129
maxRetries: 5,
102130
});
103131
```
@@ -114,7 +142,7 @@ const client = new Supermemory({
114142
});
115143

116144
// Override per-request:
117-
await client.search.documents({ q: 'machine learning concepts' }, {
145+
await client.memories.update('id', {
118146
timeout: 5 * 1000,
119147
});
120148
```
@@ -137,15 +165,13 @@ Unlike `.asResponse()` this method consumes the body, returning once it is parse
137165
```ts
138166
const client = new Supermemory();
139167

140-
const response = await client.search.documents({ q: 'machine learning concepts' }).asResponse();
168+
const response = await client.memories.update('id').asResponse();
141169
console.log(response.headers.get('X-My-Header'));
142170
console.log(response.statusText); // access the underlying Response object
143171

144-
const { data: response, response: raw } = await client.search
145-
.documents({ q: 'machine learning concepts' })
146-
.withResponse();
172+
const { data: memory, response: raw } = await client.memories.update('id').withResponse();
147173
console.log(raw.headers.get('X-My-Header'));
148-
console.log(response.results);
174+
console.log(memory.id);
149175
```
150176

151177
### Logging

api.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,41 @@
11
# Memories
22

3+
Types:
4+
5+
- <code><a href="./src/resources/memories.ts">MemoryUpdateResponse</a></code>
6+
- <code><a href="./src/resources/memories.ts">MemoryListResponse</a></code>
7+
- <code><a href="./src/resources/memories.ts">MemoryAddResponse</a></code>
8+
- <code><a href="./src/resources/memories.ts">MemoryGetResponse</a></code>
9+
- <code><a href="./src/resources/memories.ts">MemoryUploadFileResponse</a></code>
10+
11+
Methods:
12+
13+
- <code title="patch /v3/documents/{id}">client.memories.<a href="./src/resources/memories.ts">update</a>(id, { ...params }) -> MemoryUpdateResponse</code>
14+
- <code title="post /v3/documents/list">client.memories.<a href="./src/resources/memories.ts">list</a>({ ...params }) -> MemoryListResponse</code>
15+
- <code title="delete /v3/documents/{id}">client.memories.<a href="./src/resources/memories.ts">delete</a>(id) -> void</code>
16+
- <code title="post /v3/documents">client.memories.<a href="./src/resources/memories.ts">add</a>({ ...params }) -> MemoryAddResponse</code>
17+
- <code title="get /v3/documents/{id}">client.memories.<a href="./src/resources/memories.ts">get</a>(id) -> MemoryGetResponse</code>
18+
- <code title="post /v3/documents/file">client.memories.<a href="./src/resources/memories.ts">uploadFile</a>({ ...params }) -> MemoryUploadFileResponse</code>
19+
20+
# Documents
21+
22+
Types:
23+
24+
- <code><a href="./src/resources/documents.ts">DocumentUpdateResponse</a></code>
25+
- <code><a href="./src/resources/documents.ts">DocumentListResponse</a></code>
26+
- <code><a href="./src/resources/documents.ts">DocumentAddResponse</a></code>
27+
- <code><a href="./src/resources/documents.ts">DocumentGetResponse</a></code>
28+
- <code><a href="./src/resources/documents.ts">DocumentUploadFileResponse</a></code>
29+
30+
Methods:
31+
32+
- <code title="patch /v3/documents/{id}">client.documents.<a href="./src/resources/documents.ts">update</a>(id, { ...params }) -> DocumentUpdateResponse</code>
33+
- <code title="post /v3/documents/list">client.documents.<a href="./src/resources/documents.ts">list</a>({ ...params }) -> DocumentListResponse</code>
34+
- <code title="delete /v3/documents/{id}">client.documents.<a href="./src/resources/documents.ts">delete</a>(id) -> void</code>
35+
- <code title="post /v3/documents">client.documents.<a href="./src/resources/documents.ts">add</a>({ ...params }) -> DocumentAddResponse</code>
36+
- <code title="get /v3/documents/{id}">client.documents.<a href="./src/resources/documents.ts">get</a>(id) -> DocumentGetResponse</code>
37+
- <code title="post /v3/documents/file">client.documents.<a href="./src/resources/documents.ts">uploadFile</a>({ ...params }) -> DocumentUploadFileResponse</code>
38+
339
# Search
440

541
Types:

src/client.ts

Lines changed: 51 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,30 @@ import {
3333
ConnectionListResponse,
3434
Connections,
3535
} from './resources/connections';
36-
import { Memories } from './resources/memories';
36+
import {
37+
DocumentAddParams,
38+
DocumentAddResponse,
39+
DocumentGetResponse,
40+
DocumentListParams,
41+
DocumentListResponse,
42+
DocumentUpdateParams,
43+
DocumentUpdateResponse,
44+
DocumentUploadFileParams,
45+
DocumentUploadFileResponse,
46+
Documents,
47+
} from './resources/documents';
48+
import {
49+
Memories,
50+
MemoryAddParams,
51+
MemoryAddResponse,
52+
MemoryGetResponse,
53+
MemoryListParams,
54+
MemoryListResponse,
55+
MemoryUpdateParams,
56+
MemoryUpdateResponse,
57+
MemoryUploadFileParams,
58+
MemoryUploadFileResponse,
59+
} from './resources/memories';
3760
import {
3861
Search,
3962
SearchDocumentsParams,
@@ -747,20 +770,46 @@ export class Supermemory {
747770
static toFile = Uploads.toFile;
748771

749772
memories: API.Memories = new API.Memories(this);
773+
documents: API.Documents = new API.Documents(this);
750774
search: API.Search = new API.Search(this);
751775
settings: API.Settings = new API.Settings(this);
752776
connections: API.Connections = new API.Connections(this);
753777
}
754778

755779
Supermemory.Memories = Memories;
780+
Supermemory.Documents = Documents;
756781
Supermemory.Search = Search;
757782
Supermemory.Settings = Settings;
758783
Supermemory.Connections = Connections;
759784

760785
export declare namespace Supermemory {
761786
export type RequestOptions = Opts.RequestOptions;
762787

763-
export { Memories as Memories };
788+
export {
789+
Memories as Memories,
790+
type MemoryUpdateResponse as MemoryUpdateResponse,
791+
type MemoryListResponse as MemoryListResponse,
792+
type MemoryAddResponse as MemoryAddResponse,
793+
type MemoryGetResponse as MemoryGetResponse,
794+
type MemoryUploadFileResponse as MemoryUploadFileResponse,
795+
type MemoryUpdateParams as MemoryUpdateParams,
796+
type MemoryListParams as MemoryListParams,
797+
type MemoryAddParams as MemoryAddParams,
798+
type MemoryUploadFileParams as MemoryUploadFileParams,
799+
};
800+
801+
export {
802+
Documents as Documents,
803+
type DocumentUpdateResponse as DocumentUpdateResponse,
804+
type DocumentListResponse as DocumentListResponse,
805+
type DocumentAddResponse as DocumentAddResponse,
806+
type DocumentGetResponse as DocumentGetResponse,
807+
type DocumentUploadFileResponse as DocumentUploadFileResponse,
808+
type DocumentUpdateParams as DocumentUpdateParams,
809+
type DocumentListParams as DocumentListParams,
810+
type DocumentAddParams as DocumentAddParams,
811+
type DocumentUploadFileParams as DocumentUploadFileParams,
812+
};
764813

765814
export {
766815
Search as Search,

0 commit comments

Comments
 (0)