@xmtp/agent-sdk 1.2.2 → 1.2.4-dev.f53662f

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 CHANGED
@@ -320,6 +320,15 @@ agent.on("text", async (ctx) => {
320
320
  });
321
321
  ```
322
322
 
323
+ The Agent class also exposes a function to get the `ConversationContext`, so you can directly interact with a conversation.
324
+
325
+ **Example**
326
+
327
+ ```ts
328
+ const ctx = await agent.getConversationContext("conversationId");
329
+ await ctx?.sendMarkdown("**Hello, World!**");
330
+ ```
331
+
323
332
  ### 5. Starting Conversations
324
333
 
325
334
  These functionalities let you start a conversation:
@@ -371,6 +380,66 @@ const address = await resolver("vitalik.eth");
371
380
  console.log(`Resolved address: ${address}`);
372
381
  ```
373
382
 
383
+ ### 7. Sending Attachments
384
+
385
+ The Agent SDK supports sending encrypted remote attachments. Files are encrypted locally, uploaded to your storage provider of choice, and then sent as a remote attachment message containing the URL and decryption keys.
386
+
387
+ **Example**
388
+
389
+ ```ts
390
+ import { type AttachmentUploadCallback } from "@xmtp/agent-sdk/util";
391
+
392
+ agent.on("text", async (ctx) => {
393
+ if (ctx.message.content === "/send-file") {
394
+ // Create a File object (in Node.js, you can use the File class from buffer or file-system)
395
+ const file = new File(["Hello, World!"], "hello.txt", {
396
+ type: "text/plain",
397
+ });
398
+
399
+ // Upload callback - implement your own storage solution
400
+ const uploadCallback: AttachmentUploadCallback = async (attachment) => {
401
+ // Upload "attachment.content.payload" to your storage
402
+ const pinata = new PinataSDK({
403
+ pinataJwt: process.env.PINATA_JWT,
404
+ pinataGateway: process.env.PINATA_GATEWAY,
405
+ });
406
+
407
+ const mimeType = "application/octet-stream";
408
+ const encryptedBlob = new Blob(
409
+ [Buffer.from(attachment.content.payload)],
410
+ {
411
+ type: mimeType,
412
+ },
413
+ );
414
+ const encryptedFile = new File([encryptedBlob], attachment.filename, {
415
+ type: mimeType,
416
+ });
417
+ const upload = await pinata.upload.public.file(encryptedFile);
418
+
419
+ // Return the public URL where the file can be downloaded
420
+ return pinata.gateways.public.convert(`${upload.cid}`);
421
+ };
422
+
423
+ // Send the encrypted remote attachment
424
+ await ctx.sendRemoteAttachment(file, uploadCallback);
425
+ }
426
+ });
427
+ ```
428
+
429
+ Other agents can then download and decrypt the attachment using the `"attachment"` topic:
430
+
431
+ ```ts
432
+ import { downloadRemoteAttachment } from "@xmtp/agent-sdk/util";
433
+
434
+ agent.on("attachment", async (ctx) => {
435
+ const receivedAttachment = await downloadRemoteAttachment(
436
+ ctx.message.content,
437
+ agent,
438
+ );
439
+ console.log(`Received attachment: ${receivedAttachment.filename}`);
440
+ });
441
+ ```
442
+
374
443
  ## Adding Custom Content Types
375
444
 
376
445
  Pass `codecs` when creating your agent to extend supported content:
@@ -4,7 +4,7 @@ import { MarkdownCodec } from "@xmtp/content-type-markdown";
4
4
  import type { ContentCodec } from "@xmtp/content-type-primitives";
5
5
  import { ReactionCodec } from "@xmtp/content-type-reaction";
6
6
  import { ReadReceiptCodec } from "@xmtp/content-type-read-receipt";
7
- import { RemoteAttachmentCodec } from "@xmtp/content-type-remote-attachment";
7
+ import { AttachmentCodec, RemoteAttachmentCodec } from "@xmtp/content-type-remote-attachment";
8
8
  import { ReplyCodec } from "@xmtp/content-type-reply";
9
9
  import type { TextCodec } from "@xmtp/content-type-text";
10
10
  import { TransactionReferenceCodec } from "@xmtp/content-type-transaction-reference";
@@ -65,10 +65,10 @@ export declare class Agent<ContentTypes = unknown> extends EventEmitter<EventHan
65
65
  constructor({ client }: AgentOptions<ContentTypes>);
