myceliumail 1.0.4 → 1.0.5

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.
@@ -25,15 +25,15 @@ export declare function sendMessage(sender: string, recipient: string | string[]
25
25
  */
26
26
  export declare function getInbox(agentId: string, options?: InboxOptions): Promise<Message[]>;
27
27
  /**
28
- * Get a specific message
28
+ * Get a specific message (supports partial ID lookup)
29
29
  */
30
30
  export declare function getMessage(id: string): Promise<Message | null>;
31
31
  /**
32
- * Mark message as read
32
+ * Mark message as read (supports partial ID)
33
33
  */
34
34
  export declare function markAsRead(id: string, agentId?: string): Promise<boolean>;
35
35
  /**
36
- * Archive a message
36
+ * Archive a message (supports partial ID)
37
37
  */
38
38
  export declare function archiveMessage(id: string): Promise<boolean>;
39
39
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/storage/supabase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA2E/D;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACN,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9E,GACF,OAAO,CAAC,OAAO,CAAC,CA8DlB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAuD1F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAgDpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgB/E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBjE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAehE"}
1
+ {"version":3,"file":"supabase.d.ts","sourceRoot":"","sources":["../../src/storage/supabase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA2E/D;;GAEG;AACH,wBAAsB,WAAW,CAC7B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,EAC5B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IACN,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC9E,GACF,OAAO,CAAC,OAAO,CAAC,CA8DlB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAuD1F;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CA8FpE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwB/E;AAED;;GAEG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAwBjE;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAehE"}
@@ -159,13 +159,48 @@ export async function getInbox(agentId, options) {
159
159
  });
160
160
  }
161
161
  /**
162
- * Get a specific message
162
+ * Get a specific message (supports partial ID lookup)
163
163
  */
164
164
  export async function getMessage(id) {
165
165
  const client = createClient();
166
166
  if (!client) {
167
167
  return local.getMessage(id);
168
168
  }
169
+ // For partial IDs, fetch recent messages and filter client-side
170
+ // (PostgreSQL UUID type doesn't support LIKE operator)
171
+ if (id.length < 36) {
172
+ const results = await supabaseRequest(client, `/agent_messages?order=created_at.desc&limit=100`);
173
+ const r = results.find(row => row.id.startsWith(id));
174
+ if (!r)
175
+ return null;
176
+ // Parse encrypted message
177
+ let ciphertext, nonce, senderPublicKey, body = r.message;
178
+ if (r.encrypted && r.message) {
179
+ try {
180
+ const enc = JSON.parse(r.message);
181
+ ciphertext = enc.ciphertext;
182
+ nonce = enc.nonce;
183
+ senderPublicKey = enc.sender_public_key;
184
+ body = '';
185
+ }
186
+ catch { }
187
+ }
188
+ return {
189
+ id: r.id,
190
+ sender: r.from_agent,
191
+ recipient: r.to_agent,
192
+ subject: r.subject || '',
193
+ body,
194
+ encrypted: r.encrypted,
195
+ ciphertext,
196
+ nonce,
197
+ senderPublicKey,
198
+ read: r.read,
199
+ archived: false,
200
+ createdAt: new Date(r.created_at),
201
+ };
202
+ }
203
+ // Full UUID - exact match
169
204
  const results = await supabaseRequest(client, `/agent_messages?id=eq.${id}`);
170
205
  if (results.length === 0)
171
206
  return null;
@@ -198,15 +233,23 @@ export async function getMessage(id) {
198
233
  };
199
234
  }
200
235
  /**
201
- * Mark message as read
236
+ * Mark message as read (supports partial ID)
202
237
  */
