@xmtp/agent-sdk 1.2.4 → 1.2.5-rc1

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.
Files changed (73) hide show
  1. package/dist/debug.d.ts +141 -1
  2. package/dist/debug.js +85 -2
  3. package/dist/debug.js.map +1 -1
  4. package/dist/index.d.ts +176 -4
  5. package/dist/index.js +703 -5
  6. package/dist/index.js.map +1 -1
  7. package/dist/middleware.d.ts +81 -1
  8. package/dist/middleware.js +59 -2
  9. package/dist/middleware.js.map +1 -1
  10. package/dist/user.d.ts +16 -1
  11. package/dist/user.js +111 -2
  12. package/dist/user.js.map +1 -1
  13. package/dist/util.d.ts +46 -1
  14. package/dist/util.js +74 -2
  15. package/dist/util.js.map +1 -1
  16. package/package.json +14 -21
  17. package/dist/bin/generateKeys.d.ts +0 -2
  18. package/dist/bin/generateKeys.js +0 -44
  19. package/dist/bin/generateKeys.js.map +0 -1
  20. package/dist/core/Agent.d.ts +0 -84
  21. package/dist/core/Agent.js +0 -394
  22. package/dist/core/Agent.js.map +0 -1
  23. package/dist/core/AgentError.d.ts +0 -7
  24. package/dist/core/AgentError.js +0 -13
  25. package/dist/core/AgentError.js.map +0 -1
  26. package/dist/core/ClientContext.d.ts +0 -9
  27. package/dist/core/ClientContext.js +0 -13
  28. package/dist/core/ClientContext.js.map +0 -1
  29. package/dist/core/ConversationContext.d.ts +0 -19
  30. package/dist/core/ConversationContext.js +0 -43
  31. package/dist/core/ConversationContext.js.map +0 -1
  32. package/dist/core/MessageContext.d.ts +0 -33
  33. package/dist/core/MessageContext.js +0 -75
  34. package/dist/core/MessageContext.js.map +0 -1
  35. package/dist/core/filter.d.ts +0 -84
  36. package/dist/core/filter.js +0 -88
  37. package/dist/core/filter.js.map +0 -1
  38. package/dist/core/index.d.ts +0 -6
  39. package/dist/core/index.js +0 -7
  40. package/dist/core/index.js.map +0 -1
  41. package/dist/debug/index.d.ts +0 -1
  42. package/dist/debug/index.js +0 -2
  43. package/dist/debug/index.js.map +0 -1
  44. package/dist/debug/log.d.ts +0 -18
  45. package/dist/debug/log.js +0 -80
  46. package/dist/debug/log.js.map +0 -1
  47. package/dist/middleware/CommandRouter.d.ts +0 -14
  48. package/dist/middleware/CommandRouter.js +0 -57
  49. package/dist/middleware/CommandRouter.js.map +0 -1
  50. package/dist/middleware/index.d.ts +0 -1
  51. package/dist/middleware/index.js +0 -2
  52. package/dist/middleware/index.js.map +0 -1
  53. package/dist/user/NameResolver.d.ts +0 -1
  54. package/dist/user/NameResolver.js +0 -45
  55. package/dist/user/NameResolver.js.map +0 -1
  56. package/dist/user/User.d.ts +0 -10
  57. package/dist/user/User.js +0 -35
  58. package/dist/user/User.js.map +0 -1
  59. package/dist/user/index.d.ts +0 -2
  60. package/dist/user/index.js +0 -3
  61. package/dist/user/index.js.map +0 -1
  62. package/dist/util/AttachmentUtil.d.ts +0 -41
  63. package/dist/util/AttachmentUtil.js +0 -67
  64. package/dist/util/AttachmentUtil.js.map +0 -1
  65. package/dist/util/LimitedMap.d.ts +0 -6
  66. package/dist/util/LimitedMap.js +0 -20
  67. package/dist/util/LimitedMap.js.map +0 -1
  68. package/dist/util/TestUtil.d.ts +0 -35
  69. package/dist/util/TestUtil.js +0 -83
  70. package/dist/util/TestUtil.js.map +0 -1
  71. package/dist/util/index.d.ts +0 -1
  72. package/dist/util/index.js +0 -2
  73. package/dist/util/index.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,QAAQ,EACR,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,GACd,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AACvD,YAAY;AACZ,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sources":["../src/core/filter.ts","../src/debug/log.ts","../src/user/User.ts","../src/core/AgentError.ts","../src/core/ClientContext.ts","../src/util/AttachmentUtil.ts","../src/core/ConversationContext.ts","../src/core/MessageContext.ts","../src/core/Agent.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null],"names":["xmtpEncryptAttachment"],"mappings":"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"}