66
66
  static create<ContentCodecs extends ContentCodec[] = []>(signer: Parameters<typeof Client.create>[0], options?: Omit<ClientOptions, "codecs"> & {
67
67
  codecs?: ContentCodecs;
68
- }): Promise<Agent<import("@xmtp/node-sdk").ExtractCodecContentTypes<(ReactionCodec | ReplyCodec | RemoteAttachmentCodec | MarkdownCodec | ReadReceiptCodec | TransactionReferenceCodec | WalletSendCallsCodec | (never[] | ContentCodecs)[number])[]>>>;
68
+ }): Promise<Agent<import("@xmtp/node-sdk").ExtractCodecContentTypes<(ReactionCodec | ReplyCodec | RemoteAttachmentCodec | MarkdownCodec | ReadReceiptCodec | TransactionReferenceCodec | WalletSendCallsCodec | AttachmentCodec | (never[] | ContentCodecs)[number])[]>>>;
69
69
  static createFromEnv<ContentCodecs extends ContentCodec[] = []>(options?: Omit<ClientOptions, "codecs"> & {
70
70
  codecs?: ContentCodecs;
71
- }): Promise<Agent<import("@xmtp/node-sdk").ExtractCodecContentTypes<(ReactionCodec | ReplyCodec | RemoteAttachmentCodec | MarkdownCodec | ReadReceiptCodec | TransactionReferenceCodec | WalletSendCallsCodec | (never[] | ContentCodecs)[number])[]>>>;
71
+ }): Promise<Agent<import("@xmtp/node-sdk").ExtractCodecContentTypes<(ReactionCodec | ReplyCodec | RemoteAttachmentCodec | MarkdownCodec | ReadReceiptCodec | TransactionReferenceCodec | WalletSendCallsCodec | AttachmentCodec | (never[] | ContentCodecs)[number])[]>>>;
72
72
  get libxmtpVersion(): string | undefined;
73
73
  use(...middleware: Array<AgentMiddleware<ContentTypes> | AgentMiddleware<ContentTypes>[]>): this;
74
74
  start(options?: AgentStreamingOptions): Promise<void>;
@@ -78,6 +78,7 @@ export declare class Agent<ContentTypes = unknown> extends EventEmitter<EventHan
78
78
  createDmWithAddress(address: EthAddress, options?: CreateDmOptions): Promise<Dm<ContentTypes>>;
79
79
  createGroupWithAddresses(addresses: EthAddress[], options?: CreateGroupOptions): Promise<Group<ContentTypes>>;
80
80
  addMembersWithAddresses<ContentTypes>(group: Group<ContentTypes>, addresses: EthAddress[]): Promise<void>;
81
+ getConversationContext(conversationId: string): Promise<ConversationContext<ContentTypes, Dm<ContentTypes> | Group<ContentTypes>> | undefined>;
81
82
  get address(): string | undefined;
82
83
  }
83
84
  export {};
@@ -4,7 +4,7 @@ import path from "node:path";
4
4
  import { MarkdownCodec } from "@xmtp/content-type-markdown";
5
5
  import { ReactionCodec } from "@xmtp/content-type-reaction";
6
6
  import { ReadReceiptCodec } from "@xmtp/content-type-read-receipt";
7
- import { RemoteAttachmentCodec } from "@xmtp/content-type-remote-attachment";
7
+ import { AttachmentCodec, RemoteAttachmentCodec, } from "@xmtp/content-type-remote-attachment";
8
8
  import { ReplyCodec } from "@xmtp/content-type-reply";
9
9
  import { TransactionReferenceCodec } from "@xmtp/content-type-transaction-reference";
10
10
  import { WalletSendCallsCodec } from "@xmtp/content-type-wallet-send-calls";
@@ -54,11 +54,12 @@ export class Agent extends EventEmitter {
54
54
  initializedOptions.disableDeviceSync ??= true;
55
55
  const upgradedCodecs = [
56
56
  ...(initializedOptions.codecs ?? []),
57
+ new AttachmentCodec(),
57
58
  new MarkdownCodec(),
58
59
  new ReactionCodec(),
59
60
  new ReadReceiptCodec(),
60
- new ReplyCodec(),
61
61
  new RemoteAttachmentCodec(),
62
+ new ReplyCodec(),
62
63
  new TransactionReferenceCodec(),
63
64
  new WalletSendCallsCodec(),
64
65
  ];
@@ -376,6 +377,16 @@ export class Agent extends EventEmitter {
376
377
  });
377
378
  return group.addMembersByIdentifiers(identifiers);
378
379
  }
