@scitrera/memorylayer-sdk 0.0.3
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 +374 -0
- package/dist/client.d.ts +75 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +371 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +22 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +43 -0
- package/dist/errors.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +410 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +97 -0
- package/dist/types.js.map +1 -0
- package/dist/utils.d.ts +20 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +51 -0
- package/dist/utils.js.map +1 -0
- package/package.json +45 -0
- package/vitest.config.ts +12 -0
package/dist/client.js
ADDED
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import { MemoryLayerError, AuthenticationError, AuthorizationError, NotFoundError, ValidationError } from "./errors.js";
|
|
2
|
+
export class MemoryLayerClient {
|
|
3
|
+
baseUrl;
|
|
4
|
+
apiKey;
|
|
5
|
+
workspaceId;
|
|
6
|
+
sessionId;
|
|
7
|
+
timeout;
|
|
8
|
+
constructor(config = {}) {
|
|
9
|
+
this.baseUrl = config.baseUrl ?? "http://localhost:61001";
|
|
10
|
+
this.apiKey = config.apiKey;
|
|
11
|
+
this.workspaceId = config.workspaceId;
|
|
12
|
+
this.sessionId = config.sessionId;
|
|
13
|
+
this.timeout = config.timeout ?? 30000;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Set the active session ID. All subsequent requests will include
|
|
17
|
+
* this session ID in the X-Session-ID header, enabling session-based
|
|
18
|
+
* workspace resolution.
|
|
19
|
+
*/
|
|
20
|
+
setSession(sessionId) {
|
|
21
|
+
this.sessionId = sessionId;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Clear the active session ID.
|
|
25
|
+
*/
|
|
26
|
+
clearSession() {
|
|
27
|
+
this.sessionId = undefined;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Get the current session ID, if any.
|
|
31
|
+
*/
|
|
32
|
+
getSessionId() {
|
|
33
|
+
return this.sessionId;
|
|
34
|
+
}
|
|
35
|
+
async request(method, path, body) {
|
|
36
|
+
const headers = {
|
|
37
|
+
"Content-Type": "application/json",
|
|
38
|
+
};
|
|
39
|
+
if (this.apiKey) {
|
|
40
|
+
headers["Authorization"] = `Bearer ${this.apiKey}`;
|
|
41
|
+
}
|
|
42
|
+
if (this.sessionId) {
|
|
43
|
+
headers["X-Session-ID"] = this.sessionId;
|
|
44
|
+
}
|
|
45
|
+
const url = `${this.baseUrl}${path}`;
|
|
46
|
+
const controller = new AbortController();
|
|
47
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
48
|
+
try {
|
|
49
|
+
const response = await fetch(url, {
|
|
50
|
+
method,
|
|
51
|
+
headers,
|
|
52
|
+
body: body ? JSON.stringify(body) : undefined,
|
|
53
|
+
signal: controller.signal,
|
|
54
|
+
});
|
|
55
|
+
clearTimeout(timeoutId);
|
|
56
|
+
if (!response.ok) {
|
|
57
|
+
await this.handleError(response);
|
|
58
|
+
}
|
|
59
|
+
if (response.status === 204) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
return await response.json();
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error instanceof MemoryLayerError)
|
|
66
|
+
throw error;
|
|
67
|
+
throw new MemoryLayerError(`Request failed: ${error}`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
async handleError(response) {
|
|
71
|
+
const body = await response.json().catch(() => ({}));
|
|
72
|
+
const rawDetail = body.message ?? body.detail ?? response.statusText;
|
|
73
|
+
const message = typeof rawDetail === 'string'
|
|
74
|
+
? rawDetail
|
|
75
|
+
: JSON.stringify(rawDetail);
|
|
76
|
+
switch (response.status) {
|
|
77
|
+
case 401:
|
|
78
|
+
throw new AuthenticationError(message);
|
|
79
|
+
case 403:
|
|
80
|
+
throw new AuthorizationError(message);
|
|
81
|
+
case 404:
|
|
82
|
+
throw new NotFoundError(message);
|
|
83
|
+
case 400:
|
|
84
|
+
case 422:
|
|
85
|
+
throw new ValidationError(message, body.details);
|
|
86
|
+
default:
|
|
87
|
+
throw new MemoryLayerError(message, response.status);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
// Memory operations
|
|
91
|
+
async remember(content, options = {}) {
|
|
92
|
+
const body = {
|
|
93
|
+
content,
|
|
94
|
+
// Include workspace_id as fallback if session is not set
|
|
95
|
+
workspace_id: options.workspaceId ?? this.workspaceId,
|
|
96
|
+
type: options.type,
|
|
97
|
+
subtype: options.subtype,
|
|
98
|
+
importance: options.importance ?? 0.5,
|
|
99
|
+
tags: options.tags ?? [],
|
|
100
|
+
metadata: options.metadata ?? {},
|
|
101
|
+
associations: options.associations ?? [],
|
|
102
|
+
context_id: options.contextId,
|
|
103
|
+
};
|
|
104
|
+
const response = await this.request("POST", "/v1/memories", body);
|
|
105
|
+
return response.memory;
|
|
106
|
+
}
|
|
107
|
+
async recall(query, options = {}) {
|
|
108
|
+
const body = {
|
|
109
|
+
query,
|
|
110
|
+
// Include workspace_id as fallback if session is not set
|
|
111
|
+
// Server priority: 1) body.workspace_id, 2) session.workspace_id, 3) _default
|
|
112
|
+
workspace_id: options.workspaceId ?? this.workspaceId,
|
|
113
|
+
types: options.types ?? [],
|
|
114
|
+
subtypes: options.subtypes ?? [],
|
|
115
|
+
tags: options.tags ?? [],
|
|
116
|
+
context_id: options.contextId,
|
|
117
|
+
mode: options.mode,
|
|
118
|
+
tolerance: options.tolerance,
|
|
119
|
+
limit: options.limit ?? 10,
|
|
120
|
+
min_relevance: options.minRelevance,
|
|
121
|
+
recency_weight: options.recencyWeight,
|
|
122
|
+
include_associations: options.includeAssociations,
|
|
123
|
+
traverse_depth: options.traverseDepth,
|
|
124
|
+
max_expansion: options.maxExpansion,
|
|
125
|
+
created_after: options.createdAfter?.toISOString(),
|
|
126
|
+
created_before: options.createdBefore?.toISOString(),
|
|
127
|
+
context: options.conversationContext ?? [],
|
|
128
|
+
rag_threshold: options.ragThreshold,
|
|
129
|
+
detail_level: options.detailLevel,
|
|
130
|
+
};
|
|
131
|
+
return this.request("POST", "/v1/memories/recall", body);
|
|
132
|
+
}
|
|
133
|
+
async reflect(query, options = {}) {
|
|
134
|
+
const body = {
|
|
135
|
+
query,
|
|
136
|
+
// Include workspace_id as fallback if session is not set
|
|
137
|
+
workspace_id: options.workspaceId ?? this.workspaceId,
|
|
138
|
+
detail_level: options.detailLevel,
|
|
139
|
+
include_sources: options.includeSources ?? true,
|
|
140
|
+
depth: options.depth ?? 2,
|
|
141
|
+
types: options.types ?? [],
|
|
142
|
+
subtypes: options.subtypes ?? [],
|
|
143
|
+
tags: options.tags ?? [],
|
|
144
|
+
context_id: options.contextId,
|
|
145
|
+
};
|
|
146
|
+
return this.request("POST", "/v1/memories/reflect", body);
|
|
147
|
+
}
|
|
148
|
+
async getMemory(memoryId) {
|
|
149
|
+
const response = await this.request("GET", `/v1/memories/${memoryId}`);
|
|
150
|
+
return response.memory;
|
|
151
|
+
}
|
|
152
|
+
async updateMemory(memoryId, updates) {
|
|
153
|
+
const response = await this.request("PUT", `/v1/memories/${memoryId}`, updates);
|
|
154
|
+
return response.memory;
|
|
155
|
+
}
|
|
156
|
+
async forget(memoryId, hard = false) {
|
|
157
|
+
await this.request("DELETE", `/v1/memories/${memoryId}?hard=${hard}`);
|
|
158
|
+
}
|
|
159
|
+
async decay(memoryId, decayRate = 0.1) {
|
|
160
|
+
const response = await this.request("POST", `/v1/memories/${memoryId}/decay`, { decay_rate: decayRate });
|
|
161
|
+
return response.memory;
|
|
162
|
+
}
|
|
163
|
+
// Association operations
|
|
164
|
+
async associate(sourceId, targetId, relationship, strength = 0.5) {
|
|
165
|
+
const response = await this.request("POST", `/v1/memories/${sourceId}/associate`, { target_id: targetId, relationship, strength });
|
|
166
|
+
return response.association;
|
|
167
|
+
}
|
|
168
|
+
async getAssociations(memoryId, direction = "both") {
|
|
169
|
+
const response = await this.request("GET", `/v1/memories/${memoryId}/associations?direction=${direction}`);
|
|
170
|
+
return response.associations;
|
|
171
|
+
}
|
|
172
|
+
// Session operations
|
|
173
|
+
/**
|
|
174
|
+
* Create a new session.
|
|
175
|
+
*
|
|
176
|
+
* @param options Session creation options
|
|
177
|
+
* @param autoSetSession If true (default), automatically set this session
|
|
178
|
+
* as the active session for subsequent requests
|
|
179
|
+
*/
|
|
180
|
+
async createSession(options = {}, autoSetSession = true) {
|
|
181
|
+
const body = {
|
|
182
|
+
session_id: options.sessionId,
|
|
183
|
+
workspace_id: options.workspaceId ?? this.workspaceId,
|
|
184
|
+
ttl_seconds: options.ttlSeconds ?? 3600,
|
|
185
|
+
metadata: options.metadata ?? {},
|
|
186
|
+
context_id: options.contextId,
|
|
187
|
+
working_memory: options.workingMemory ?? {},
|
|
188
|
+
briefing: options.briefing ?? false,
|
|
189
|
+
briefing_options: options.briefingOptions ? {
|
|
190
|
+
lookback_hours: options.briefingOptions.lookbackHours,
|
|
191
|
+
detail_level: options.briefingOptions.detailLevel,
|
|
192
|
+
limit: options.briefingOptions.limit,
|
|
193
|
+
} : undefined,
|
|
194
|
+
};
|
|
195
|
+
const response = await this.request("POST", "/v1/sessions", body);
|
|
196
|
+
if (autoSetSession) {
|
|
197
|
+
this.sessionId = response.session.id;
|
|
198
|
+
}
|
|
199
|
+
return response;
|
|
200
|
+
}
|
|
201
|
+
async getSession(sessionId) {
|
|
202
|
+
const response = await this.request("GET", `/v1/sessions/${sessionId}`);
|
|
203
|
+
return response.session;
|
|
204
|
+
}
|
|
205
|
+
async deleteSession(sessionId) {
|
|
206
|
+
await this.request("DELETE", `/v1/sessions/${sessionId}`);
|
|
207
|
+
}
|
|
208
|
+
async setWorkingMemory(sessionId, key, value) {
|
|
209
|
+
await this.request("POST", `/v1/sessions/${sessionId}/memory`, { key, value });
|
|
210
|
+
}
|
|
211
|
+
async getWorkingMemory(sessionId, key) {
|
|
212
|
+
const url = key
|
|
213
|
+
? `/v1/sessions/${sessionId}/memory?key=${key}`
|
|
214
|
+
: `/v1/sessions/${sessionId}/memory`;
|
|
215
|
+
return this.request("GET", url);
|
|
216
|
+
}
|
|
217
|
+
async commitSession(sessionId, options = {}) {
|
|
218
|
+
const body = {
|
|
219
|
+
min_importance: options.minImportance ?? 0.5,
|
|
220
|
+
deduplicate: options.deduplicate ?? true,
|
|
221
|
+
categories: options.categories,
|
|
222
|
+
max_memories: options.maxMemories ?? 50,
|
|
223
|
+
};
|
|
224
|
+
return this.request("POST", `/v1/sessions/${sessionId}/commit`, body);
|
|
225
|
+
}
|
|
226
|
+
async touchSession(sessionId, ttlSeconds) {
|
|
227
|
+
const response = await this.request("POST", `/v1/sessions/${sessionId}/touch`, ttlSeconds ? { ttl_seconds: ttlSeconds } : {});
|
|
228
|
+
return response.session;
|
|
229
|
+
}
|
|
230
|
+
async getBriefing(lookbackHours = 24, includeContradictions = true) {
|
|
231
|
+
const response = await this.request("GET", `/v1/sessions/briefing?lookback_hours=${lookbackHours}&include_contradictions=${includeContradictions}`);
|
|
232
|
+
return response.briefing;
|
|
233
|
+
}
|
|
234
|
+
// Workspace operations
|
|
235
|
+
async createWorkspace(name, settings) {
|
|
236
|
+
const response = await this.request("POST", "/v1/workspaces", { name, settings: settings ?? {} });
|
|
237
|
+
return response.workspace;
|
|
238
|
+
}
|
|
239
|
+
async getWorkspace(workspaceId) {
|
|
240
|
+
const id = workspaceId ?? this.workspaceId;
|
|
241
|
+
if (!id)
|
|
242
|
+
throw new ValidationError("Workspace ID required");
|
|
243
|
+
const response = await this.request("GET", `/v1/workspaces/${id}`);
|
|
244
|
+
return response.workspace;
|
|
245
|
+
}
|
|
246
|
+
async updateWorkspace(workspaceId, updates) {
|
|
247
|
+
const response = await this.request("PUT", `/v1/workspaces/${workspaceId}`, updates);
|
|
248
|
+
return response.workspace;
|
|
249
|
+
}
|
|
250
|
+
async createContext(name, description, settings) {
|
|
251
|
+
if (!this.workspaceId)
|
|
252
|
+
throw new ValidationError("Workspace ID required");
|
|
253
|
+
const response = await this.request("POST", `/v1/workspaces/${this.workspaceId}/contexts`, { name, description, settings: settings ?? {} });
|
|
254
|
+
return response.context;
|
|
255
|
+
}
|
|
256
|
+
async listContexts() {
|
|
257
|
+
if (!this.workspaceId)
|
|
258
|
+
throw new ValidationError("Workspace ID required");
|
|
259
|
+
const response = await this.request("GET", `/v1/workspaces/${this.workspaceId}/contexts`);
|
|
260
|
+
return response.contexts;
|
|
261
|
+
}
|
|
262
|
+
// Batch operations
|
|
263
|
+
async batchMemories(operations) {
|
|
264
|
+
return this.request("POST", "/v1/memories/batch", { operations });
|
|
265
|
+
}
|
|
266
|
+
// Memory trace
|
|
267
|
+
async traceMemory(memoryId) {
|
|
268
|
+
return this.request("GET", `/v1/memories/${memoryId}/trace`);
|
|
269
|
+
}
|
|
270
|
+
// Graph traversal - uses nested endpoint under memories
|
|
271
|
+
async traverseGraph(startMemoryId, options = {}) {
|
|
272
|
+
const body = {
|
|
273
|
+
relationship_types: options.relationshipTypes,
|
|
274
|
+
relationship_categories: options.relationshipCategories,
|
|
275
|
+
max_depth: options.maxDepth ?? 3,
|
|
276
|
+
direction: options.direction ?? "both",
|
|
277
|
+
min_strength: options.minStrength ?? 0.0,
|
|
278
|
+
max_paths: options.maxPaths ?? 100,
|
|
279
|
+
max_nodes: options.maxNodes ?? 50,
|
|
280
|
+
};
|
|
281
|
+
return this.request("POST", `/v1/memories/${startMemoryId}/traverse`, body);
|
|
282
|
+
}
|
|
283
|
+
// Create association with full options - uses nested endpoint under memories
|
|
284
|
+
async createAssociation(options) {
|
|
285
|
+
const body = {
|
|
286
|
+
target_id: options.targetId,
|
|
287
|
+
relationship: options.relationship,
|
|
288
|
+
strength: options.strength ?? 0.5,
|
|
289
|
+
metadata: options.metadata ?? {},
|
|
290
|
+
};
|
|
291
|
+
const response = await this.request("POST", `/v1/memories/${options.sourceId}/associate`, body);
|
|
292
|
+
return response.association;
|
|
293
|
+
}
|
|
294
|
+
// Workspace schema
|
|
295
|
+
async getWorkspaceSchema(workspaceId) {
|
|
296
|
+
const id = workspaceId ?? this.workspaceId;
|
|
297
|
+
if (!id)
|
|
298
|
+
throw new ValidationError("Workspace ID required");
|
|
299
|
+
return this.request("GET", `/v1/workspaces/${id}/schema`);
|
|
300
|
+
}
|
|
301
|
+
// Context Environment operations
|
|
302
|
+
async contextExec(code, options = {}) {
|
|
303
|
+
const body = {
|
|
304
|
+
code,
|
|
305
|
+
result_var: options.resultVar,
|
|
306
|
+
return_result: options.returnResult ?? true,
|
|
307
|
+
max_return_chars: options.maxReturnChars,
|
|
308
|
+
};
|
|
309
|
+
return this.request("POST", "/v1/context/execute", body);
|
|
310
|
+
}
|
|
311
|
+
async contextInspect(options = {}) {
|
|
312
|
+
const params = new URLSearchParams();
|
|
313
|
+
if (options.variable)
|
|
314
|
+
params.set("variable", options.variable);
|
|
315
|
+
if (options.previewChars !== undefined)
|
|
316
|
+
params.set("preview_chars", String(options.previewChars));
|
|
317
|
+
const query = params.toString();
|
|
318
|
+
return this.request("POST", `/v1/context/inspect${query ? `?${query}` : ""}`);
|
|
319
|
+
}
|
|
320
|
+
async contextLoad(varName, query, options = {}) {
|
|
321
|
+
const body = {
|
|
322
|
+
var: varName,
|
|
323
|
+
query,
|
|
324
|
+
limit: options.limit,
|
|
325
|
+
types: options.types,
|
|
326
|
+
tags: options.tags,
|
|
327
|
+
min_relevance: options.minRelevance,
|
|
328
|
+
include_embeddings: options.includeEmbeddings,
|
|
329
|
+
};
|
|
330
|
+
return this.request("POST", "/v1/context/load", body);
|
|
331
|
+
}
|
|
332
|
+
async contextInject(key, value, options = {}) {
|
|
333
|
+
const body = {
|
|
334
|
+
key,
|
|
335
|
+
value,
|
|
336
|
+
parse_json: options.parseJson,
|
|
337
|
+
};
|
|
338
|
+
return this.request("POST", "/v1/context/inject", body);
|
|
339
|
+
}
|
|
340
|
+
async contextQuery(prompt, variables, options = {}) {
|
|
341
|
+
const body = {
|
|
342
|
+
prompt,
|
|
343
|
+
variables,
|
|
344
|
+
max_context_chars: options.maxContextChars,
|
|
345
|
+
result_var: options.resultVar,
|
|
346
|
+
};
|
|
347
|
+
return this.request("POST", "/v1/context/query", body);
|
|
348
|
+
}
|
|
349
|
+
async contextRlm(goal, options = {}) {
|
|
350
|
+
const body = {
|
|
351
|
+
goal,
|
|
352
|
+
memory_query: options.memoryQuery,
|
|
353
|
+
memory_limit: options.memoryLimit,
|
|
354
|
+
max_iterations: options.maxIterations,
|
|
355
|
+
variables: options.variables,
|
|
356
|
+
result_var: options.resultVar,
|
|
357
|
+
detail_level: options.detailLevel,
|
|
358
|
+
};
|
|
359
|
+
return this.request("POST", "/v1/context/rlm", body);
|
|
360
|
+
}
|
|
361
|
+
async contextStatus() {
|
|
362
|
+
return this.request("GET", "/v1/context/status");
|
|
363
|
+
}
|
|
364
|
+
async contextCleanup() {
|
|
365
|
+
await this.request("DELETE", "/v1/context/cleanup");
|
|
366
|
+
}
|
|
367
|
+
async contextCheckpoint() {
|
|
368
|
+
await this.request("POST", "/v1/context/checkpoint");
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare class MemoryLayerError extends Error {
|
|
2
|
+
statusCode?: number | undefined;
|
|
3
|
+
details?: unknown | undefined;
|
|
4
|
+
constructor(message: string, statusCode?: number | undefined, details?: unknown | undefined);
|
|
5
|
+
}
|
|
6
|
+
export declare class AuthenticationError extends MemoryLayerError {
|
|
7
|
+
constructor(message?: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class AuthorizationError extends MemoryLayerError {
|
|
10
|
+
constructor(message?: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class NotFoundError extends MemoryLayerError {
|
|
13
|
+
constructor(message?: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class ValidationError extends MemoryLayerError {
|
|
16
|
+
constructor(message?: string, details?: unknown);
|
|
17
|
+
}
|
|
18
|
+
export declare class RateLimitError extends MemoryLayerError {
|
|
19
|
+
retryAfter?: number | undefined;
|
|
20
|
+
constructor(message?: string, retryAfter?: number | undefined);
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,qBAAa,gBAAiB,SAAQ,KAAK;IACL,UAAU,CAAC,EAAE,MAAM;IAAS,OAAO,CAAC,EAAE,OAAO;gBAArE,OAAO,EAAE,MAAM,EAAS,UAAU,CAAC,EAAE,MAAM,YAAA,EAAS,OAAO,CAAC,EAAE,OAAO,YAAA;CAIlF;AAED,qBAAa,mBAAoB,SAAQ,gBAAgB;gBAC3C,OAAO,SAA0B;CAI9C;AAED,qBAAa,kBAAmB,SAAQ,gBAAgB;gBAC1C,OAAO,SAAyB;CAI7C;AAED,qBAAa,aAAc,SAAQ,gBAAgB;gBACrC,OAAO,SAAuB;CAI3C;AAED,qBAAa,eAAgB,SAAQ,gBAAgB;gBACvC,OAAO,SAAsB,EAAE,OAAO,CAAC,EAAE,OAAO;CAI7D;AAED,qBAAa,cAAe,SAAQ,gBAAgB;IACE,UAAU,CAAC,EAAE,MAAM;gBAA3D,OAAO,SAAwB,EAAS,UAAU,CAAC,EAAE,MAAM,YAAA;CAIxE"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export class MemoryLayerError extends Error {
|
|
2
|
+
statusCode;
|
|
3
|
+
details;
|
|
4
|
+
constructor(message, statusCode, details) {
|
|
5
|
+
super(message);
|
|
6
|
+
this.statusCode = statusCode;
|
|
7
|
+
this.details = details;
|
|
8
|
+
this.name = "MemoryLayerError";
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class AuthenticationError extends MemoryLayerError {
|
|
12
|
+
constructor(message = "Authentication failed") {
|
|
13
|
+
super(message, 401);
|
|
14
|
+
this.name = "AuthenticationError";
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export class AuthorizationError extends MemoryLayerError {
|
|
18
|
+
constructor(message = "Authorization denied") {
|
|
19
|
+
super(message, 403);
|
|
20
|
+
this.name = "AuthorizationError";
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export class NotFoundError extends MemoryLayerError {
|
|
24
|
+
constructor(message = "Resource not found") {
|
|
25
|
+
super(message, 404);
|
|
26
|
+
this.name = "NotFoundError";
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
export class ValidationError extends MemoryLayerError {
|
|
30
|
+
constructor(message = "Validation failed", details) {
|
|
31
|
+
super(message, 400, details);
|
|
32
|
+
this.name = "ValidationError";
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
export class RateLimitError extends MemoryLayerError {
|
|
36
|
+
retryAfter;
|
|
37
|
+
constructor(message = "Rate limit exceeded", retryAfter) {
|
|
38
|
+
super(message, 429);
|
|
39
|
+
this.retryAfter = retryAfter;
|
|
40
|
+
this.name = "RateLimitError";
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACL;IAA4B;IAAhE,YAAY,OAAe,EAAS,UAAmB,EAAS,OAAiB;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,eAAU,GAAV,UAAU,CAAS;QAAS,YAAO,GAAP,OAAO,CAAU;QAE/E,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,gBAAgB;IACvD,YAAY,OAAO,GAAG,uBAAuB;QAC3C,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,gBAAgB;IACtD,YAAY,OAAO,GAAG,sBAAsB;QAC1C,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,gBAAgB;IACjD,YAAY,OAAO,GAAG,oBAAoB;QACxC,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,gBAAgB;IACnD,YAAY,OAAO,GAAG,mBAAmB,EAAE,OAAiB;QAC1D,KAAK,CAAC,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,gBAAgB;IACE;IAApD,YAAY,OAAO,GAAG,qBAAqB,EAAS,UAAmB;QACrE,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QAD8B,eAAU,GAAV,UAAU,CAAS;QAErE,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC"}
|