203
238
  export async function markAsRead(id, agentId) {
204
239
  const client = createClient();
205
240
  if (!client) {
206
241
  return local.markAsRead(id, agentId);
207
242
  }
243
+ // For partial IDs, resolve full UUID first
244
+ let fullId = id;
245
+ if (id.length < 36) {
246
+ const msg = await getMessage(id);
247
+ if (!msg)
248
+ return false;
249
+ fullId = msg.id;
250
+ }
208
251
  try {
209
- await supabaseRequest(client, `/agent_messages?id=eq.${id}`, {
252
+ await supabaseRequest(client, `/agent_messages?id=eq.${fullId}`, {
210
253
  method: 'PATCH',
211
254
  body: JSON.stringify({ read: true }),
212
255
  });
@@ -217,15 +260,23 @@ export async function markAsRead(id, agentId) {
217
260
  }
218
261
  }
219
262
  /**
220
- * Archive a message
263
+ * Archive a message (supports partial ID)
221
264
  */
222
265
  export async function archiveMessage(id) {
223
266
  const client = createClient();
224
267
  if (!client) {
225
268
  return local.archiveMessage(id);
226
269
  }
270
+ // For partial IDs, resolve full UUID first
271
+ let fullId = id;
272
+ if (id.length < 36) {
273
+ const msg = await getMessage(id);
274
+ if (!msg)
275
+ return false;
276
+ fullId = msg.id;
277
+ }
227
278
  try {
228
- await supabaseRequest(client, `/agent_messages?id=eq.${id}`, {
279
+ await supabaseRequest(client, `/agent_messages?id=eq.${fullId}`, {
229
280
  method: 'PATCH',
230
281
  body: JSON.stringify({ archived: true }),
231
282
  });
@@ -1 +1 @@
1
- {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/storage/supabase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"supabase.js","sourceRoot":"","sources":["../../src/storage/supabase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "myceliumail",
3
- "version": "1.0.4",
3
+ "version": "1.0.5",
4
4
  "description": "End-to-End Encrypted Messaging for AI Agents",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
@@ -221,7 +221,7 @@ export async function getInbox(agentId: string, options?: InboxOptions): Promise
221
221
  }
222
222
 
223
223
  /**
224
- * Get a specific message
224
+ * Get a specific message (supports partial ID lookup)
225
225
  */
226
226
  export async function getMessage(id: string): Promise<Message | null> {
227
227
  const client = createClient();
@@ -230,6 +230,52 @@ export async function getMessage(id: string): Promise<Message | null> {
230
230
  return local.getMessage(id);
231
231
  }
232
232
 
233
+ // For partial IDs, fetch recent messages and filter client-side
234
+ // (PostgreSQL UUID type doesn't support LIKE operator)
235
+ if (id.length < 36) {
236
+ const results = await supabaseRequest<Array<{
237
+ id: string;
238
+ from_agent: string;
239
+ to_agent: string;
240
+ subject: string;
241
+ message: string;
242
+ encrypted: boolean;
243
+ read: boolean;
244
+ created_at: string;
245
+ }>>(client, `/agent_messages?order=created_at.desc&limit=100`);
246
+
247
+ const r = results.find(row => row.id.startsWith(id));
248
+ if (!r) return null;
249
+
250
+ // Parse encrypted message
251
+ let ciphertext, nonce, senderPublicKey, body = r.message;
252
+ if (r.encrypted && r.message) {
253
+ try {
254
+ const enc = JSON.parse(r.message);
255
+ ciphertext = enc.ciphertext;
256
+ nonce = enc.nonce;
257
+ senderPublicKey = enc.sender_public_key;
258
+ body = '';
259
+ } catch { }
260
+ }
261
+
262
+ return {
263
+ id: r.id,
264
+ sender: r.from_agent,
265
+ recipient: r.to_agent,
266
+ subject: r.subject || '',
267
+ body,
268
+ encrypted: r.encrypted,
269
+ ciphertext,
270
+ nonce,
271
+ senderPublicKey,
272
+ read: r.read,
273
+ archived: false,
274
+ createdAt: new Date(r.created_at),
275
+ };
276
+ }
277
+
278
+ // Full UUID - exact match
233
279
  const results = await supabaseRequest<Array<{
234
280
  id: string;
235
281
  from_agent: string;
@@ -274,7 +320,7 @@ export async function getMessage(id: string): Promise<Message | null> {
274
320
  }
275
321
 
276
322
  /**
277
- * Mark message as read
323
+ * Mark message as read (supports partial ID)
278
324
  */
279
325
  export async function markAsRead(id: string, agentId?: string): Promise<boolean> {
280
326
  const client = createClient();
@@ -283,8 +329,16 @@ export async function markAsRead(id: string, agentId?: string): Promise<boolean>
283
329
  return local.markAsRead(id, agentId);
284
330
  }
285
331
 
332
+ // For partial IDs, resolve full UUID first
333
+ let fullId = id;
334
+ if (id.length < 36) {
335
+ const msg = await getMessage(id);
336
+ if (!msg) return false;
337
+ fullId = msg.id;
338
+ }
339
+
286
340
  try {
287
- await supabaseRequest(client, `/agent_messages?id=eq.${id}`, {
341
+ await supabaseRequest(client, `/agent_messages?id=eq.${fullId}`, {
288
342
  method: 'PATCH',
289
343
  body: JSON.stringify({ read: true }),
290
344
  });
@@ -295,7 +349,7 @@ export async function markAsRead(id: string, agentId?: string): Promise<boolean>
295
349
  }
296
350
 
297
351
  /**
298
- * Archive a message
352
+ * Archive a message (supports partial ID)
299
353
  */
300
354
  export async function archiveMessage(id: string): Promise<boolean> {
301
355
  const client = createClient();
@@ -304,8 +358,16 @@ export async function archiveMessage(id: string): Promise<boolean> {
304
358
  return local.archiveMessage(id);
305
359
  }
306
360
 
361
+ // For partial IDs, resolve full UUID first
362
+ let fullId = id;
363
+ if (id.length < 36) {
364
+ const msg = await getMessage(id);
365
+ if (!msg) return false;
366
+ fullId = msg.id;
367
+ }
368
+
307
369
  try {
308
- await supabaseRequest(client, `/agent_messages?id=eq.${id}`, {
370
+ await supabaseRequest(client, `/agent_messages?id=eq.${fullId}`, {
309
371
  method: 'PATCH',
310
372
  body: JSON.stringify({ archived: true }),
311
373
  });