@xmtp/agent-sdk 2.0.0-rc1 → 2.0.0-rc2
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 +8 -15
- package/dist/index.d.ts +234 -4
- package/dist/index.js +871 -5
- package/dist/index.js.map +1 -1
- package/package.json +19 -26
- package/dist/bin/generateKeys.d.ts +0 -2
- package/dist/bin/generateKeys.js +0 -44
- package/dist/bin/generateKeys.js.map +0 -1
- package/dist/core/Agent.d.ts +0 -84
- package/dist/core/Agent.js +0 -394
- package/dist/core/Agent.js.map +0 -1
- package/dist/core/AgentError.d.ts +0 -7
- package/dist/core/AgentError.js +0 -13
- package/dist/core/AgentError.js.map +0 -1
- package/dist/core/ClientContext.d.ts +0 -9
- package/dist/core/ClientContext.js +0 -13
- package/dist/core/ClientContext.js.map +0 -1
- package/dist/core/ConversationContext.d.ts +0 -19
- package/dist/core/ConversationContext.js +0 -43
- package/dist/core/ConversationContext.js.map +0 -1
- package/dist/core/MessageContext.d.ts +0 -33
- package/dist/core/MessageContext.js +0 -75
- package/dist/core/MessageContext.js.map +0 -1
- package/dist/core/filter.d.ts +0 -84
- package/dist/core/filter.js +0 -88
- package/dist/core/filter.js.map +0 -1
- package/dist/core/index.d.ts +0 -6
- package/dist/core/index.js +0 -7
- package/dist/core/index.js.map +0 -1
- package/dist/debug/index.d.ts +0 -1
- package/dist/debug/index.js +0 -2
- package/dist/debug/index.js.map +0 -1
- package/dist/debug/log.d.ts +0 -18
- package/dist/debug/log.js +0 -80
- package/dist/debug/log.js.map +0 -1
- package/dist/debug.d.ts +0 -1
- package/dist/debug.js +0 -2
- package/dist/debug.js.map +0 -1
- package/dist/middleware/CommandRouter.d.ts +0 -14
- package/dist/middleware/CommandRouter.js +0 -57
- package/dist/middleware/CommandRouter.js.map +0 -1
- package/dist/middleware/index.d.ts +0 -1
- package/dist/middleware/index.js +0 -2
- package/dist/middleware/index.js.map +0 -1
- package/dist/middleware.d.ts +0 -1
- package/dist/middleware.js +0 -2
- package/dist/middleware.js.map +0 -1
- package/dist/user/NameResolver.d.ts +0 -1
- package/dist/user/NameResolver.js +0 -45
- package/dist/user/NameResolver.js.map +0 -1
- package/dist/user/User.d.ts +0 -10
- package/dist/user/User.js +0 -35
- package/dist/user/User.js.map +0 -1
- package/dist/user/index.d.ts +0 -2
- package/dist/user/index.js +0 -3
- package/dist/user/index.js.map +0 -1
- package/dist/user.d.ts +0 -1
- package/dist/user.js +0 -2
- package/dist/user.js.map +0 -1
- package/dist/util/AttachmentUtil.d.ts +0 -41
- package/dist/util/AttachmentUtil.js +0 -67
- package/dist/util/AttachmentUtil.js.map +0 -1
- package/dist/util/LimitedMap.d.ts +0 -6
- package/dist/util/LimitedMap.js +0 -20
- package/dist/util/LimitedMap.js.map +0 -1
- package/dist/util/TestUtil.d.ts +0 -35
- package/dist/util/TestUtil.js +0 -83
- package/dist/util/TestUtil.js.map +0 -1
- package/dist/util/index.d.ts +0 -1
- package/dist/util/index.js +0 -2
- package/dist/util/index.js.map +0 -1
- package/dist/util.d.ts +0 -1
- package/dist/util.js +0 -2
- package/dist/util.js.map +0 -1
package/README.md
CHANGED
|
@@ -23,9 +23,7 @@ yarn add @xmtp/agent-sdk
|
|
|
23
23
|
## Quick Start
|
|
24
24
|
|
|
25
25
|
```ts
|
|
26
|
-
import { Agent } from "@xmtp/agent-sdk";
|
|
27
|
-
import { getTestUrl } from "@xmtp/agent-sdk/debug";
|
|
28
|
-
import { createUser, createSigner } from "@xmtp/agent-sdk/user";
|
|
26
|
+
import { Agent, createUser, createSigner, getTestUrl } from "@xmtp/agent-sdk";
|
|
29
27
|
|
|
30
28
|
// 1. Create a local user + signer (you can plug in your own wallet signer)
|
|
31
29
|
const user = createUser();
|
|
@@ -237,15 +235,14 @@ agent.on("unhandledError", (error) => {
|
|
|
237
235
|
|
|
238
236
|
#### Provided Middleware
|
|
239
237
|
|
|
240
|
-
Built‑in, officially supported middleware is provided
|
|
238
|
+
Built‑in, officially supported middleware is provided by the Agent SDK.
|
|
241
239
|
|
|
242
240
|
**Example: CommandRouter**
|
|
243
241
|
|
|
244
242
|
The `CommandRouter` makes it easy to handle slash commands out of the box.
|
|
245
243
|
|
|
246
244
|
```ts
|
|
247
|
-
import { Agent } from "@xmtp/agent-sdk";
|
|
248
|
-
import { CommandRouter } from "@xmtp/agent-sdk/middleware";
|
|
245
|
+
import { Agent, CommandRouter } from "@xmtp/agent-sdk";
|
|
249
246
|
|
|
250
247
|
const agent = await Agent.createFromEnv();
|
|
251
248
|
const router = new CommandRouter()
|
|
@@ -346,10 +343,10 @@ await group.send("Hello group!");
|
|
|
346
343
|
|
|
347
344
|
### 6. Utilities
|
|
348
345
|
|
|
349
|
-
The Agent SDK
|
|
346
|
+
The Agent SDK includes various utilities. You can for example get a testing URL or details of your Agent:
|
|
350
347
|
|
|
351
348
|
```ts
|
|
352
|
-
import { getTestUrl, logDetails } from "@xmtp/agent-sdk
|
|
349
|
+
import { getTestUrl, logDetails } from "@xmtp/agent-sdk";
|
|
353
350
|
|
|
354
351
|
// Get a test URL for your agent
|
|
355
352
|
const testUrl = getTestUrl(agent.client);
|
|
@@ -362,11 +359,7 @@ await logDetails(agent.client);
|
|
|
362
359
|
There are also utilities to simplify user management, such as signer creation or name resolutions:
|
|
363
360
|
|
|
364
361
|
```ts
|
|
365
|
-
import {
|
|
366
|
-
createUser,
|
|
367
|
-
createSigner,
|
|
368
|
-
createNameResolver,
|
|
369
|
-
} from "@xmtp/agent-sdk/user";
|
|
362
|
+
import { createUser, createSigner, createNameResolver } from "@xmtp/agent-sdk";
|
|
370
363
|
|
|
371
364
|
// Create a new user with a random private key
|
|
372
365
|
const user = createUser();
|
|
@@ -387,7 +380,7 @@ The Agent SDK supports sending encrypted remote attachments. Files are encrypted
|
|
|
387
380
|
**Example**
|
|
388
381
|
|
|
389
382
|
```ts
|
|
390
|
-
import { type AttachmentUploadCallback } from "@xmtp/agent-sdk
|
|
383
|
+
import { type AttachmentUploadCallback } from "@xmtp/agent-sdk";
|
|
391
384
|
|
|
392
385
|
agent.on("text", async (ctx) => {
|
|
393
386
|
if (ctx.message.content === "/send-file") {
|
|
@@ -429,7 +422,7 @@ agent.on("text", async (ctx) => {
|
|
|
429
422
|
Other agents can then download and decrypt the attachment using the `"attachment"` topic:
|
|
430
423
|
|
|
431
424
|
```ts
|
|
432
|
-
import { downloadRemoteAttachment } from "@xmtp/agent-sdk
|
|
425
|
+
import { downloadRemoteAttachment } from "@xmtp/agent-sdk";
|
|
433
426
|
|
|
434
427
|
agent.on("attachment", async (ctx) => {
|
|
435
428
|
const receivedAttachment = await downloadRemoteAttachment(
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,234 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
|
|
1
|
+
import * as _xmtp_node_sdk from '@xmtp/node-sdk';
|
|
2
|
+
import { Client, EncryptedAttachment, RemoteAttachment, Attachment, Conversation, Dm, Group, DecodedMessage, GroupUpdated, Reaction, ReadReceipt, EnrichedReply, TransactionReference, WalletSendCalls, Reply, StreamOptions, ClientOptions, HexString, CreateDmOptions, CreateGroupOptions, BuiltInContentTypes, Identifier, Signer } from '@xmtp/node-sdk';
|
|
3
|
+
export * from '@xmtp/node-sdk';
|
|
4
|
+
import EventEmitter from 'node:events';
|
|
5
|
+
import { ContentCodec } from '@xmtp/content-type-primitives';
|
|
6
|
+
import { Hex, PrivateKeyAccount, WalletClient, Chain } from 'viem';
|
|
7
|
+
|
|
8
|
+
declare class ClientContext<ContentTypes = unknown> {
|
|
9
|
+
#private;
|
|
10
|
+
constructor({ client }: {
|
|
11
|
+
client: Client<ContentTypes>;
|
|
12
|
+
});
|
|
13
|
+
getClientAddress(): string | undefined;
|
|
14
|
+
get client(): Client<ContentTypes>;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
type AttachmentUploadCallback = (attachment: EncryptedAttachment) => Promise<string>;
|
|
18
|
+
/**
|
|
19
|
+
* Downloads and decrypts a remote attachment.
|
|
20
|
+
*
|
|
21
|
+
* @param remoteAttachment - The remote attachment metadata containing the downloadd URL and encryption keys
|
|
22
|
+
* @param agent - The agent instance used to lookup the necessary decoding codec
|
|
23
|
+
* @returns A promise that resolves with the decrypted attachment
|
|
24
|
+
*/
|
|
25
|
+
declare function downloadRemoteAttachment(remoteAttachment: RemoteAttachment): Promise<Attachment>;
|
|
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
|
+
declare class ConversationContext<ContentTypes = unknown, ConversationType extends Conversation = Conversation> extends ClientContext<ContentTypes> {
|
|
46
|
+
#private;
|
|
47
|
+
constructor({ conversation, client, }: {
|
|
48
|
+
conversation: ConversationType;
|
|
49
|
+
client: Client<ContentTypes>;
|
|
50
|
+
});
|
|
51
|
+
isDm(): this is ConversationContext<ContentTypes, Dm<ContentTypes>>;
|
|
52
|
+
isGroup(): this is ConversationContext<ContentTypes, Group<ContentTypes>>;
|
|
53
|
+
sendRemoteAttachment(unencryptedFile: File, uploadCallback: AttachmentUploadCallback): Promise<void>;
|
|
54
|
+
get conversation(): ConversationType;
|
|
55
|
+
get isAllowed(): boolean;
|
|
56
|
+
get isDenied(): boolean;
|
|
57
|
+
get isUnknown(): boolean;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
type DecodedMessageWithContent<ContentTypes = unknown> = DecodedMessage<ContentTypes> & {
|
|
61
|
+
content: ContentTypes;
|
|
62
|
+
};
|
|
63
|
+
declare const filter: {
|
|
64
|
+
fromSelf: <ContentTypes>(message: DecodedMessage<ContentTypes>, client: Client<ContentTypes>) => boolean;
|
|
65
|
+
hasContent: <ContentTypes>(message: DecodedMessage<ContentTypes>) => message is DecodedMessageWithContent<ContentTypes>;
|
|
66
|
+
isDM: (conversation: Conversation) => conversation is Dm;
|
|
67
|
+
isGroup: (conversation: Conversation) => conversation is Group;
|
|
68
|
+
isGroupAdmin: (conversation: Conversation, message: DecodedMessage) => boolean;
|
|
69
|
+
isGroupSuperAdmin: (conversation: Conversation, message: DecodedMessage) => boolean;
|
|
70
|
+
isGroupUpdate: (message: DecodedMessage) => message is DecodedMessageWithContent<GroupUpdated>;
|
|
71
|
+
isMarkdown: (message: DecodedMessage) => message is DecodedMessageWithContent<string>;
|
|
72
|
+
isReaction: (message: DecodedMessage) => message is DecodedMessageWithContent<Reaction>;
|
|
73
|
+
isReadReceipt: (message: DecodedMessage) => message is DecodedMessageWithContent<ReadReceipt>;
|
|
74
|
+
isRemoteAttachment: (message: DecodedMessage) => message is DecodedMessageWithContent<RemoteAttachment>;
|
|
75
|
+
isReply: (message: DecodedMessage) => message is DecodedMessageWithContent<EnrichedReply>;
|
|
76
|
+
isText: (message: DecodedMessage) => message is DecodedMessageWithContent<string>;
|
|
77
|
+
isTextReply: (message: DecodedMessage) => message is DecodedMessageWithContent<EnrichedReply<string>>;
|
|
78
|
+
isTransactionReference: (message: DecodedMessage) => message is DecodedMessageWithContent<TransactionReference>;
|
|
79
|
+
isWalletSendCalls: (message: DecodedMessage) => message is DecodedMessageWithContent<WalletSendCalls>;
|
|
80
|
+
usesCodec: <T extends ContentCodec>(message: DecodedMessage, codecClass: new () => T) => message is DecodedMessageWithContent<ReturnType<T["decode"]>>;
|
|
81
|
+
};
|
|
82
|
+
declare const f: {
|
|
83
|
+
fromSelf: <ContentTypes>(message: DecodedMessage<ContentTypes>, client: Client<ContentTypes>) => boolean;
|
|
84
|
+
hasContent: <ContentTypes>(message: DecodedMessage<ContentTypes>) => message is DecodedMessageWithContent<ContentTypes>;
|
|
85
|
+
isDM: (conversation: Conversation) => conversation is Dm;
|
|
86
|
+
isGroup: (conversation: Conversation) => conversation is Group;
|
|
87
|
+
isGroupAdmin: (conversation: Conversation, message: DecodedMessage) => boolean;
|
|
88
|
+
isGroupSuperAdmin: (conversation: Conversation, message: DecodedMessage) => boolean;
|
|
89
|
+
isGroupUpdate: (message: DecodedMessage) => message is DecodedMessageWithContent<GroupUpdated>;
|
|
90
|
+
isMarkdown: (message: DecodedMessage) => message is DecodedMessageWithContent<string>;
|
|
91
|
+
isReaction: (message: DecodedMessage) => message is DecodedMessageWithContent<Reaction>;
|
|
92
|
+
isReadReceipt: (message: DecodedMessage) => message is DecodedMessageWithContent<ReadReceipt>;
|
|
93
|
+
isRemoteAttachment: (message: DecodedMessage) => message is DecodedMessageWithContent<RemoteAttachment>;
|
|
94
|
+
isReply: (message: DecodedMessage) => message is DecodedMessageWithContent<EnrichedReply>;
|
|
95
|
+
isText: (message: DecodedMessage) => message is DecodedMessageWithContent<string>;
|
|
96
|
+
isTextReply: (message: DecodedMessage) => message is DecodedMessageWithContent<EnrichedReply<string>>;
|
|
97
|
+
isTransactionReference: (message: DecodedMessage) => message is DecodedMessageWithContent<TransactionReference>;
|
|
98
|
+
isWalletSendCalls: (message: DecodedMessage) => message is DecodedMessageWithContent<WalletSendCalls>;
|
|
99
|
+
usesCodec: <T extends ContentCodec>(message: DecodedMessage, codecClass: new () => T) => message is DecodedMessageWithContent<ReturnType<T["decode"]>>;
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
type MessageContextParams<MessageContentType = unknown, ContentTypes = unknown> = Omit<AgentBaseContext<ContentTypes>, "message"> & {
|
|
103
|
+
message: DecodedMessageWithContent<MessageContentType>;
|
|
104
|
+
};
|
|
105
|
+
declare class MessageContext<MessageContentType = unknown, ContentTypes = unknown> extends ConversationContext<ContentTypes> {
|
|
106
|
+
#private;
|
|
107
|
+
constructor({ message, conversation, client, }: MessageContextParams<MessageContentType, ContentTypes>);
|
|
108
|
+
usesCodec<T extends ContentCodec>(codecClass: new () => T): this is MessageContext<ReturnType<T["decode"]>>;
|
|
109
|
+
isMarkdown(): this is MessageContext<string>;
|
|
110
|
+
isText(): this is MessageContext<string>;
|
|
111
|
+
isReply(): this is MessageContext<Reply>;
|
|
112
|
+
isReaction(): this is MessageContext<Reaction>;
|
|
113
|
+
isReadReceipt(): this is MessageContext<ReadReceipt>;
|
|
114
|
+
isRemoteAttachment(): this is MessageContext<RemoteAttachment>;
|
|
115
|
+
isTransactionReference(): this is MessageContext<TransactionReference>;
|
|
116
|
+
isWalletSendCalls(): this is MessageContext<WalletSendCalls>;
|
|
117
|
+
sendReaction(content: string, schema?: Reaction["schema"]): Promise<void>;
|
|
118
|
+
sendMarkdownReply(markdown: string): Promise<void>;
|
|
119
|
+
sendTextReply(text: string): Promise<void>;
|
|
120
|
+
getSenderAddress(): Promise<string | undefined>;
|
|
121
|
+
get message(): DecodedMessageWithContent<MessageContentType>;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
type EventHandlerMap<ContentTypes> = {
|
|
125
|
+
attachment: [ctx: MessageContext<RemoteAttachment, ContentTypes>];
|
|
126
|
+
conversation: [ctx: ConversationContext<ContentTypes>];
|
|
127
|
+
"group-update": [ctx: MessageContext<GroupUpdated, ContentTypes>];
|
|
128
|
+
dm: [ctx: ConversationContext<ContentTypes, Dm<ContentTypes>>];
|
|
129
|
+
group: [ctx: ConversationContext<ContentTypes, Group<ContentTypes>>];
|
|
130
|
+
markdown: [ctx: MessageContext<string, ContentTypes>];
|
|
131
|
+
message: [ctx: MessageContext<unknown, ContentTypes>];
|
|
132
|
+
reaction: [ctx: MessageContext<Reaction, ContentTypes>];
|
|
133
|
+
"read-receipt": [ctx: MessageContext<ReadReceipt, ContentTypes>];
|
|
134
|
+
reply: [ctx: MessageContext<Reply, ContentTypes>];
|
|
135
|
+
start: [ctx: ClientContext<ContentTypes>];
|
|
136
|
+
stop: [ctx: ClientContext<ContentTypes>];
|
|
137
|
+
text: [ctx: MessageContext<string, ContentTypes>];
|
|
138
|
+
"transaction-reference": [
|
|
139
|
+
ctx: MessageContext<TransactionReference, ContentTypes>
|
|
140
|
+
];
|
|
141
|
+
unhandledError: [error: Error];
|
|
142
|
+
unknownMessage: [ctx: MessageContext<unknown, ContentTypes>];
|
|
143
|
+
"wallet-send-calls": [ctx: MessageContext<WalletSendCalls, ContentTypes>];
|
|
144
|
+
};
|
|
145
|
+
type EthAddress = HexString;
|
|
146
|
+
type AgentBaseContext<ContentTypes = unknown> = {
|
|
147
|
+
client: Client<ContentTypes>;
|
|
148
|
+
conversation: Conversation;
|
|
149
|
+
message: DecodedMessage;
|
|
150
|
+
};
|
|
151
|
+
type AgentErrorContext<ContentTypes = unknown> = Partial<AgentBaseContext<ContentTypes>> & {
|
|
152
|
+
client: Client<ContentTypes>;
|
|
153
|
+
};
|
|
154
|
+
type AgentOptions<ContentTypes> = {
|
|
155
|
+
client: Client<ContentTypes>;
|
|
156
|
+
};
|
|
157
|
+
type AgentMessageHandler<ContentTypes = unknown> = (ctx: MessageContext<ContentTypes>) => Promise<void> | void;
|
|
158
|
+
type AgentMiddleware<ContentTypes = unknown> = (ctx: MessageContext<unknown, ContentTypes>, next: () => Promise<void> | void) => Promise<void>;
|
|
159
|
+
type AgentErrorMiddleware<ContentTypes = unknown> = (error: unknown, ctx: AgentErrorContext<ContentTypes>, next: (err?: unknown) => Promise<void> | void) => Promise<void> | void;
|
|
160
|
+
type AgentStreamingOptions = Omit<StreamOptions, "onValue" | "onError">;
|
|
161
|
+
type StreamAllMessagesOptions<ContentTypes> = Parameters<Client<ContentTypes>["conversations"]["streamAllMessages"]>[0];
|
|
162
|
+
type AgentErrorRegistrar<ContentTypes> = {
|
|
163
|
+
use(...errorMiddleware: Array<AgentErrorMiddleware<ContentTypes> | AgentErrorMiddleware<ContentTypes>[]>): AgentErrorRegistrar<ContentTypes>;
|
|
164
|
+
};
|
|
165
|
+
declare class Agent<ContentTypes = unknown> extends EventEmitter<EventHandlerMap<ContentTypes>> {
|
|
166
|
+
#private;
|
|
167
|
+
constructor({ client }: AgentOptions<ContentTypes>);
|
|
168
|
+
static create<ContentCodecs extends ContentCodec[] = []>(signer: Parameters<typeof Client.create>[0], options?: Omit<ClientOptions, "codecs"> & {
|
|
169
|
+
codecs?: ContentCodecs;
|
|
170
|
+
}): Promise<Agent<_xmtp_node_sdk.ExtractCodecContentTypes<ContentCodecs>>>;
|
|
171
|
+
static createFromEnv<ContentCodecs extends ContentCodec[] = []>(options?: Omit<ClientOptions, "codecs"> & {
|
|
172
|
+
codecs?: ContentCodecs;
|
|
173
|
+
}): Promise<Agent<_xmtp_node_sdk.ExtractCodecContentTypes<ContentCodecs>>>;
|
|
174
|
+
get libxmtpVersion(): string | undefined;
|
|
175
|
+
use(...middleware: Array<AgentMiddleware<ContentTypes> | AgentMiddleware<ContentTypes>[]>): this;
|
|
176
|
+
start(options?: AgentStreamingOptions): Promise<void>;
|
|
177
|
+
get client(): Client<ContentTypes>;
|
|
178
|
+
get errors(): AgentErrorRegistrar<ContentTypes>;
|
|
179
|
+
stop(): Promise<void>;
|
|
180
|
+
createDmWithAddress(address: EthAddress, options?: CreateDmOptions): Promise<Dm<ContentTypes>>;
|
|
181
|
+
createGroupWithAddresses(addresses: EthAddress[], options?: CreateGroupOptions): Promise<Group<ContentTypes>>;
|
|
182
|
+
addMembersWithAddresses<ContentTypes>(group: Group<ContentTypes>, addresses: EthAddress[]): Promise<void>;
|
|
183
|
+
getConversationContext(conversationId: string): Promise<ConversationContext<ContentTypes, Dm<ContentTypes> | Group<ContentTypes>> | undefined>;
|
|
184
|
+
get address(): string | undefined;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
declare class AgentError extends Error {
|
|
188
|
+
#private;
|
|
189
|
+
constructor(code: number, message: string, cause?: unknown);
|
|
190
|
+
get code(): number;
|
|
191
|
+
}
|
|
192
|
+
declare class AgentStreamingError extends AgentError {
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
declare const logDetails: <ContentTypes>(agent: Agent<ContentTypes>) => Promise<void>;
|
|
196
|
+
/**
|
|
197
|
+
* Returns a URL to test your agent on https://xmtp.chat/ (for development purposes only).
|
|
198
|
+
*
|
|
199
|
+
* @param client - Your XMTP client
|
|
200
|
+
* @returns The URL to test your agent with
|
|
201
|
+
*/
|
|
202
|
+
declare const getTestUrl: <ContentTypes>(client: Client<ContentTypes>) => string;
|
|
203
|
+
type InstallationInfo = {
|
|
204
|
+
totalInstallations: number;
|
|
205
|
+
installationId: string;
|
|
206
|
+
mostRecentInstallationId: null | string;
|
|
207
|
+
isMostRecent: boolean;
|
|
208
|
+
};
|
|
209
|
+
declare const getInstallationInfo: <ContentTypes>(client: Client<ContentTypes>) => Promise<InstallationInfo>;
|
|
210
|
+
|
|
211
|
+
/** Content type supported by the "CommandRouter" */
|
|
212
|
+
type SupportedType = string;
|
|
213
|
+
declare class CommandRouter<ContentTypes = BuiltInContentTypes> {
|
|
214
|
+
#private;
|
|
215
|
+
get commandList(): string[];
|
|
216
|
+
command(command: string, handler: AgentMessageHandler<SupportedType>): this;
|
|
217
|
+
default(handler: AgentMessageHandler<SupportedType>): this;
|
|
218
|
+
handle(ctx: MessageContext<SupportedType>): Promise<boolean>;
|
|
219
|
+
middleware(): AgentMiddleware<ContentTypes>;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
type User = {
|
|
223
|
+
key: Hex;
|
|
224
|
+
account: PrivateKeyAccount;
|
|
225
|
+
wallet: WalletClient;
|
|
226
|
+
};
|
|
227
|
+
declare const createUser: (key?: HexString, chain?: Chain) => User;
|
|
228
|
+
declare const createIdentifier: (user: User) => Identifier;
|
|
229
|
+
declare const createSigner: (user: User) => Signer;
|
|
230
|
+
|
|
231
|
+
declare const createNameResolver: (apiKey?: string) => (name: string) => Promise<string | null>;
|
|
232
|
+
|
|
233
|
+
export { Agent, AgentError, AgentStreamingError, ClientContext, CommandRouter, ConversationContext, MessageContext, createIdentifier, createNameResolver, createRemoteAttachment, createRemoteAttachmentFromFile, createSigner, createUser, downloadRemoteAttachment, f, filter, getInstallationInfo, getTestUrl, logDetails };
|
|
234
|
+
export type { AgentBaseContext, AgentErrorContext, AgentErrorMiddleware, AgentErrorRegistrar, AgentMessageHandler, AgentMiddleware, AgentOptions, AgentStreamingOptions, AttachmentUploadCallback, DecodedMessageWithContent, MessageContextParams, StreamAllMessagesOptions, User };
|