@@ -1 +1,81 @@
1
- export * from "./middleware/index.js";
1
+ import { Client, EncryptedAttachment as EncryptedAttachment$1, Conversation, Dm, Group, DecodedMessage, Reply, Reaction, ReadReceipt, RemoteAttachment, TransactionReference, WalletSendCalls } from '@xmtp/node-sdk';
2
+ import { ContentCodec } from '@xmtp/content-type-primitives';
3
+
4
+ declare class ClientContext<ContentTypes = unknown> {
5
+ #private;
6
+ constructor({ client }: {
7
+ client: Client<ContentTypes>;
8
+ });
9
+ getClientAddress(): string | undefined;
10
+ get client(): Client<ContentTypes>;
11
+ }
12
+
13
+ type EncryptedAttachment = {
14
+ content: EncryptedAttachment$1;
15
+ mimeType: string;
16
+ };
17
+ type AttachmentUploadCallback = (attachment: EncryptedAttachment) => Promise<string>;
18
+
19
+ declare class ConversationContext<ContentTypes = unknown, ConversationType extends Conversation = Conversation> extends ClientContext<ContentTypes> {
20
+ #private;
21
+ constructor({ conversation, client, }: {
22
+ conversation: ConversationType;
23
+ client: Client<ContentTypes>;
24
+ });
25
+ isDm(): this is ConversationContext<ContentTypes, Dm<ContentTypes>>;
26
+ isGroup(): this is ConversationContext<ContentTypes, Group<ContentTypes>>;
27
+ sendMarkdown(markdown: string): Promise<void>;
28
+ sendText(text: string): Promise<void>;
29
+ sendRemoteAttachment(unencryptedFile: File, uploadCallback: AttachmentUploadCallback): Promise<void>;
30
+ get conversation(): ConversationType;
31
+ get isAllowed(): boolean;
32
+ get isDenied(): boolean;
33
+ get isUnknown(): boolean;
34
+ }
35
+
36
+ type DecodedMessageWithContent<ContentTypes = unknown> = DecodedMessage<ContentTypes> & {
37
+ content: ContentTypes;
38
+ };
39
+
40
+ type MessageContextParams<MessageContentType = unknown, ContentTypes = unknown> = Omit<AgentBaseContext<ContentTypes>, "message"> & {
41
+ message: DecodedMessageWithContent<MessageContentType>;
42
+ };
43
+ declare class MessageContext<MessageContentType = unknown, ContentTypes = unknown> extends ConversationContext<ContentTypes> {
44
+ #private;
45
+ constructor({ message, conversation, client, }: MessageContextParams<MessageContentType, ContentTypes>);
46
+ usesCodec<T extends ContentCodec>(codecClass: new () => T): this is MessageContext<ReturnType<T["decode"]>>;
47
+ isMarkdown(): this is MessageContext<string>;
48
+ isText(): this is MessageContext<string>;
49
+ isReply(): this is MessageContext<Reply>;
50
+ isReaction(): this is MessageContext<Reaction>;
51
+ isReadReceipt(): this is MessageContext<ReadReceipt>;
52
+ isRemoteAttachment(): this is MessageContext<RemoteAttachment>;
53
+ isTransactionReference(): this is MessageContext<TransactionReference>;
54
+ isWalletSendCalls(): this is MessageContext<WalletSendCalls>;
55
+ sendReaction(content: string, schema?: Reaction["schema"]): Promise<void>;
56
+ sendMarkdownReply(markdown: string): Promise<void>;
57
+ sendTextReply(text: string): Promise<void>;
58
+ getSenderAddress(): Promise<string | undefined>;
59
+ get message(): DecodedMessageWithContent<MessageContentType>;
60
+ }
61
+
62
+ type AgentBaseContext<ContentTypes = unknown> = {
63
+ client: Client<ContentTypes>;
64
+ conversation: Conversation;
65
+ message: DecodedMessage;
66
+ };
67
+ type AgentMessageHandler<ContentTypes = unknown> = (ctx: MessageContext<ContentTypes>) => Promise<void> | void;
68
+ type AgentMiddleware<ContentTypes = unknown> = (ctx: MessageContext<unknown, ContentTypes>, next: () => Promise<void> | void) => Promise<void>;
69
+
70
+ /** Content type supported by the "CommandRouter" */
71
+ type SupportedType = string;
72
+ declare class CommandRouter {
73
+ #private;
74
+ get commandList(): string[];
75
+ command(command: string, handler: AgentMessageHandler<SupportedType>): this;
76
+ default(handler: AgentMessageHandler<SupportedType>): this;
77
+ handle(ctx: MessageContext<SupportedType>): Promise<boolean>;
78
+ middleware(): AgentMiddleware;
79
+ }
80
+
81
+ export { CommandRouter };
@@ -1,2 +1,59 @@
1
- export * from "./middleware/index.js";
2
- //# sourceMappingURL=middleware.js.map
1
+ class CommandRouter {
2
+ #commandMap = new Map();
3
+ #defaultHandler = null;
4
+ get commandList() {
5
+ return Array.from(this.#commandMap.keys());
6
+ }
7
+ command(command, handler) {
8
+ if (!command.startsWith("/")) {
9
+ throw new Error('Command must start with "/"');
10
+ }
11
+ this.#commandMap.set(command.toLowerCase(), handler);
12
+ return this;
13
+ }
14
+ default(handler) {
15
+ this.#defaultHandler = handler;
16
+ return this;
17
+ }
18
+ async handle(ctx) {
19
+ const messageText = ctx.message.content;
20
+ const parts = messageText.split(" ");
21
+ const command = parts[0]?.toLowerCase();
22
+ if (!command) {
23
+ return false;
24
+ }
25
+ // Check if this is a command message
26
+ if (command.startsWith("/")) {
27
+ const handler = this.#commandMap.get(command);
28
+ if (handler) {
29
+ // Create a new context with modified content (everything after the command)
30
+ const argsText = parts.slice(1).join(" ");
31
+ ctx.message.content = argsText;
32
+ await handler(ctx);
33
+ return true;
34
+ }
35
+ }
36
+ // If no command matched and there's a default handler, use it
37
+ if (this.#defaultHandler) {
38
+ await this.#defaultHandler(ctx);
39
+ return true;
40
+ }
41
+ return false;
42
+ }
43
+ middleware() {
44
+ return async (ctx, next) => {
45
+ if (ctx.isText()) {
46
+ const handled = await this.handle(ctx);
47
+ if (!handled) {
48
+ await next();
49
+ }
50
+ }
51
+ else {
52
+ await next();
53
+ }
54
+ };
55
+ }
56
+ }
57
+
58
+ export { CommandRouter };
59
+ //# sourceMappingURL=middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
1
+ {"version":3,"file":"middleware.js","sources":["../src/middleware/CommandRouter.ts"],"sourcesContent":[null],"names":[],"mappings":"MAMa,aAAa,CAAA;AACxB,IAAA,WAAW,GAAG,IAAI,GAAG,EAA8C;IACnE,eAAe,GAA8C,IAAI;AAEjE,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;IAC5C;IAEA,OAAO,CAAC,OAAe,EAAE,OAA2C,EAAA;QAClE,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AAC5B,YAAA,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC;QAChD;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC;AACpD,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,OAAO,CAAC,OAA2C,EAAA;AACjD,QAAA,IAAI,CAAC,eAAe,GAAG,OAAO;AAC9B,QAAA,OAAO,IAAI;IACb;IAEA,MAAM,MAAM,CAAC,GAAkC,EAAA;AAC7C,QAAA,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO;QACvC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;QAEvC,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,KAAK;QACd;;AAGA,QAAA,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;YAC7C,IAAI,OAAO,EAAE;;AAEX,gBAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;AACzC,gBAAA,GAAG,CAAC,OAAO,CAAC,OAAO,GAAG,QAAQ;AAC9B,gBAAA,MAAM,OAAO,CAAC,GAAG,CAAC;AAClB,gBAAA,OAAO,IAAI;YACb;QACF;;AAGA,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC;AAC/B,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,KAAK;IACd;IAEA,UAAU,GAAA;AACR,QAAA,OAAO,OAAO,GAAG,EAAE,IAAI,KAAI;AACzB,YAAA,IAAI,GAAG,CAAC,MAAM,EAAE,EAAE;gBAChB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;gBACtC,IAAI,CAAC,OAAO,EAAE;oBACZ,MAAM,IAAI,EAAE;gBACd;YACF;iBAAO;gBACL,MAAM,IAAI,EAAE;YACd;AACF,QAAA,CAAC;IACH;AACD;;;;"}
package/dist/user.d.ts CHANGED
@@ -1 +1,16 @@
1
- export * from "./user/index.js";
1
+ import { HexString, Identifier, Signer } from '@xmtp/node-sdk';
2
+ import { Hex, PrivateKeyAccount, WalletClient, Chain } from 'viem';
3
+
4
+ type User = {
5
+ key: Hex;
6
+ account: PrivateKeyAccount;
7
+ wallet: WalletClient;
8
+ };
9
+ declare const createUser: (key?: HexString, chain?: Chain) => User;
10
+ declare const createIdentifier: (user: User) => Identifier;
11
+ declare const createSigner: (user: User) => Signer;
12
+
13
+ declare const createNameResolver: (apiKey?: string) => (name: string) => Promise<string | null>;
14
+
15
+ export { createIdentifier, createNameResolver, createSigner, createUser };
16
+ export type { User };
package/dist/user.js CHANGED
@@ -1,2 +1,111 @@
1
- export * from "./user/index.js";
2
- //# sourceMappingURL=user.js.map
1
+ import { createWalletClient, http, toBytes, isAddress } from 'viem';
2
+ import { generatePrivateKey, privateKeyToAccount } from 'viem/accounts';
3
+ import { sepolia } from 'viem/chains';
4
+ import { escape } from 'node:querystring';
5
+
6
+ const createUser = (key, chain = sepolia) => {
7
+ const accountKey = key ?? generatePrivateKey();
8
+ const account = privateKeyToAccount(accountKey);
9
+ return {
10
+ key: accountKey,
11
+ account,
12
+ wallet: createWalletClient({
13
+ account,
14
+ chain,
15
+ transport: http(),
16
+ }),
17
+ };
18
+ };
19
+ const createIdentifier = (user) => ({
20
+ identifier: user.account.address.toLowerCase(),
21
+ identifierKind: 0 /* IdentifierKind.Ethereum */,
22
+ });
23
+ const createSigner = (user) => {
24
+ const identifier = createIdentifier(user);
25
+ return {
26
+ type: "EOA",
27
+ getIdentifier: () => identifier,
28
+ signMessage: async (message) => {
29
+ const signature = await user.wallet.signMessage({
30
+ account: user.account,
31
+ message,
32
+ });
33
+ return toBytes(signature);
34
+ },
35
+ };
36
+ };
37
+
38
+ class AgentError extends Error {
39
+ #code;
40
+ constructor(code, message, cause) {
41
+ super(message, { cause });
42
+ this.#code = code;
43
+ }
44
+ get code() {
45
+ return this.#code;
46
+ }
47
+ }
48
+
49
+ class LimitedMap {
50
+ #map = new Map();
51
+ #limit;
52
+ constructor(limit) {
53
+ this.#limit = limit;
54
+ }
55
+ set(key, value) {
56
+ if (this.#map.size >= this.#limit) {
57
+ const it = this.#map.keys().next();
58
+ if (!it.done) {
59
+ this.#map.delete(it.value);
60
+ }
61
+ }
62
+ this.#map.set(key, value);
63
+ }
64
+ get(key) {
65
+ return this.#map.get(key);
66
+ }
67
+ }
68
+
69
+ const cache = new LimitedMap(1000);
70
+ const fetchFromWeb3Bio = async (name, apiKey) => {
71
+ const endpoint = `https://api.web3.bio/ns/${escape(name)}`;
72
+ const headers = {
73
+ "Content-Type": "application/json",
74
+ };
75
+ if (apiKey) {
76
+ headers["X-API-KEY"] = `Bearer ${apiKey}`;
77
+ }
78
+ const response = await fetch(endpoint, {
79
+ method: "GET",
80
+ headers,
81
+ });
82
+ if (!response.ok) {
83
+ throw new AgentError(2000, `Could not resolve address for name "${name}": ${response.statusText} (${response.status})`);
84
+ }
85
+ return response.json();
86
+ };
87
+ const resolveName = async (name, apiKey) => {
88
+ if (isAddress(name)) {
89
+ return name;
90
+ }
91
+ const cachedAddress = cache.get(name);
92
+ if (cachedAddress !== undefined) {
93
+ return cachedAddress;
94
+ }
95
+ const response = await fetchFromWeb3Bio(name, apiKey);
96
+ if (response.length === 0) {
97
+ return null;
98
+ }
99
+ const address = response[0]?.address;
100
+ if (!address) {
101
+ return null;
102
+ }
103
+ cache.set(name, address);
104
+ return address;
105
+ };
106
+ const createNameResolver = (apiKey) => {
107
+ return (name) => resolveName(name, apiKey);
108
+ };
109
+
110
+ export { createIdentifier, createNameResolver, createSigner, createUser };
111
+ //# sourceMappingURL=user.js.map
package/dist/user.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"user.js","sourceRoot":"","sources":["../src/user.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"user.js","sources":["../src/user/User.ts","../src/core/AgentError.ts","../src/util/LimitedMap.ts","../src/user/NameResolver.ts"],"sourcesContent":[null,null,null,null],"names":[],"mappings":"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"}
package/dist/util.d.ts CHANGED
@@ -1 +1,46 @@
1
- export * from "./util/index.js";
1
+ import { EncryptedAttachment as EncryptedAttachment$1, RemoteAttachment, Attachment } from '@xmtp/node-sdk';
2
+
3
+ type EncryptedAttachment = {
4
+ content: EncryptedAttachment$1;
5
+ mimeType: string;
6
+ };
7
+ type AttachmentUploadCallback = (attachment: EncryptedAttachment) => Promise<string>;
8
+ /**
9
+ * Downloads and decrypts a remote attachment.
10
+ *
11
+ * @param remoteAttachment - The remote attachment metadata containing the downloadd URL and encryption keys
12
+ * @param agent - The agent instance used to lookup the necessary decoding codec
13
+ * @returns A promise that resolves with the decrypted attachment
14
+ */
15
+ declare function downloadRemoteAttachment(remoteAttachment: RemoteAttachment): Promise<Attachment>;
16
+ /**
17
+ * Encrypts an attachment for secure remote storage.
18
+ *
19
+ * @param attachmentData - The attachment to encrypt, including its data, filename, and MIME type
20
+ * @returns A promise that resolves with the encrypted attachment containing the encrypted content and metadata
21
+ */
22
+ declare function encryptAttachment(attachmentData: Attachment): {
23
+ content: EncryptedAttachment$1;
24
+ mimeType: string;
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
+ declare function createRemoteAttachment(encryptedAttachment: EncryptedAttachment, fileUrl: string): RemoteAttachment;
34
+ /**
35
+ * Creates a remote attachment from a file by encrypting it and uploading it to a remote storage.
36
+ * This is a convenience function that combines file processing, encryption, uploading, and
37
+ * remote attachment creation into a single operation.
38
+ *
39
+ * @param unencryptedFile - The unencrypted file to process and upload
40
+ * @param uploadCallback - A callback function that receives the encrypted attachment and returns the URL where it was uploaded
41
+ * @returns A promise that resolves with a remote attachment containing all necessary metadata for retrieval and decryption
42
+ */
43
+ declare function createRemoteAttachmentFromFile(unencryptedFile: File, uploadCallback: AttachmentUploadCallback): Promise<RemoteAttachment>;
44
+
45
+ export { createRemoteAttachment, createRemoteAttachmentFromFile, downloadRemoteAttachment, encryptAttachment };
46
+ export type { AttachmentUploadCallback, EncryptedAttachment };
package/dist/util.js CHANGED
@@ -1,2 +1,74 @@
1
- export * from "./util/index.js";
2
- //# sourceMappingURL=util.js.map
1
+ import { decryptAttachment, encryptAttachment as encryptAttachment$1 } from '@xmtp/node-sdk';
2
+
3
+ /**
4
+ * Downloads and decrypts a remote attachment.
5
+ *
6
+ * @param remoteAttachment - The remote attachment metadata containing the downloadd URL and encryption keys
7
+ * @param agent - The agent instance used to lookup the necessary decoding codec
8
+ * @returns A promise that resolves with the decrypted attachment
9
+ */
10
+ async function downloadRemoteAttachment(remoteAttachment) {
11
+ const response = await fetch(remoteAttachment.url);
12
+ if (!response.ok) {
13
+ throw new Error(`unable to fetch remote attachment at "${remoteAttachment.url}": [${response.status}] ${response.statusText}`);
14
+ }
15
+ const payload = new Uint8Array(await response.arrayBuffer());
16
+ return decryptAttachment(payload, remoteAttachment);
17
+ }
18
+ /**
19
+ * Encrypts an attachment for secure remote storage.
20
+ *
21
+ * @param attachmentData - The attachment to encrypt, including its data, filename, and MIME type
22
+ * @returns A promise that resolves with the encrypted attachment containing the encrypted content and metadata
23
+ */
24
+ function encryptAttachment(attachmentData) {
25
+ const encryptedAttachment = encryptAttachment$1(attachmentData);
26
+ return {
27
+ content: encryptedAttachment,
28
+ mimeType: attachmentData.mimeType,
29
+ };
30
+ }
31
+ /**
32
+ * Creates a remote attachment object from an encrypted attachment and file URL.
33
+ *
34
+ * @param encryptedAttachment - The encrypted attachment containing encryption keys and metadata
35
+ * @param fileUrl - The URL where the encrypted attachment can be downloaded
36
+ * @returns A remote attachment object with all necessary metadata for retrieval and decryption
37
+ */
38
+ function createRemoteAttachment(encryptedAttachment, fileUrl) {
39
+ const url = new URL(fileUrl);
40
+ return {
41
+ url: url.toString(),
42
+ contentDigest: encryptedAttachment.content.contentDigest,
43
+ salt: encryptedAttachment.content.salt,
44
+ nonce: encryptedAttachment.content.nonce,
45
+ secret: encryptedAttachment.content.secret,
46
+ scheme: url.protocol,
47
+ contentLength: encryptedAttachment.content.payload.length,
48
+ filename: encryptedAttachment.content.filename,
49
+ };
50
+ }
51
+ /**
52
+ * Creates a remote attachment from a file by encrypting it and uploading it to a remote storage.
53
+ * This is a convenience function that combines file processing, encryption, uploading, and
54
+ * remote attachment creation into a single operation.
55
+ *
56
+ * @param unencryptedFile - The unencrypted file to process and upload
57
+ * @param uploadCallback - A callback function that receives the encrypted attachment and returns the URL where it was uploaded
58
+ * @returns A promise that resolves with a remote attachment containing all necessary metadata for retrieval and decryption
59
+ */
60
+ async function createRemoteAttachmentFromFile(unencryptedFile, uploadCallback) {
61
+ const arrayBuffer = await unencryptedFile.arrayBuffer();
62
+ const attachment = new Uint8Array(arrayBuffer);
63
+ const attachmentData = {
64
+ content: attachment,
65
+ filename: unencryptedFile.name,
66
+ mimeType: unencryptedFile.type,
67
+ };
68
+ const encryptedAttachment = encryptAttachment(attachmentData);
69
+ const fileUrl = await uploadCallback(encryptedAttachment);
70
+ return createRemoteAttachment(encryptedAttachment, fileUrl);
71
+ }
72
+
73
+ export { createRemoteAttachment, createRemoteAttachmentFromFile, downloadRemoteAttachment, encryptAttachment };
74
+ //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
1
+ {"version":3,"file":"util.js","sources":["../src/util/AttachmentUtil.ts"],"sourcesContent":[null],"names":["xmtpEncryptAttachment"],"mappings":";;AAiBA;;;;;;AAMG;AACI,eAAe,wBAAwB,CAC5C,gBAAkC,EAAA;IAElC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC;AAClD,IAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,QAAA,MAAM,IAAI,KAAK,CACb,CAAA,sCAAA,EAAyC,gBAAgB,CAAC,GAAG,CAAA,IAAA,EAAO,QAAQ,CAAC,MAAM,CAAA,EAAA,EAAK,QAAQ,CAAC,UAAU,CAAA,CAAE,CAC9G;IACH;IACA,MAAM,OAAO,GAAG,IAAI,UAAU,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC5D,IAAA,OAAO,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,CAAC;AACrD;AAEA;;;;;AAKG;AACG,SAAU,iBAAiB,CAAC,cAA0B,EAAA;AAC1D,IAAA,MAAM,mBAAmB,GAAGA,mBAAqB,CAAC,cAAc,CAAC;IACjE,OAAO;AACL,QAAA,OAAO,EAAE,mBAAmB;QAC5B,QAAQ,EAAE,cAAc,CAAC,QAAQ;KAClC;AACH;AAEA;;;;;;AAMG;AACG,SAAU,sBAAsB,CACpC,mBAAwC,EACxC,OAAe,EAAA;AAEf,IAAA,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC;IAE5B,OAAO;AACL,QAAA,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE;AACnB,QAAA,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,aAAa;AACxD,QAAA,IAAI,EAAE,mBAAmB,CAAC,OAAO,CAAC,IAAI;AACtC,QAAA,KAAK,EAAE,mBAAmB,CAAC,OAAO,CAAC,KAAK;AACxC,QAAA,MAAM,EAAE,mBAAmB,CAAC,OAAO,CAAC,MAAM;QAC1C,MAAM,EAAE,GAAG,CAAC,QAAQ;AACpB,QAAA,aAAa,EAAE,mBAAmB,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM;AACzD,QAAA,QAAQ,EAAE,mBAAmB,CAAC,OAAO,CAAC,QAAQ;KAC/C;AACH;AAEA;;;;;;;;AAQG;AACI,eAAe,8BAA8B,CAClD,eAAqB,EACrB,cAAwC,EAAA;AAExC,IAAA,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,WAAW,EAAE;AACvD,IAAA,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,WAAW,CAAC;AAE9C,IAAA,MAAM,cAAc,GAAe;AACjC,QAAA,OAAO,EAAE,UAAU;QACnB,QAAQ,EAAE,eAAe,CAAC,IAAI;QAC9B,QAAQ,EAAE,eAAe,CAAC,IAAI;KAC/B;AAED,IAAA,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,cAAc,CAAC;AAE7D,IAAA,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,mBAAmB,CAAC;AAEzD,IAAA,OAAO,sBAAsB,CAAC,mBAAmB,EAAE,OAAO,CAAC;AAC7D;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xmtp/agent-sdk",
3
- "version": "1.2.4",
3
+ "version": "1.2.5-rc1",
4
4
  "description": "XMTP Agent SDK for interacting with XMTP networks",
5
5
  "keywords": [
6
6
  "agents",
@@ -49,12 +49,10 @@
49
49
  },
50
50
  "main": "dist/index.js",
51
51
  "files": [
52
- "dist",
53
- "!dist/**/*.test.*",
54
- "!dist/demo.*"
52
+ "dist"
55
53
  ],
56
54
  "scripts": {
57
- "build": "yarn clean:dist && tsc -p tsconfig.build.json && tsc-alias && attw --pack --profile node16 . --ignore-rules cjs-resolves-to-esm",
55
+ "build": "yarn clean:dist && rollup -c",
58
56
  "clean": "rm -rf .turbo && rm -rf node_modules && yarn clean:dist",
59
57
  "clean:dist": "rm -rf dist",
60
58
  "dev": "tsx watch src/demo.ts",
@@ -66,27 +64,22 @@
66
64
  "typecheck": "tsc --noEmit"
67
65
  },
68
66
  "dependencies": {
69
- "@xmtp/content-type-markdown": "^1.0.0",
70
- "@xmtp/content-type-reaction": "^2.0.2",
71
- "@xmtp/content-type-read-receipt": "^2.0.2",
72
- "@xmtp/content-type-remote-attachment": "^2.0.4",
73
- "@xmtp/content-type-reply": "^2.0.2",
74
- "@xmtp/content-type-text": "^2.0.2",
75
- "@xmtp/content-type-transaction-reference": "^2.0.2",
76
- "@xmtp/content-type-wallet-send-calls": "^2.0.0",
77
- "@xmtp/node-sdk": "4.6.0",
67
+ "@xmtp/content-type-primitives": "^3.0.0",
68
+ "@xmtp/node-sdk": "5.1.1",
78
69
  "viem": "^2.37.6"
79
70
  },
80
71
  "devDependencies": {
81
- "@arethetypeswrong/cli": "^0.18.2",
72
+ "@rollup/plugin-typescript": "^12.3.0",
82
73
  "@types/node": "^24.9.1",
83
- "@vitest/coverage-v8": "^4.0.3",
84
- "tsc-alias": "^1.8.16",
85
- "tsx": "^4.20.6",
74
+ "@vitest/coverage-v8": "^4.0.16",
75
+ "rollup": "^4.55.1",
76
+ "rollup-plugin-dts": "^6.3.0",
77
+ "rollup-plugin-tsconfig-paths": "^1.5.2",
78
+ "tsx": "^4.21.0",
86
79
  "typescript": "^5.9.3",
87
- "vite": "^7.1.12",
88
- "vite-tsconfig-paths": "^5.1.4",
89
- "vitest": "^4.0.3"
80
+ "vite": "^7.3.0",
81
+ "vite-tsconfig-paths": "^6.0.3",
82
+ "vitest": "^4.0.16"
90
83
  },
91
84
  "engines": {
92
85
  "node": ">=22"
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
@@ -1,44 +0,0 @@
1
- #!/usr/bin/env node
2
- import { getRandomValues } from "node:crypto";
3
- import { writeFileSync } from "node:fs";
4
- import { join } from "node:path";
5
- import { generatePrivateKey } from "viem/accounts";
6
- const generateClientKeys = () => {
7
- const randomValues = getRandomValues(new Uint8Array(32));
8
- const dbEncryptionKey = Buffer.from(randomValues).toString("hex");
9
- return {
10
- XMTP_DB_ENCRYPTION_KEY: dbEncryptionKey,
11
- XMTP_WALLET_KEY: generatePrivateKey(),
12
- };
13
- };
14
- /**
15
- * Generates client keys and saves them to a .env file in the project root.
16
- * This script creates the necessary environment variables for XMTP agent initialization.
17
- */
18
- function main() {
19
- try {
20
- // Generate the client keys
21
- const keys = generateClientKeys();
22
- // Create the .env file content
23
- const envContent = Object.entries(keys)
24
- .map(([key, value]) => `${key}=${value}`)
25
- .join("\n") + "\n";
26
- if (!process.env.INIT_CWD) {
27
- throw new Error(`Cannot invoke script because "process.env.INIT_CWD" wasn't found.`);
28
- }
29
- const envFilePath = join(process.env.INIT_CWD, ".env");
30
- writeFileSync(envFilePath, envContent, "utf8");
31
- console.log("✅ Successfully generated client keys and saved to .env file");
32
- console.log(`📁 File location: ${envFilePath}`);
33
- console.log("🔑 Generated keys:");
34
- Object.keys(keys).forEach((key) => {
35
- console.log(` - ${key}`);
36
- });
37
- }
38
- catch (error) {
39
- console.error("❌ Error generating client keys:", error);
40
- process.exit(1);
41
- }
42
- }
43
- main();
44
- //# sourceMappingURL=generateKeys.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"generateKeys.js","sourceRoot":"","sources":["../../src/bin/generateKeys.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACzD,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,OAAO;QACL,sBAAsB,EAAE,eAAe;QACvC,eAAe,EAAE,kBAAkB,EAAE;KACtC,CAAC;AACJ,CAAC,CAAC;AAEF;;;GAGG;AACH,SAAS,IAAI;IACX,IAAI,CAAC;QACH,2BAA2B;QAC3B,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAC;QAElC,+BAA+B;QAC/B,MAAM,UAAU,GACd,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;aACjB,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;QAEvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CACb,mEAAmE,CACpE,CAAC;QACJ,CAAC;QACD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEvD,aAAa,CAAC,WAAW,EAAE,UAAU,EAAE,MAAM,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,6DAA6D,CAAC,CAAC;QAC3E,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,EAAE,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAChC,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,KAAK,CAAC,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}