380
+ async getConversationContext(conversationId) {
381
+ const conversation = await this.client.conversations.getConversationById(conversationId);
382
+ if (conversation) {
383
+ const context = new ConversationContext({
384
+ conversation,
385
+ client: this.#client,
386
+ });
387
+ return context;
388
+ }
389
+ }
379
390
  get address() {
380
391
  return this.#client.accountIdentifier?.identifier;
381
392
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/core/Agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/core/Agent.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { type Client, type Conversation, type Dm, type Group } from "@xmtp/node-sdk";
2
+ import { type AttachmentUploadCallback } from "../util/AttachmentUtil.js";
2
3
  import { ClientContext } from "./ClientContext.js";
3
4
  export declare class ConversationContext<ContentTypes = unknown, ConversationType extends Conversation = Conversation> extends ClientContext<ContentTypes> {
4
5
  #private;
@@ -10,6 +11,7 @@ export declare class ConversationContext<ContentTypes = unknown, ConversationTyp
10
11
  isGroup(): this is ConversationContext<ContentTypes, Group<ContentTypes>>;
11
12
  sendMarkdown(markdown: string): Promise<void>;
12
13
  sendText(text: string): Promise<void>;
14
+ sendRemoteAttachment(unencryptedFile: File, uploadCallback: AttachmentUploadCallback): Promise<void>;
13
15
  get conversation(): ConversationType;
14
16
  get isAllowed(): boolean;
15
17
  get isDenied(): boolean;
@@ -1,6 +1,8 @@
1
1
  import { ContentTypeMarkdown } from "@xmtp/content-type-markdown";
2
+ import { ContentTypeRemoteAttachment } from "@xmtp/content-type-remote-attachment";
2
3
  import { ContentTypeText } from "@xmtp/content-type-text";
3
4
  import { filter } from "../core/filter.js";
5
+ import { createRemoteAttachmentFromFile, } from "../util/AttachmentUtil.js";
4
6
  import { ClientContext } from "./ClientContext.js";
5
7
  export class ConversationContext extends ClientContext {
6
8
  #conversation;
@@ -21,6 +23,10 @@ export class ConversationContext extends ClientContext {
21
23
  async sendText(text) {
22
24
  await this.conversation.send(text, ContentTypeText);
23
25
  }
26
+ async sendRemoteAttachment(unencryptedFile, uploadCallback) {
27
+ const remoteAttachment = await createRemoteAttachmentFromFile(unencryptedFile, uploadCallback);
28
+ await this.conversation.send(remoteAttachment, ContentTypeRemoteAttachment);
29
+ }
24
30
  get conversation() {
25
31
  return this.#conversation;
26
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationContext.js","sourceRoot":"","sources":["../../src/core/ConversationContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAQ1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,mBAGX,SAAQ,aAA2B;IACnC,aAAa,CAAmB;IAEhC,YAAY,EACV,YAAY,EACZ,MAAM,GAIP;QACC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,0IAA0I;IAC1I,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,iCAAyB,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,gCAAwB,CAAC;IACjE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,iCAAyB,CAAC;IAClE,CAAC;CACF"}
1
+ {"version":3,"file":"ConversationContext.js","sourceRoot":"","sources":["../../src/core/ConversationContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAQ1D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EACL,8BAA8B,GAE/B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,OAAO,mBAGX,SAAQ,aAA2B;IACnC,aAAa,CAAmB;IAEhC,YAAY,EACV,YAAY,EACZ,MAAM,GAIP;QACC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAClB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAED,IAAI;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACzC,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,0IAA0I;IAC1I,KAAK,CAAC,YAAY,CAAC,QAAgB;QACjC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,eAAqB,EACrB,cAAwC;QAExC,MAAM,gBAAgB,GAAG,MAAM,8BAA8B,CAC3D,eAAe,EACf,cAAc,CACf,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,EAAE,2BAA2B,CAAC,CAAC;IAC9E,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,iCAAyB,CAAC;IAClE,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,gCAAwB,CAAC;IACjE,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,iCAAyB,CAAC;IAClE,CAAC;CACF"}
@@ -4,8 +4,8 @@ import type { MessageContext } from "../core/MessageContext.js";
4
4
  /** Content type supported by the "CommandRouter" */
5
5
  type SupportedType = ReturnType<TextCodec["decode"]>;
6
6
  export declare class CommandRouter {
7
- private commandMap;
8
- private defaultHandler;
7
+ #private;
8
+ get commandList(): string[];
9
9
  command(command: string, handler: AgentMessageHandler<SupportedType>): this;
10
10
  default(handler: AgentMessageHandler<SupportedType>): this;
11
11
  handle(ctx: MessageContext<SupportedType>): Promise<boolean>;
@@ -1,15 +1,18 @@
1
1
  export class CommandRouter {
2
- commandMap = new Map();
3
- defaultHandler = null;
2
+ #commandMap = new Map();
3
+ #defaultHandler = null;
4
+ get commandList() {
5
+ return Array.from(this.#commandMap.keys());
6
+ }
4
7
  command(command, handler) {
5
8
  if (!command.startsWith("/")) {
6
9
  throw new Error('Command must start with "/"');
7
10
  }
8
- this.commandMap.set(command.toLowerCase(), handler);
11
+ this.#commandMap.set(command.toLowerCase(), handler);
9
12
  return this;
10
13
  }
11
14
  default(handler) {
12
- this.defaultHandler = handler;
15
+ this.#defaultHandler = handler;
13
16
  return this;
14
17
  }
15
18
  async handle(ctx) {
@@ -21,7 +24,7 @@ export class CommandRouter {
21
24
  }
22
25
  // Check if this is a command message
23
26
  if (command.startsWith("/")) {
24
- const handler = this.commandMap.get(command);
27
+ const handler = this.#commandMap.get(command);
25
28
  if (handler) {
26
29
  // Create a new context with modified content (everything after the command)
27
30
  const argsText = parts.slice(1).join(" ");
@@ -31,8 +34,8 @@ export class CommandRouter {
31
34
  }
32
35
  }
33
36
  // If no command matched and there's a default handler, use it
34
- if (this.defaultHandler) {
35
- await this.defaultHandler(ctx);
37
+ if (this.#defaultHandler) {
38
+ await this.#defaultHandler(ctx);
36
39
  return true;
37
40
  }
38
41
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/middleware/CommandRouter.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,aAAa;IAChB,UAAU,GAAG,IAAI,GAAG,EAA8C,CAAC;IACnE,cAAc,GAA8C,IAAI,CAAC;IAEzE,OAAO,CAAC,OAAe,EAAE,OAA2C;QAClE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAA2C;QACjD,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAkC;QAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QACxC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,IAAI,OAAO,EAAE,CAAC;gBACZ,4EAA4E;gBAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1C,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU;QACR,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/middleware/CommandRouter.ts"],"names":[],"mappings":"AAUA,MAAM,OAAO,aAAa;IACxB,WAAW,GAAG,IAAI,GAAG,EAA8C,CAAC;IACpE,eAAe,GAA8C,IAAI,CAAC;IAElE,IAAI,WAAW;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,OAA2C;QAClE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,OAA2C;QACjD,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAkC;QAC7C,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;QACxC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;QAExC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,KAAK,CAAC;QACf,CAAC;QAED,qCAAqC;QACrC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC9C,IAAI,OAAO,EAAE,CAAC;gBACZ,4EAA4E;gBAC5E,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC1C,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ,CAAC;gBAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,UAAU;QACR,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;YACzB,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACvC,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,IAAI,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { escape } from "node:querystring";
2
2
  import { isAddress } from "viem";
3
3
  import { AgentError } from "../core/AgentError.js";
4
- import { LimitedMap } from "../utils/LimitedMap.js";
4
+ import { LimitedMap } from "../util/LimitedMap.js";
5
5
  const cache = new LimitedMap(1000);
6
6
  const fetchFromWeb3Bio = async (name, apiKey) => {
7
7
  const endpoint = `https://api.web3.bio/ns/${escape(name)}`;
@@ -1 +1 @@
1
- {"version":3,"file":"NameResolver.js","sourceRoot":"","sources":["../../src/user/NameResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAwB,IAAI,CAAC,CAAC;AAE1D,MAAM,gBAAgB,GAAG,KAAK,EAC5B,IAAY,EACZ,MAAe,EACwB,EAAE;IACzC,MAAM,QAAQ,GAAG,2BAA2B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3D,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,WAAW,CAAC,GAAG,UAAU,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,KAAK;QACb,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,UAAU,CAClB,IAAI,EACJ,uCAAuC,IAAI,MAAM,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,MAAM,GAAG,CAC5F,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA2C,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACvB,IAAY,EACZ,MAAe,EACS,EAAE;IAC1B,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAE,EAAE;IACpD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC"}
1
+ {"version":3,"file":"NameResolver.js","sourceRoot":"","sources":["../../src/user/NameResolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAwB,IAAI,CAAC,CAAC;AAE1D,MAAM,gBAAgB,GAAG,KAAK,EAC5B,IAAY,EACZ,MAAe,EACwB,EAAE;IACzC,MAAM,QAAQ,GAAG,2BAA2B,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;IAC3D,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,CAAC,WAAW,CAAC,GAAG,UAAU,MAAM,EAAE,CAAC;IAC5C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,KAAK;QACb,OAAO;KACR,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,UAAU,CAClB,IAAI,EACJ,uCAAuC,IAAI,MAAM,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,MAAM,GAAG,CAC5F,CAAC;IACJ,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAA2C,CAAC;AAClE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,KAAK,EACvB,IAAY,EACZ,MAAe,EACS,EAAE;IAC1B,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACtD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IACD,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACzB,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAe,EAAE,EAAE;IACpD,OAAO,CAAC,IAAY,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC,CAAC"}
@@ -0,0 +1,41 @@
1
+ import { RemoteAttachmentCodec, type Attachment, type RemoteAttachment } from "@xmtp/content-type-remote-attachment";
2
+ import type { Agent } from "../core/Agent.js";
3
+ export type EncryptedAttachment = {
4
+ content: Awaited<ReturnType<typeof RemoteAttachmentCodec.encodeEncrypted>>;
5
+ filename: string;
6
+ mimeType: string;
7
+ };
8
+ export type AttachmentUploadCallback = (attachment: EncryptedAttachment) => Promise<string>;
9
+ /**
10
+ * Downloads and decrypts a remote attachment.
11
+ *
12
+ * @param remoteAttachment - The remote attachment metadata containing the downloadd URL and encryption keys
13
+ * @param agent - The agent instance used to lookup the necessary decoding codec
14
+ * @returns A promise that resolves with the decrypted attachment
15
+ */
16
+ export declare function downloadRemoteAttachment<ContentTypes>(remoteAttachment: RemoteAttachment, agent: Agent<ContentTypes>): Promise<Attachment>;
17
+ /**
18
+ * Encrypts an attachment for secure remote storage.
19
+ *
20
+ * @param attachmentData - The attachment to encrypt, including its data, filename, and MIME type
21
+ * @returns A promise that resolves with the encrypted attachment containing the encrypted content and metadata
22
+ */
23
+ export declare function encryptAttachment(attachmentData: Attachment): Promise<EncryptedAttachment>;
24
+ /**
25
+ * Creates a remote attachment object from an encrypted attachment and file URL.
26
+ *
27
+ * @param encryptedAttachment - The encrypted attachment containing encryption keys and metadata
28
+ * @param fileUrl - The URL where the encrypted attachment can be downloaded
29
+ * @returns A remote attachment object with all necessary metadata for retrieval and decryption
30
+ */
31
+ export declare function createRemoteAttachment(encryptedAttachment: EncryptedAttachment, fileUrl: string): RemoteAttachment;
32
+ /**
33
+ * Creates a remote attachment from a file by encrypting it and uploading it to a remote storage.
34
+ * This is a convenience function that combines file processing, encryption, uploading, and
35
+ * remote attachment creation into a single operation.
36
+ *
37
+ * @param unencryptedFile - The unencrypted file to process and upload
38
+ * @param uploadCallback - A callback function that receives the encrypted attachment and returns the URL where it was uploaded
39
+ * @returns A promise that resolves with a remote attachment containing all necessary metadata for retrieval and decryption
40
+ */
41
+ export declare function createRemoteAttachmentFromFile(unencryptedFile: File, uploadCallback: AttachmentUploadCallback): Promise<RemoteAttachment>;
@@ -0,0 +1,67 @@
1
+ import { AttachmentCodec, RemoteAttachmentCodec, } from "@xmtp/content-type-remote-attachment";
2
+ /**
3
+ * Downloads and decrypts a remote attachment.
4
+ *
5
+ * @param remoteAttachment - The remote attachment metadata containing the downloadd URL and encryption keys
6
+ * @param agent - The agent instance used to lookup the necessary decoding codec
7
+ * @returns A promise that resolves with the decrypted attachment
8
+ */
9
+ export function downloadRemoteAttachment(remoteAttachment, agent) {
10
+ return RemoteAttachmentCodec.load(remoteAttachment, agent.client);
11
+ }
12
+ /**
13
+ * Encrypts an attachment for secure remote storage.
14
+ *
15
+ * @param attachmentData - The attachment to encrypt, including its data, filename, and MIME type
16
+ * @returns A promise that resolves with the encrypted attachment containing the encrypted content and metadata
17
+ */
18
+ export async function encryptAttachment(attachmentData) {
19
+ const encryptedAttachment = await RemoteAttachmentCodec.encodeEncrypted(attachmentData, new AttachmentCodec());
20
+ return {
21
+ content: encryptedAttachment,
22
+ filename: attachmentData.filename,
23
+ mimeType: attachmentData.mimeType,
24
+ };
25
+ }
26
+ /**
27
+ * Creates a remote attachment object from an encrypted attachment and file URL.
28
+ *
29
+ * @param encryptedAttachment - The encrypted attachment containing encryption keys and metadata
30
+ * @param fileUrl - The URL where the encrypted attachment can be downloaded
31
+ * @returns A remote attachment object with all necessary metadata for retrieval and decryption
32
+ */
33
+ export function createRemoteAttachment(encryptedAttachment, fileUrl) {
34
+ const url = new URL(fileUrl);
35
+ return {
36
+ url: url.toString(),
37
+ contentDigest: encryptedAttachment.content.digest,
38
+ salt: encryptedAttachment.content.salt,
39
+ nonce: encryptedAttachment.content.nonce,
40
+ secret: encryptedAttachment.content.secret,
41
+ scheme: url.protocol,
42
+ contentLength: encryptedAttachment.content.payload.length,
43
+ filename: encryptedAttachment.filename,
44
+ };
45
+ }
46
+ /**
47
+ * Creates a remote attachment from a file by encrypting it and uploading it to a remote storage.
48
+ * This is a convenience function that combines file processing, encryption, uploading, and
49
+ * remote attachment creation into a single operation.
50
+ *
51
+ * @param unencryptedFile - The unencrypted file to process and upload
52
+ * @param uploadCallback - A callback function that receives the encrypted attachment and returns the URL where it was uploaded
53
+ * @returns A promise that resolves with a remote attachment containing all necessary metadata for retrieval and decryption
54
+ */
55
+ export async function createRemoteAttachmentFromFile(unencryptedFile, uploadCallback) {
56
+ const arrayBuffer = await unencryptedFile.arrayBuffer();
57
+ const attachment = new Uint8Array(arrayBuffer);
58
+ const attachmentData = {
59
+ data: attachment,
60
+ filename: unencryptedFile.name,
61
+ mimeType: unencryptedFile.type,
62
+ };
63
+ const encryptedAttachment = await encryptAttachment(attachmentData);
64
+ const fileUrl = await uploadCallback(encryptedAttachment);
65
+ return createRemoteAttachment(encryptedAttachment, fileUrl);
66
+ }
67
+ //# sourceMappingURL=AttachmentUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AttachmentUtil.js","sourceRoot":"","sources":["../../src/util/AttachmentUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,qBAAqB,GAGtB,MAAM,sCAAsC,CAAC;AAa9C;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,gBAAkC,EAClC,KAA0B;IAE1B,OAAO,qBAAqB,CAAC,IAAI,CAAa,gBAAgB,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;AAChF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,cAA0B;IAE1B,MAAM,mBAAmB,GAAG,MAAM,qBAAqB,CAAC,eAAe,CACrE,cAAc,EACd,IAAI,eAAe,EAAE,CACtB,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,QAAQ,EAAE,cAAc,CAAC,QAAQ;KAClC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CACpC,mBAAwC,EACxC,OAAe;IAEf,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAE7B,OAAO;QACL,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnB,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM;QACjD,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI;QACtC,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK;QACxC,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM;QAC1C,MAAM,EAAE,GAAG,CAAC,QAAQ;QACpB,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;QACzD,QAAQ,EAAE,mBAAmB,CAAC,QAAQ;KACvC,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAClD,eAAqB,EACrB,cAAwC;IAExC,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE,CAAC;IACxD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC;IAE/C,MAAM,cAAc,GAAe;QACjC,IAAI,EAAE,UAAU;QAChB,QAAQ,EAAE,eAAe,CAAC,IAAI;QAC9B,QAAQ,EAAE,eAAe,CAAC,IAAI;KAC/B,CAAC;IAEF,MAAM,mBAAmB,GAAG,MAAM,iBAAiB,CAAC,cAAc,CAAC,CAAC;IAEpE,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC,CAAC;IAE1D,OAAO,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LimitedMap.js","sourceRoot":"","sources":["../../src/util/LimitedMap.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACrB,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IACvB,MAAM,CAAS;IAEf,YAAY,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { GroupUpdated } from "@xmtp/content-type-group-updated";
2
2
  import type { Reaction } from "@xmtp/content-type-reaction";
3
3
  import type { ReadReceipt } from "@xmtp/content-type-read-receipt";
4
- import type { RemoteAttachment } from "@xmtp/content-type-remote-attachment";
4
+ import { type RemoteAttachment } from "@xmtp/content-type-remote-attachment";
5
5
  import type { Reply } from "@xmtp/content-type-reply";
6
6
  import type { TransactionReference } from "@xmtp/content-type-transaction-reference";
7
7
  import type { WalletSendCallsParams } from "@xmtp/content-type-wallet-send-calls";
@@ -23,7 +23,7 @@ export declare const makeAgent: () => {
23
23
  };
24
24
  };
25
25
  };
26
- export declare const mockClient: Client & {
26
+ export declare const makeClient: () => Client & {
27
27
  conversations: {
28
28
  stream: Mock;
29
29
  streamAllMessages: Mock;
@@ -1,3 +1,4 @@
1
+ import { AttachmentCodec, } from "@xmtp/content-type-remote-attachment";
1
2
  import { ContentTypeText } from "@xmtp/content-type-text";
2
3
  import { Agent } from "../core/Agent.js";
3
4
  export const createMockMessage = (overrides) => {
@@ -12,21 +13,30 @@ export const createMockMessage = (overrides) => {
12
13
  };
13
14
  };
14
15
  export const makeAgent = () => {
16
+ const mockClient = makeClient();
15
17
  return { agent: new Agent({ client: mockClient }), mockClient };
16
18
  };
17
- export const mockClient = {
18
- inboxId: "test-inbox-id",
19
- conversations: {
20
- sync: vi.fn().mockResolvedValue(undefined),
21
- stream: vi.fn().mockResolvedValue(undefined),
22
- streamAllMessages: vi.fn(),
23
- getConversationById: vi.fn().mockResolvedValue({
24
- send: vi.fn().mockResolvedValue(undefined),
25
- }),
26
- },
27
- preferences: {
28
- inboxStateFromInboxIds: vi.fn(),
29
- },
19
+ export const makeClient = () => {
20
+ const attachmentCodec = new AttachmentCodec();
21
+ return {
22
+ inboxId: "test-inbox-id",
23
+ codecFor: (contentType) => {
24
+ if (contentType.sameAs(attachmentCodec.contentType)) {
25
+ return attachmentCodec;
26
+ }
27
+ },
28
+ conversations: {
29
+ sync: vi.fn().mockResolvedValue(undefined),
30
+ stream: vi.fn().mockResolvedValue(undefined),
31
+ streamAllMessages: vi.fn(),
32
+ getConversationById: vi.fn().mockResolvedValue({
33
+ send: vi.fn().mockResolvedValue(undefined),
34
+ }),
35
+ },
36
+ preferences: {
37
+ inboxStateFromInboxIds: vi.fn(),
38
+ },
39
+ };
30
40
  };
31
41
  export const createMockStreamWithCallbacks = (messages) => {
32
42
  const mockStream = {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestUtil.js","sourceRoot":"","sources":["../../src/util/TestUtil.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./AttachmentUtil.js";
@@ -0,0 +1,2 @@
1
+ export * from "./AttachmentUtil.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/util/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
package/dist/util.d.ts ADDED
@@ -0,0 +1 @@
1
+ export * from "./util/index.js";
package/dist/util.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./util/index.js";
2
+ //# sourceMappingURL=util.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmtp/agent-sdk",
3
- "version": "1.2.2",
3
+ "version": "1.2.4-dev.f53662f",
4
4
  "description": "XMTP Agent SDK for interacting with XMTP networks",
5
5
  "keywords": [
6
6
  "agents",
@@ -41,19 +41,23 @@
41
41
  "./user": {
42
42
  "types": "./dist/user.d.ts",
43
43
  "import": "./dist/user.js"
44
+ },
45
+ "./util": {
46
+ "types": "./dist/util.d.ts",
47
+ "import": "./dist/util.js"
44
48
  }
45
49
  },
46
50
  "main": "dist/index.js",
47
51
  "files": [
48
52
  "dist",
49
- "!dist/**/*.test.*"
53
+ "!dist/**/*.test.*",
54
+ "!dist/demo.*"
50
55
  ],
51
56
  "scripts": {
52
57
  "build": "yarn clean:dist && tsc -p tsconfig.build.json && tsc-alias && attw --pack --profile node16 . --ignore-rules cjs-resolves-to-esm",
53
58
  "clean": "rm -rf .turbo && rm -rf node_modules && yarn clean:dist",
54
59
  "clean:dist": "rm -rf dist",
55
- "demo": "tsx src/demo.ts",
56
- "dev": "tsx --watch src/main.ts",
60
+ "dev": "tsx watch src/demo.ts",
57
61
  "fix": "npx prettier --log-level error -w . && npx eslint . --fix",
58
62
  "gen:keys": "tsx src/bin/generateKeys.ts",
59
63
  "start": "yarn demo",
@@ -65,12 +69,12 @@
65
69
  "@xmtp/content-type-markdown": "^1.0.0",
66
70
  "@xmtp/content-type-reaction": "^2.0.2",
67
71
  "@xmtp/content-type-read-receipt": "^2.0.2",
68
- "@xmtp/content-type-remote-attachment": "^2.0.2",
72
+ "@xmtp/content-type-remote-attachment": "^2.0.4",
69
73
  "@xmtp/content-type-reply": "^2.0.2",
70
74
  "@xmtp/content-type-text": "^2.0.2",
71
75
  "@xmtp/content-type-transaction-reference": "^2.0.2",
72
76
  "@xmtp/content-type-wallet-send-calls": "^2.0.0",
73
- "@xmtp/node-sdk": "4.6.0",
77
+ "@xmtp/node-sdk": "4.6.0-dev.02e173d",
74
78
  "viem": "^2.37.6"
75
79
  },
76
80
  "devDependencies": {
@@ -91,5 +95,6 @@
91
95
  "access": "public",
92
96
  "provenance": false,
93
97
  "registry": "https://registry.npmjs.org/"
94
- }
98
+ },
99
+ "stableVersion": "1.2.4-dev"
95
100
  }
package/dist/demo.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/dist/demo.js DELETED
@@ -1,86 +0,0 @@
1
- import { loadEnvFile } from "node:process";
2
- import { TextCodec } from "@xmtp/content-type-text";
3
- import { Agent, AgentError } from "./core/index.js";
4
- import { getTestUrl, logDetails } from "./debug/log.js";
5
- import { isHexString } from "./index.js";
6
- import { CommandRouter } from "./middleware/CommandRouter.js";
7
- import { createNameResolver } from "./user.js";
8
- import { createSigner, createUser } from "./user/User.js";
9
- try {
10
- loadEnvFile(".env");
11
- console.info(`Loaded keys from ".env" file.`);
12
- }
13
- catch { }
14
- const agent = process.env.XMTP_WALLET_KEY
15
- ? await Agent.createFromEnv()
16
- : await Agent.create(createSigner(createUser()), {
17
- dbPath: null,
18
- });
19
- const router = new CommandRouter();
20
- router.command("/version", async (ctx) => {
21
- await ctx.conversation.send(`v${process.env.npm_package_version}`);
22
- });
23
- agent.use(router.middleware());
24
- agent.on("attachment", (ctx) => {
25
- console.log("Got attachment:", ctx.message.content);
26
- });
27
- agent.on("text", (ctx) => {
28
- console.log("Got text:", ctx.message.content);
29
- });
30
- agent.on("reaction", (ctx) => {
31
- console.log("Got reaction:", ctx.message.content);
32
- });
33
- agent.on("reply", (ctx) => {
34
- console.log("Got reply:", ctx.message.content);
35
- });
36
- agent.on("text", async (ctx) => {
37
- if (ctx.message.content.startsWith("@agent")) {
38
- await ctx.conversation.send("How can I help you?");
39
- }
40
- });
41
- agent.on("transaction-reference", (ctx) => {
42
- const { networkId, reference } = ctx.message.content;
43
- if (!isHexString(reference)) {
44
- console.warn(`Invalid transaction ID: ${reference}`);
45
- }
46
- console.log(`Transaction "${reference}" on network "${networkId}".`);
47
- });
48
- agent.on("wallet-send-calls", (ctx) => {
49
- const { chainId, calls } = ctx.message.content;
50
- console.log(`Wallet request for "${calls.length}" calls on chain "${chainId}".`);
51
- });
52
- agent.on("read-receipt", (ctx) => {
53
- console.log(`Message ID "${ctx.message.id}" was read.`);
54
- });
55
- const errorHandler = (error) => {
56
- if (error instanceof AgentError) {
57
- console.log(`Caught error ID "${error.code}"`, error);
58
- console.log("Original error", error.cause);
59
- }
60
- else {
61
- console.log(`Caught error`, error);
62
- }
63
- };
64
- agent.on("unhandledError", errorHandler);
65
- agent.on("start", (ctx) => {
66
- console.log(`We are online: ${getTestUrl(ctx.client)}`);
67
- });
68
- agent.on("stop", (ctx) => {
69
- console.log("Agent stopped", ctx);
70
- });
71
- agent.on("unknownMessage", (ctx) => {
72
- // Narrow down by codec
73
- if (ctx.usesCodec(TextCodec)) {
74
- const content = ctx.message.content;
75
- console.log(`Text content: ${content.toUpperCase()}`);
76
- }
77
- });
78
- agent.on("group", async (ctx) => {
79
- await ctx.sendMarkdown("**Hello, World!**");
80
- });
81
- await agent.start();
82
- console.log("Agent has started.");
83
- await logDetails(agent);
84
- const resolveName = createNameResolver(process.env.WEB3BIO_API_KEY);
85
- console.log(await resolveName("vitalik.eth"));
86
- //# sourceMappingURL=demo.js.map
package/dist/demo.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"LimitedMap.js","sourceRoot":"","sources":["../../src/utils/LimitedMap.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACrB,IAAI,GAAG,IAAI,GAAG,EAAQ,CAAC;IACvB,MAAM,CAAS;IAEf,YAAY,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;IACtB,CAAC;IAED,GAAG,CAAC,GAAM,EAAE,KAAQ;QAClB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;gBACb,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,CAAC,GAAM;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"TestUtil.js","sourceRoot":"","sources":["../../src/utils/TestUtil.ts"],"names":[],"mappings":"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"}
File without changes
File without changes