@sovant/sdk 1.2.0 → 1.3.0
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.
- package/README.md +74 -11
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -54
- package/dist/index.js.map +1 -1
- package/package.json +9 -3
package/README.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @sovant/sdk
|
|
2
2
|
|
|
3
|
-
**
|
|
4
|
-
|
|
3
|
+
**Sovant is a governed AI memory layer for LLM applications.**
|
|
4
|
+
It gives your apps hybrid recall, profile-aware context, and a structured memory store you can audit, inspect, and control.
|
|
5
|
+
|
|
6
|
+
The official **JavaScript and TypeScript** SDK for the Sovant Memory API.
|
|
5
7
|
|
|
6
8
|
[](https://www.npmjs.com/package/@sovant/sdk)
|
|
7
9
|
[](https://sovant.ai/docs)
|
|
@@ -32,26 +34,88 @@ pnpm add @sovant/sdk
|
|
|
32
34
|
|
|
33
35
|
## 60-Second Quickstart
|
|
34
36
|
|
|
37
|
+
### TypeScript
|
|
38
|
+
|
|
35
39
|
```typescript
|
|
36
40
|
import { Sovant } from "@sovant/sdk";
|
|
37
41
|
|
|
38
42
|
const sv = new Sovant({ apiKey: process.env.SOVANT_API_KEY! });
|
|
39
43
|
|
|
40
44
|
// Create a memory
|
|
41
|
-
await sv.memory.create({
|
|
42
|
-
data: { note: "User prefers morning meetings" },
|
|
45
|
+
await sv.memory.create({
|
|
46
|
+
data: { note: "User prefers morning meetings" },
|
|
47
|
+
type: "preference"
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
// Search memories
|
|
51
|
+
const results = await sv.memory.search({
|
|
52
|
+
query: "meeting preferences",
|
|
53
|
+
limit: 3
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
console.log(results);
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### JavaScript (ESM)
|
|
60
|
+
|
|
61
|
+
```javascript
|
|
62
|
+
import { Sovant } from "@sovant/sdk";
|
|
63
|
+
|
|
64
|
+
const sv = new Sovant({ apiKey: process.env.SOVANT_API_KEY });
|
|
65
|
+
|
|
66
|
+
// Create a memory
|
|
67
|
+
await sv.memory.create({
|
|
68
|
+
data: "User prefers morning meetings",
|
|
43
69
|
type: "preference"
|
|
44
70
|
});
|
|
45
71
|
|
|
46
72
|
// Search memories
|
|
47
|
-
const results = await sv.memory.search({
|
|
48
|
-
query: "meeting preferences",
|
|
49
|
-
|
|
73
|
+
const results = await sv.memory.search({
|
|
74
|
+
query: "meeting preferences",
|
|
75
|
+
limit: 3
|
|
50
76
|
});
|
|
51
77
|
|
|
52
78
|
console.log(results);
|
|
53
79
|
```
|
|
54
80
|
|
|
81
|
+
### JavaScript (CommonJS)
|
|
82
|
+
|
|
83
|
+
```javascript
|
|
84
|
+
const { Sovant } = require("@sovant/sdk");
|
|
85
|
+
|
|
86
|
+
const sv = new Sovant({ apiKey: process.env.SOVANT_API_KEY });
|
|
87
|
+
|
|
88
|
+
// Works the same as ESM
|
|
89
|
+
sv.memory.create({ data: "User likes coffee", type: "preference" })
|
|
90
|
+
.then(() => console.log("Memory saved!"));
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Recall vs Search
|
|
94
|
+
|
|
95
|
+
Sovant provides two ways to query memories:
|
|
96
|
+
|
|
97
|
+
- **`memory.recall()`** – Hybrid recall, profile-aware
|
|
98
|
+
Best for conversational AI queries like "What do you know about me?" or "What happened on Project X?".
|
|
99
|
+
Uses Sovant's hybrid pipeline (profile fast-path + thread-scoped lexical + vector semantic search) and prioritizes profile facts (name/age/location) when available.
|
|
100
|
+
|
|
101
|
+
- **`memory.search()`** – Semantic search
|
|
102
|
+
Best for topic-based lookup and discovery, e.g., "hiking", "Q1 marketing plan".
|
|
103
|
+
Pure vector similarity search without profile logic. Behavior unchanged from previous versions.
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
// Recall for conversational queries
|
|
107
|
+
const context = await sv.memory.recall({
|
|
108
|
+
query: "what do you know about me?",
|
|
109
|
+
limit: 10
|
|
110
|
+
});
|
|
111
|
+
|
|
112
|
+
// Search for topic discovery
|
|
113
|
+
const topics = await sv.memory.search({
|
|
114
|
+
query: "project updates",
|
|
115
|
+
limit: 5
|
|
116
|
+
});
|
|
117
|
+
```
|
|
118
|
+
|
|
55
119
|
## Features
|
|
56
120
|
|
|
57
121
|
- **Memory CRUD** — create, retrieve, update, delete memories
|
|
@@ -94,9 +158,8 @@ console.log(results);
|
|
|
94
158
|
|
|
95
159
|
## Versioning & Changelog
|
|
96
160
|
|
|
97
|
-
- **
|
|
98
|
-
- Version 1.0
|
|
99
|
-
- Earlier builds (1.0.0-1.0.3) are deprecated
|
|
161
|
+
- **Current release:** 1.3.0
|
|
162
|
+
- Version 1.3.0 adds hybrid recall with profile awareness
|
|
100
163
|
- See [CHANGELOG.md](./CHANGELOG.md) for details.
|
|
101
164
|
|
|
102
165
|
## License & Use
|
package/dist/index.d.ts
CHANGED
|
@@ -85,17 +85,17 @@ export declare class Sovant {
|
|
|
85
85
|
transaction_id: string;
|
|
86
86
|
}>;
|
|
87
87
|
/**
|
|
88
|
-
*
|
|
89
|
-
*
|
|
88
|
+
* Hybrid recall with profile awareness
|
|
89
|
+
* Uses multi-stage pipeline (profile fast-path + lexical + semantic)
|
|
90
|
+
* Guarantees profile facts (name/age/location) when available
|
|
91
|
+
*
|
|
92
|
+
* Use recall() for conversational queries ("who am I?", "what do you know about me?")
|
|
93
|
+
* Use search() for pure semantic topic lookup
|
|
90
94
|
*/
|
|
91
95
|
recall: (q: {
|
|
92
|
-
query
|
|
93
|
-
type?: string;
|
|
94
|
-
tags?: string[];
|
|
96
|
+
query: string;
|
|
95
97
|
thread_id?: string;
|
|
96
98
|
limit?: number;
|
|
97
|
-
from_date?: string;
|
|
98
|
-
to_date?: string;
|
|
99
99
|
}) => Promise<unknown>;
|
|
100
100
|
};
|
|
101
101
|
}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,KAAK,IAAI,CAAC;IACxE,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,7 +11,9 @@ export class Sovant {
|
|
|
11
11
|
if (!opts?.apiKey)
|
|
12
12
|
throw new Error("Missing apiKey");
|
|
13
13
|
this.apiKey = opts.apiKey;
|
|
14
|
-
this.baseUrl = (opts.baseUrl ??
|
|
14
|
+
this.baseUrl = (opts.baseUrl ??
|
|
15
|
+
process.env.SOVANT_BASE_URL ??
|
|
16
|
+
"https://sovant.ai").replace(/\/+$/, "");
|
|
15
17
|
this.timeout = opts.timeoutMs ?? 30000;
|
|
16
18
|
this.maxRetries = opts.maxRetries ?? 3;
|
|
17
19
|
this.retryDelay = opts.retryDelay ?? 1000;
|
|
@@ -20,7 +22,7 @@ export class Sovant {
|
|
|
20
22
|
this.onError = opts.onError;
|
|
21
23
|
}
|
|
22
24
|
async req(path, init) {
|
|
23
|
-
const method = init.method ||
|
|
25
|
+
const method = init.method || "GET";
|
|
24
26
|
const startTime = Date.now();
|
|
25
27
|
// Telemetry: onRequest hook
|
|
26
28
|
if (this.onRequest) {
|
|
@@ -39,10 +41,10 @@ export class Sovant {
|
|
|
39
41
|
...init,
|
|
40
42
|
headers: {
|
|
41
43
|
"content-type": "application/json",
|
|
42
|
-
|
|
43
|
-
...(init.headers || {})
|
|
44
|
+
authorization: `Bearer ${this.apiKey}`,
|
|
45
|
+
...(init.headers || {}),
|
|
44
46
|
},
|
|
45
|
-
signal: ctl.signal
|
|
47
|
+
signal: ctl.signal,
|
|
46
48
|
});
|
|
47
49
|
clearTimeout(timeoutId);
|
|
48
50
|
const text = await res.text();
|
|
@@ -58,10 +60,11 @@ export class Sovant {
|
|
|
58
60
|
const code = body?.code || `HTTP_${res.status}`;
|
|
59
61
|
const error = new SovantError(msg, code, res.status, body);
|
|
60
62
|
// Retry on 429 (rate limit) or 5xx errors
|
|
61
|
-
if (attempt < this.maxRetries &&
|
|
63
|
+
if (attempt < this.maxRetries &&
|
|
64
|
+
(res.status === 429 || res.status >= 500)) {
|
|
62
65
|
lastError = error;
|
|
63
66
|
const delay = this.retryDelay * Math.pow(2, attempt); // Exponential backoff
|
|
64
|
-
await new Promise(resolve => setTimeout(resolve, delay));
|
|
67
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
65
68
|
continue;
|
|
66
69
|
}
|
|
67
70
|
// Telemetry: onError hook
|
|
@@ -86,23 +89,23 @@ export class Sovant {
|
|
|
86
89
|
catch (err) {
|
|
87
90
|
clearTimeout(timeoutId);
|
|
88
91
|
// Handle abort/timeout errors
|
|
89
|
-
if (err instanceof Error && err.name ===
|
|
90
|
-
const error = new SovantError(
|
|
92
|
+
if (err instanceof Error && err.name === "AbortError") {
|
|
93
|
+
const error = new SovantError("Request timeout", "TIMEOUT", 408);
|
|
91
94
|
if (attempt < this.maxRetries) {
|
|
92
95
|
lastError = error;
|
|
93
96
|
const delay = this.retryDelay * Math.pow(2, attempt);
|
|
94
|
-
await new Promise(resolve => setTimeout(resolve, delay));
|
|
97
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
95
98
|
continue;
|
|
96
99
|
}
|
|
97
100
|
throw error;
|
|
98
101
|
}
|
|
99
102
|
// Network errors
|
|
100
103
|
if (err instanceof Error) {
|
|
101
|
-
const error = new SovantError(err.message,
|
|
104
|
+
const error = new SovantError(err.message, "NETWORK_ERROR", 0);
|
|
102
105
|
if (attempt < this.maxRetries) {
|
|
103
106
|
lastError = error;
|
|
104
107
|
const delay = this.retryDelay * Math.pow(2, attempt);
|
|
105
|
-
await new Promise(resolve => setTimeout(resolve, delay));
|
|
108
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
106
109
|
continue;
|
|
107
110
|
}
|
|
108
111
|
throw error;
|
|
@@ -111,55 +114,61 @@ export class Sovant {
|
|
|
111
114
|
}
|
|
112
115
|
}
|
|
113
116
|
// If we exhausted retries, throw the last error
|
|
114
|
-
throw lastError || new SovantError(
|
|
117
|
+
throw (lastError || new SovantError("Max retries exceeded", "MAX_RETRIES", 0));
|
|
115
118
|
}
|
|
116
119
|
memory = {
|
|
117
120
|
create: (input) => this.req("/api/v1/memory", {
|
|
118
121
|
method: "POST",
|
|
119
122
|
body: JSON.stringify({
|
|
120
|
-
content: typeof input.data ===
|
|
121
|
-
|
|
123
|
+
content: typeof input.data === "string"
|
|
124
|
+
? input.data
|
|
125
|
+
: JSON.stringify(input.data),
|
|
126
|
+
type: input.type || "journal",
|
|
122
127
|
ttl: input.ttl,
|
|
123
128
|
tags: input.tags,
|
|
124
129
|
metadata: input.metadata,
|
|
125
|
-
thread_id: input.thread_id
|
|
126
|
-
})
|
|
130
|
+
thread_id: input.thread_id,
|
|
131
|
+
}),
|
|
127
132
|
}),
|
|
128
133
|
get: (id) => this.req(`/api/v1/memories/${encodeURIComponent(id)}`, {
|
|
129
|
-
method: "GET"
|
|
134
|
+
method: "GET",
|
|
130
135
|
}),
|
|
131
136
|
search: (q) => {
|
|
132
137
|
const params = new URLSearchParams();
|
|
133
138
|
if (q.query)
|
|
134
|
-
params.append(
|
|
139
|
+
params.append("query", q.query);
|
|
135
140
|
if (q.type)
|
|
136
|
-
params.append(
|
|
141
|
+
params.append("type", q.type);
|
|
137
142
|
if (q.tags)
|
|
138
|
-
params.append(
|
|
143
|
+
params.append("tags", q.tags.join(","));
|
|
139
144
|
if (q.thread_id)
|
|
140
|
-
params.append(
|
|
145
|
+
params.append("thread_id", q.thread_id);
|
|
141
146
|
if (q.limit)
|
|
142
|
-
params.append(
|
|
147
|
+
params.append("limit", q.limit.toString());
|
|
143
148
|
if (q.from_date)
|
|
144
|
-
params.append(
|
|
149
|
+
params.append("from_date", q.from_date);
|
|
145
150
|
if (q.to_date)
|
|
146
|
-
params.append(
|
|
151
|
+
params.append("to_date", q.to_date);
|
|
147
152
|
return this.req(`/api/v1/memory/search?${params.toString()}`, {
|
|
148
|
-
method: "GET"
|
|
153
|
+
method: "GET",
|
|
149
154
|
});
|
|
150
155
|
},
|
|
151
156
|
update: (id, patch) => this.req(`/api/v1/memories/${encodeURIComponent(id)}`, {
|
|
152
157
|
method: "PATCH",
|
|
153
158
|
body: JSON.stringify({
|
|
154
|
-
content: patch.data
|
|
159
|
+
content: patch.data
|
|
160
|
+
? typeof patch.data === "string"
|
|
161
|
+
? patch.data
|
|
162
|
+
: JSON.stringify(patch.data)
|
|
163
|
+
: undefined,
|
|
155
164
|
type: patch.type,
|
|
156
165
|
ttl: patch.ttl,
|
|
157
166
|
tags: patch.tags,
|
|
158
|
-
metadata: patch.metadata
|
|
159
|
-
})
|
|
167
|
+
metadata: patch.metadata,
|
|
168
|
+
}),
|
|
160
169
|
}),
|
|
161
170
|
delete: (id) => this.req(`/api/v1/memories/${encodeURIComponent(id)}`, {
|
|
162
|
-
method: "DELETE"
|
|
171
|
+
method: "DELETE",
|
|
163
172
|
}),
|
|
164
173
|
/**
|
|
165
174
|
* Batch create multiple memories in a single request
|
|
@@ -167,45 +176,40 @@ export class Sovant {
|
|
|
167
176
|
* @returns BatchResponse with individual results
|
|
168
177
|
*/
|
|
169
178
|
createBatch: (memories) => {
|
|
170
|
-
const operations = memories.map(mem => ({
|
|
171
|
-
operation:
|
|
179
|
+
const operations = memories.map((mem) => ({
|
|
180
|
+
operation: "create",
|
|
172
181
|
data: {
|
|
173
|
-
content: typeof mem.data ===
|
|
174
|
-
type: mem.type ||
|
|
182
|
+
content: typeof mem.data === "string" ? mem.data : JSON.stringify(mem.data),
|
|
183
|
+
type: mem.type || "journal",
|
|
175
184
|
tags: mem.tags,
|
|
176
185
|
metadata: mem.metadata,
|
|
177
|
-
thread_id: mem.thread_id
|
|
178
|
-
}
|
|
186
|
+
thread_id: mem.thread_id,
|
|
187
|
+
},
|
|
179
188
|
}));
|
|
180
189
|
return this.req("/api/v1/memory/batch", {
|
|
181
190
|
method: "POST",
|
|
182
|
-
body: JSON.stringify(operations)
|
|
191
|
+
body: JSON.stringify(operations),
|
|
183
192
|
});
|
|
184
193
|
},
|
|
185
194
|
/**
|
|
186
|
-
*
|
|
187
|
-
*
|
|
195
|
+
* Hybrid recall with profile awareness
|
|
196
|
+
* Uses multi-stage pipeline (profile fast-path + lexical + semantic)
|
|
197
|
+
* Guarantees profile facts (name/age/location) when available
|
|
198
|
+
*
|
|
199
|
+
* Use recall() for conversational queries ("who am I?", "what do you know about me?")
|
|
200
|
+
* Use search() for pure semantic topic lookup
|
|
188
201
|
*/
|
|
189
202
|
recall: (q) => {
|
|
190
203
|
const params = new URLSearchParams();
|
|
191
|
-
|
|
192
|
-
params.append('query', q.query);
|
|
193
|
-
if (q.type)
|
|
194
|
-
params.append('type', q.type);
|
|
195
|
-
if (q.tags)
|
|
196
|
-
params.append('tags', q.tags.join(','));
|
|
204
|
+
params.append("query", q.query);
|
|
197
205
|
if (q.thread_id)
|
|
198
|
-
params.append(
|
|
206
|
+
params.append("thread_id", q.thread_id);
|
|
199
207
|
if (q.limit)
|
|
200
|
-
params.append(
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
if (q.to_date)
|
|
204
|
-
params.append('to_date', q.to_date);
|
|
205
|
-
return this.req(`/api/v1/memory/search?${params.toString()}`, {
|
|
206
|
-
method: "GET"
|
|
208
|
+
params.append("limit", q.limit.toString());
|
|
209
|
+
return this.req(`/api/v1/memory/recall?${params.toString()}`, {
|
|
210
|
+
method: "GET",
|
|
207
211
|
});
|
|
208
|
-
}
|
|
212
|
+
},
|
|
209
213
|
};
|
|
210
214
|
}
|
|
211
215
|
export class SovantError extends Error {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sovant/sdk",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Sovant Memory-as-a-Service TypeScript
|
|
3
|
+
"version": "1.3.0",
|
|
4
|
+
"description": "Official Sovant Memory-as-a-Service SDK for JavaScript and TypeScript",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"import": "./dist/index.js",
|
|
11
|
+
"require": "./dist/index.cjs",
|
|
11
12
|
"types": "./dist/index.d.ts"
|
|
12
13
|
}
|
|
13
14
|
},
|
|
@@ -26,7 +27,12 @@
|
|
|
26
27
|
"sovant",
|
|
27
28
|
"memory",
|
|
28
29
|
"maas",
|
|
29
|
-
"sdk"
|
|
30
|
+
"sdk",
|
|
31
|
+
"ai",
|
|
32
|
+
"typescript",
|
|
33
|
+
"javascript",
|
|
34
|
+
"llm",
|
|
35
|
+
"agent"
|
|
30
36
|
],
|
|
31
37
|
"author": "Sovant",
|
|
32
38
|
"license": "MIT",
|