@sesamespace/sdk 0.1.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/dist/client.js ADDED
@@ -0,0 +1,543 @@
1
+ import WebSocket from "ws";
2
+ import { createAuthSignature } from "./auth.js";
3
+ /**
4
+ * Sesame Agent SDK Client.
5
+ *
6
+ * Provides HTTP + WebSocket access to the Sesame platform.
7
+ * Supports both JWT (human) and Ed25519 signature (agent) authentication.
8
+ */
9
+ export class SesameClient {
10
+ config;
11
+ ws = null;
12
+ eventHandlers = new Map();
13
+ reconnectAttempts = 0;
14
+ reconnectTimer = null;
15
+ heartbeatTimer = null;
16
+ cursors = new Map();
17
+ authenticated = false;
18
+ constructor(config) {
19
+ this.config = {
20
+ autoReconnect: true,
21
+ maxReconnectAttempts: 10,
22
+ ...config,
23
+ };
24
+ }
25
+ // ── HTTP Methods ──
26
+ async fetch(path, options = {}) {
27
+ const headers = {
28
+ "Content-Type": "application/json",
29
+ ...(options.headers ?? {}),
30
+ };
31
+ if (this.config.apiKey) {
32
+ headers["Authorization"] = `Bearer ${this.config.apiKey}`;
33
+ }
34
+ else if (this.config.token) {
35
+ headers["Authorization"] = `Bearer ${this.config.token}`;
36
+ }
37
+ else if (this.config.agent) {
38
+ const { signature, timestamp } = createAuthSignature(this.config.agent.handle, this.config.agent.privateKey);
39
+ headers["Authorization"] = `Signature ${this.config.agent.handle}.${signature}.${timestamp}`;
40
+ }
41
+ const response = await globalThis.fetch(`${this.config.apiUrl}${path}`, {
42
+ ...options,
43
+ headers,
44
+ });
45
+ if (!response.ok) {
46
+ const error = await response.json().catch(() => ({ error: response.statusText }));
47
+ throw new MiraApiError(response.status, error.error ?? "Request failed");
48
+ }
49
+ return response.json();
50
+ }
51
+ get(path) {
52
+ return this.fetch(path);
53
+ }
54
+ post(path, body) {
55
+ return this.fetch(path, {
56
+ method: "POST",
57
+ body: body ? JSON.stringify(body) : undefined,
58
+ });
59
+ }
60
+ patch(path, body) {
61
+ return this.fetch(path, {
62
+ method: "PATCH",
63
+ body: JSON.stringify(body),
64
+ });
65
+ }
66
+ del(path) {
67
+ return this.fetch(path, { method: "DELETE" });
68
+ }
69
+ // ── Auth ──
70
+ async login(email, password) {
71
+ const result = await this.post("/api/v1/auth/login", { email, password });
72
+ this.config.token = result.accessToken;
73
+ return result;
74
+ }
75
+ // ── Channels ──
76
+ async listChannels() {
77
+ return this.get("/api/v1/channels");
78
+ }
79
+ async getChannel(id) {
80
+ return this.get(`/api/v1/channels/${id}`);
81
+ }
82
+ async createChannel(data) {
83
+ return this.post("/api/v1/channels", data);
84
+ }
85
+ async getOrCreateDM(principalId) {
86
+ return this.post("/api/v1/channels/dm", { principalId });
87
+ }
88
+ async getUnread() {
89
+ return this.get("/api/v1/channels/unread");
90
+ }
91
+ // ── Messages ──
92
+ async sendMessage(channelId, options) {
93
+ const result = await this.post(`/api/v1/channels/${channelId}/messages`, options);
94
+ // Update cursor
95
+ if (result.message.seq) {
96
+ this.cursors.set(channelId, result.message.seq);
97
+ }
98
+ return result;
99
+ }
100
+ async getMessages(channelId, options) {
101
+ const params = new URLSearchParams();
102
+ if (options?.cursor)
103
+ params.set("cursor", options.cursor.toString());
104
+ if (options?.limit)
105
+ params.set("limit", options.limit.toString());
106
+ if (options?.direction)
107
+ params.set("direction", options.direction);
108
+ if (options?.threadRootId)
109
+ params.set("threadRootId", options.threadRootId);
110
+ const qs = params.toString();
111
+ const result = await this.get(`/api/v1/channels/${channelId}/messages${qs ? `?${qs}` : ""}`);
112
+ // Update cursor
113
+ if (result.messages.length > 0) {
114
+ const maxSeq = Math.max(...result.messages.map((m) => m.seq));
115
+ const current = this.cursors.get(channelId) ?? 0;
116
+ if (maxSeq > current)
117
+ this.cursors.set(channelId, maxSeq);
118
+ }
119
+ return result;
120
+ }
121
+ async editMessage(channelId, messageId, content) {
122
+ return this.patch(`/api/v1/channels/${channelId}/messages/${messageId}`, { content });
123
+ }
124
+ async deleteMessage(channelId, messageId) {
125
+ await this.del(`/api/v1/channels/${channelId}/messages/${messageId}`);
126
+ }
127
+ async markRead(channelId, seq) {
128
+ await this.post(`/api/v1/channels/${channelId}/messages/read`, { seq });
129
+ }
130
+ async addReaction(channelId, messageId, emoji) {
131
+ await this.post(`/api/v1/channels/${channelId}/messages/${messageId}/reactions`, { emoji });
132
+ }
133
+ async removeReaction(channelId, messageId, emoji) {
134
+ await this.del(`/api/v1/channels/${channelId}/messages/${messageId}/reactions/${encodeURIComponent(emoji)}`);
135
+ }
136
+ // ── Vault ──
137
+ async listVaults() {
138
+ return this.get("/api/v1/vault/vaults");
139
+ }
140
+ async listVaultItems(vaultId) {
141
+ const qs = vaultId ? `?vaultId=${vaultId}` : "";
142
+ return this.get(`/api/v1/vault/items${qs}`);
143
+ }
144
+ async getVaultItem(id) {
145
+ return this.get(`/api/v1/vault/items/${id}`);
146
+ }
147
+ async createVaultItem(options) {
148
+ return this.post("/api/v1/vault/items", options);
149
+ }
150
+ async revealItem(id, fields) {
151
+ const qs = fields ? `?fields=${fields.join(",")}` : "";
152
+ return this.get(`/api/v1/vault/items/${id}/reveal${qs}`);
153
+ }
154
+ async shareItem(itemId, principalId, options) {
155
+ await this.post(`/api/v1/vault/items/${itemId}/share`, {
156
+ principalId,
157
+ ...options,
158
+ });
159
+ }
160
+ async revokeShare(itemId, principalId) {
161
+ await this.del(`/api/v1/vault/items/${itemId}/share/${principalId}`);
162
+ }
163
+ async getWallet() {
164
+ return this.get("/api/v1/vault/wallet");
165
+ }
166
+ // ── Leases ──
167
+ async requestLease(options) {
168
+ return this.post("/api/v1/vault/leases/request", options);
169
+ }
170
+ async approveLease(leaseId, options) {
171
+ return this.post(`/api/v1/vault/leases/${leaseId}/approve`, options ?? {});
172
+ }
173
+ async denyLease(leaseId) {
174
+ return this.post(`/api/v1/vault/leases/${leaseId}/deny`, {});
175
+ }
176
+ async useSecret(leaseId) {
177
+ return this.post(`/api/v1/vault/leases/${leaseId}/use`, {});
178
+ }
179
+ async revokeLease(leaseId) {
180
+ await this.del(`/api/v1/vault/leases/${leaseId}`);
181
+ }
182
+ // ── HTTP helper: PUT ──
183
+ put(path, body) {
184
+ return this.fetch(path, {
185
+ method: "PUT",
186
+ body: body ? JSON.stringify(body) : undefined,
187
+ });
188
+ }
189
+ // ── Agents ──
190
+ async listAgents() {
191
+ return this.get("/api/v1/agents");
192
+ }
193
+ async provisionAgent(data) {
194
+ return this.post("/api/v1/agents", data);
195
+ }
196
+ async generateApiKey(agentId, label) {
197
+ const res = await this.post(`/api/v1/agents/${agentId}/api-keys`, { label });
198
+ return res.data ?? res;
199
+ }
200
+ // ── Capabilities ──
201
+ async registerCapabilities(capabilities) {
202
+ const agentId = this.getAgentId();
203
+ const result = await this.put(`/api/v1/agents/${agentId}/capabilities`, { capabilities });
204
+ return { capabilities: result.data ?? result };
205
+ }
206
+ async addCapability(capability) {
207
+ const agentId = this.getAgentId();
208
+ const result = await this.post(`/api/v1/agents/${agentId}/capabilities`, capability);
209
+ return { capability: result.data ?? result };
210
+ }
211
+ async getCapabilities(agentId) {
212
+ const id = agentId ?? this.getAgentId();
213
+ const result = await this.get(`/api/v1/agents/${id}/capabilities`);
214
+ return { capabilities: result.data ?? result };
215
+ }
216
+ async removeCapability(capabilityId) {
217
+ const agentId = this.getAgentId();
218
+ await this.del(`/api/v1/agents/${agentId}/capabilities/${capabilityId}`);
219
+ }
220
+ // ── Discovery ──
221
+ async discoverAgents(query = {}) {
222
+ const params = new URLSearchParams();
223
+ if (query.namespace)
224
+ params.set("namespace", query.namespace);
225
+ if (query.name)
226
+ params.set("name", query.name);
227
+ if (query.capability) {
228
+ const caps = Array.isArray(query.capability) ? query.capability : [query.capability];
229
+ for (const cap of caps) {
230
+ params.append("capability", cap);
231
+ }
232
+ }
233
+ if (query.active !== undefined)
234
+ params.set("active", String(query.active));
235
+ const qs = params.toString();
236
+ const result = await this.get(`/api/v1/agents/discover${qs ? `?${qs}` : ""}`);
237
+ return { agents: result.data ?? result };
238
+ }
239
+ // ── Manifest & Context ──
240
+ async getManifest() {
241
+ const agentId = this.getAgentId();
242
+ const result = await this.get(`/api/v1/agents/${agentId}/manifest`);
243
+ return result.data ?? result;
244
+ }
245
+ async getChannelContext(channelId, options) {
246
+ const agentId = this.getAgentId();
247
+ const params = new URLSearchParams();
248
+ if (options?.strategy)
249
+ params.set("strategy", options.strategy);
250
+ if (options?.window)
251
+ params.set("window", String(options.window));
252
+ const qs = params.toString();
253
+ const result = await this.get(`/api/v1/agents/${agentId}/channels/${channelId}/context${qs ? `?${qs}` : ""}`);
254
+ return result.data ?? result;
255
+ }
256
+ // ── Channel Config ──
257
+ async setChannelConfig(channelId, config) {
258
+ const agentId = this.getAgentId();
259
+ const result = await this.put(`/api/v1/agents/${agentId}/channels/${channelId}/config`, config);
260
+ return result.data ?? result;
261
+ }
262
+ async getChannelConfig(channelId) {
263
+ const agentId = this.getAgentId();
264
+ const result = await this.get(`/api/v1/agents/${agentId}/channels/${channelId}/config`);
265
+ return result.data ?? result;
266
+ }
267
+ async deleteChannelConfig(channelId) {
268
+ const agentId = this.getAgentId();
269
+ await this.del(`/api/v1/agents/${agentId}/channels/${channelId}/config`);
270
+ }
271
+ // ── Collaboration ──
272
+ async createCollaborationChannel(options) {
273
+ // Create the channel
274
+ const result = await this.createChannel({
275
+ kind: "topic",
276
+ name: options.name,
277
+ description: options.description,
278
+ memberIds: options.memberIds,
279
+ });
280
+ const channel = result.data ?? result.channel ?? result;
281
+ const channelId = channel.id;
282
+ // Set context if provided
283
+ if (options.context) {
284
+ await this.put(`/api/v1/channels/${channelId}/context`, { context: options.context });
285
+ }
286
+ // Set visibility if provided
287
+ if (options.visibility) {
288
+ await this.patch(`/api/v1/channels/${channelId}`, { visibility: options.visibility });
289
+ }
290
+ // Set coordination mode if provided
291
+ if (options.coordinationMode) {
292
+ await this.put(`/api/v1/channels/${channelId}/coordination`, {
293
+ mode: options.coordinationMode,
294
+ });
295
+ }
296
+ return { channel };
297
+ }
298
+ // ── Tasks ──
299
+ async createTask(channelId, options) {
300
+ const result = await this.post(`/api/v1/channels/${channelId}/tasks`, options);
301
+ return { task: result.data ?? result };
302
+ }
303
+ async listTasks(channelId, filters) {
304
+ const params = new URLSearchParams();
305
+ if (filters?.status)
306
+ params.set("status", filters.status);
307
+ if (filters?.priority)
308
+ params.set("priority", filters.priority);
309
+ if (filters?.assigneeId)
310
+ params.set("assigneeId", filters.assigneeId);
311
+ const qs = params.toString();
312
+ const result = await this.get(`/api/v1/channels/${channelId}/tasks${qs ? `?${qs}` : ""}`);
313
+ return { tasks: result.data ?? result };
314
+ }
315
+ async updateTask(channelId, taskId, updates) {
316
+ const result = await this.patch(`/api/v1/channels/${channelId}/tasks/${taskId}`, updates);
317
+ return { task: result.data ?? result };
318
+ }
319
+ async claimTask(channelId, taskId) {
320
+ const result = await this.post(`/api/v1/channels/${channelId}/tasks/${taskId}/claim`);
321
+ return { task: result.data ?? result };
322
+ }
323
+ async addTaskAssignee(channelId, taskId, principalId, role) {
324
+ const result = await this.post(`/api/v1/channels/${channelId}/tasks/${taskId}/assignees`, { principalId, role });
325
+ return { task: result.data ?? result };
326
+ }
327
+ async removeTaskAssignee(channelId, taskId, principalId) {
328
+ const result = await this.del(`/api/v1/channels/${channelId}/tasks/${taskId}/assignees/${principalId}`);
329
+ return { task: result.data ?? result };
330
+ }
331
+ async createTaskChannel(channelId, taskId, options) {
332
+ const result = await this.post(`/api/v1/channels/${channelId}/tasks/${taskId}/channel`, options ?? {});
333
+ return result.data ?? result;
334
+ }
335
+ // ── Profile ──
336
+ async setReadReceiptEmoji(emoji) {
337
+ const agentId = this.getAgentId();
338
+ await this.patch(`/api/v1/agents/${agentId}`, {
339
+ profile: { readReceiptEmoji: emoji },
340
+ });
341
+ }
342
+ // ── Internal helpers ──
343
+ getAgentId() {
344
+ const principal = this._principalId;
345
+ if (principal)
346
+ return principal;
347
+ // For agent auth, we need to resolve the ID from the server
348
+ // For now, we require the caller to have set it or fetch it
349
+ throw new MiraApiError(400, "Agent ID not available. Call getManifest() first or provide agentId explicitly.");
350
+ }
351
+ /**
352
+ * Set the current agent's principal ID (resolved after auth).
353
+ */
354
+ setPrincipalId(id) {
355
+ this._principalId = id;
356
+ }
357
+ // ── WebSocket ──
358
+ /**
359
+ * Connect to the real-time WebSocket gateway.
360
+ */
361
+ connect() {
362
+ return new Promise((resolve, reject) => {
363
+ try {
364
+ this.ws = new WebSocket(`${this.config.wsUrl}/v1/connect`);
365
+ this.ws.on("open", () => {
366
+ this.reconnectAttempts = 0;
367
+ this.sendAuth();
368
+ });
369
+ this.ws.on("message", (data) => {
370
+ try {
371
+ const event = JSON.parse(data.toString());
372
+ if (event.type === "authenticated") {
373
+ this.authenticated = true;
374
+ this.startHeartbeat(event.heartbeatIntervalMs ?? 30000);
375
+ // Replay missed messages
376
+ this.sendReplay();
377
+ resolve();
378
+ return;
379
+ }
380
+ if (event.type === "pong")
381
+ return;
382
+ if (event.type === "error") {
383
+ console.error("WS error:", event.message);
384
+ return;
385
+ }
386
+ // Update cursors from incoming messages
387
+ if (event.type === "message" && event.data?.seq) {
388
+ const channelId = event.data.channelId;
389
+ const seq = event.data.seq;
390
+ const current = this.cursors.get(channelId) ?? 0;
391
+ if (seq > current)
392
+ this.cursors.set(channelId, seq);
393
+ }
394
+ this.emit(event);
395
+ }
396
+ catch { }
397
+ });
398
+ this.ws.on("close", () => {
399
+ this.authenticated = false;
400
+ this.stopHeartbeat();
401
+ if (this.config.autoReconnect) {
402
+ this.scheduleReconnect();
403
+ }
404
+ });
405
+ this.ws.on("error", (err) => {
406
+ if (!this.authenticated) {
407
+ reject(err);
408
+ }
409
+ });
410
+ }
411
+ catch (err) {
412
+ reject(err);
413
+ }
414
+ });
415
+ }
416
+ /**
417
+ * Disconnect from the WebSocket gateway.
418
+ */
419
+ disconnect() {
420
+ this.config.autoReconnect = false;
421
+ this.stopHeartbeat();
422
+ if (this.reconnectTimer) {
423
+ clearTimeout(this.reconnectTimer);
424
+ this.reconnectTimer = null;
425
+ }
426
+ if (this.ws) {
427
+ this.ws.close();
428
+ this.ws = null;
429
+ }
430
+ }
431
+ /**
432
+ * Subscribe to WebSocket events.
433
+ */
434
+ on(eventType, handler) {
435
+ if (!this.eventHandlers.has(eventType)) {
436
+ this.eventHandlers.set(eventType, new Set());
437
+ }
438
+ this.eventHandlers.get(eventType).add(handler);
439
+ // Return unsubscribe function
440
+ return () => {
441
+ this.eventHandlers.get(eventType)?.delete(handler);
442
+ };
443
+ }
444
+ /**
445
+ * Subscribe to all events.
446
+ */
447
+ onAny(handler) {
448
+ return this.on("*", handler);
449
+ }
450
+ emit(event) {
451
+ // Emit to specific handlers
452
+ this.eventHandlers.get(event.type)?.forEach((h) => h(event));
453
+ // Emit to wildcard handlers
454
+ this.eventHandlers.get("*")?.forEach((h) => h(event));
455
+ }
456
+ sendAuth() {
457
+ if (!this.ws)
458
+ return;
459
+ if (this.config.apiKey) {
460
+ this.ws.send(JSON.stringify({ type: "auth", apiKey: this.config.apiKey }));
461
+ }
462
+ else if (this.config.token) {
463
+ this.ws.send(JSON.stringify({ type: "auth", token: this.config.token }));
464
+ }
465
+ else if (this.config.agent) {
466
+ const { signature, timestamp } = createAuthSignature(this.config.agent.handle, this.config.agent.privateKey);
467
+ this.ws.send(JSON.stringify({
468
+ type: "auth",
469
+ signature: {
470
+ handle: this.config.agent.handle,
471
+ sig: signature,
472
+ timestamp,
473
+ },
474
+ }));
475
+ }
476
+ }
477
+ sendReplay() {
478
+ if (!this.ws || this.cursors.size === 0)
479
+ return;
480
+ const cursors = {};
481
+ this.cursors.forEach((seq, channelId) => {
482
+ cursors[channelId] = seq;
483
+ });
484
+ this.ws.send(JSON.stringify({ type: "replay", cursors }));
485
+ }
486
+ startHeartbeat(intervalMs) {
487
+ this.stopHeartbeat();
488
+ this.heartbeatTimer = setInterval(() => {
489
+ if (this.ws?.readyState === WebSocket.OPEN) {
490
+ this.ws.send(JSON.stringify({ type: "ping" }));
491
+ }
492
+ }, intervalMs);
493
+ }
494
+ stopHeartbeat() {
495
+ if (this.heartbeatTimer) {
496
+ clearInterval(this.heartbeatTimer);
497
+ this.heartbeatTimer = null;
498
+ }
499
+ }
500
+ scheduleReconnect() {
501
+ if (this.reconnectAttempts >= this.config.maxReconnectAttempts) {
502
+ console.error("Max reconnect attempts reached");
503
+ return;
504
+ }
505
+ const delay = Math.min(1000 * Math.pow(2, this.reconnectAttempts), 30000);
506
+ this.reconnectAttempts++;
507
+ this.reconnectTimer = setTimeout(() => {
508
+ this.connect().catch(() => {
509
+ this.scheduleReconnect();
510
+ });
511
+ }, delay);
512
+ }
513
+ /**
514
+ * Send a typing indicator for a channel.
515
+ */
516
+ sendTyping(channelId) {
517
+ if (this.ws?.readyState === WebSocket.OPEN) {
518
+ this.ws.send(JSON.stringify({ type: "typing", channelId }));
519
+ }
520
+ }
521
+ /**
522
+ * Send a message via WebSocket (alternative to HTTP).
523
+ */
524
+ sendWsMessage(channelId, content, options) {
525
+ if (this.ws?.readyState === WebSocket.OPEN) {
526
+ this.ws.send(JSON.stringify({
527
+ type: "send",
528
+ channelId,
529
+ content,
530
+ ...options,
531
+ }));
532
+ }
533
+ }
534
+ }
535
+ export class MiraApiError extends Error {
536
+ status;
537
+ constructor(status, message) {
538
+ super(message);
539
+ this.status = status;
540
+ this.name = "MiraApiError";
541
+ }
542
+ }
543
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { SesameClient } from "./client.js";
2
+ export type { SesameClientConfig, Channel, Message, VaultItem, VaultLease, Principal, SendMessageOptions, MessageHistoryOptions, CreateVaultItemOptions, LeaseRequestOptions, WsEvent, Capability, CapabilityInput, DiscoverQuery, AgentWithCapabilities, AgentManifest, ManifestChannel, AgentChannelConfig, AgentChannelConfigInput, ChannelContext, CollaborationChannelOptions, } from "./types.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,YAAY,EACV,kBAAkB,EAClB,OAAO,EACP,OAAO,EACP,SAAS,EACT,UAAU,EACV,SAAS,EACT,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,cAAc,EACd,2BAA2B,GAC5B,MAAM,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export { SesameClient } from "./client.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}