@xmtp/agent-sdk 0.0.13 β 0.0.15
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 +25 -19
- package/dist/core/Agent.d.ts +4 -5
- package/dist/core/Agent.js +50 -80
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/ConversationContext.d.ts +3 -1
- package/dist/core/ConversationContext.js +9 -4
- package/dist/core/ConversationContext.js.map +1 -1
- package/dist/core/MessageContext.d.ts +2 -1
- package/dist/core/MessageContext.js +3 -0
- package/dist/core/MessageContext.js.map +1 -1
- package/dist/demo.js +2 -7
- package/dist/demo.js.map +1 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -40,7 +40,7 @@ const agent = await Agent.create(signer, {
|
|
|
40
40
|
|
|
41
41
|
// 3. Respond to text messages
|
|
42
42
|
agent.on("text", async (ctx) => {
|
|
43
|
-
await ctx.
|
|
43
|
+
await ctx.sendText("Hello from my XMTP Agent! π");
|
|
44
44
|
});
|
|
45
45
|
|
|
46
46
|
// 4. Log when we're ready
|
|
@@ -87,17 +87,13 @@ Subscribe only to what you need using Nodeβs `EventEmitter` interface. Events
|
|
|
87
87
|
|
|
88
88
|
**Message Events**
|
|
89
89
|
|
|
90
|
-
- `
|
|
90
|
+
- `attachment` β a new incoming remote attachment message
|
|
91
|
+
- `message` β all incoming messages (fires for every message regardless of type)
|
|
91
92
|
- `reaction` β a new incoming reaction message
|
|
92
93
|
- `reply` β a new incoming reply message
|
|
93
|
-
- `
|
|
94
|
+
- `text` β a new incoming text message
|
|
94
95
|
- `unknownMessage` β a message that doesn't match any specific type
|
|
95
96
|
|
|
96
|
-
**Conversation Events**
|
|
97
|
-
|
|
98
|
-
- `dm` β a new DM conversation
|
|
99
|
-
- `group` β a new group conversation
|
|
100
|
-
|
|
101
97
|
**Lifecycle Events**
|
|
102
98
|
|
|
103
99
|
- `start` / `stop` β agent lifecycle events
|
|
@@ -106,7 +102,7 @@ Subscribe only to what you need using Nodeβs `EventEmitter` interface. Events
|
|
|
106
102
|
**Example**
|
|
107
103
|
|
|
108
104
|
```ts
|
|
109
|
-
//
|
|
105
|
+
// Listen to specific message types
|
|
110
106
|
agent.on("text", async (ctx) => {
|
|
111
107
|
console.log(`Text message: ${ctx.message.content}`);
|
|
112
108
|
});
|
|
@@ -119,18 +115,28 @@ agent.on("reply", async (ctx) => {
|
|
|
119
115
|
console.log(`Reply to: ${ctx.message.content.reference}`);
|
|
120
116
|
});
|
|
121
117
|
|
|
122
|
-
//
|
|
123
|
-
agent.on("
|
|
124
|
-
|
|
118
|
+
// Listen to unhandled events
|
|
119
|
+
agent.on("unhandledError", (error) => {
|
|
120
|
+
console.error("Agent error", error);
|
|
125
121
|
});
|
|
126
122
|
|
|
127
|
-
agent.on("
|
|
128
|
-
|
|
123
|
+
agent.on("unknownMessage", (ctx) => {
|
|
124
|
+
console.error("Message type is unknown", ctx);
|
|
129
125
|
});
|
|
126
|
+
```
|
|
130
127
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
128
|
+
> **β οΈ Important:** The `"message"` event fires for **every** incoming message, regardless of type. When using the `"message"` event, always filter message types to prevent infinite loops. Without proper filtering, your agent might respond to its own messages or react to system messages like read receipts.
|
|
129
|
+
|
|
130
|
+
**Best Practice Example**
|
|
131
|
+
|
|
132
|
+
```ts
|
|
133
|
+
import { filter } from "@xmtp/agent-sdk";
|
|
134
|
+
|
|
135
|
+
agent.on("message", async (ctx) => {
|
|
136
|
+
// Filter for specific message types
|
|
137
|
+
if (filter.isText(ctx.message)) {
|
|
138
|
+
await ctx.conversation.send(`Echo: ${ctx.message.content}`);
|
|
139
|
+
}
|
|
134
140
|
});
|
|
135
141
|
```
|
|
136
142
|
|
|
@@ -151,10 +157,10 @@ Middleware functions receive a `ctx` (context) object and a `next` function. Nor
|
|
|
151
157
|
**Example**
|
|
152
158
|
|
|
153
159
|
```ts
|
|
154
|
-
import { Agent, AgentMiddleware } from "@xmtp/agent-sdk";
|
|
160
|
+
import { Agent, AgentMiddleware, filter } from "@xmtp/agent-sdk";
|
|
155
161
|
|
|
156
162
|
const onlyText: AgentMiddleware = async (ctx, next) => {
|
|
157
|
-
if (
|
|
163
|
+
if (filter.isText(ctx.message)) {
|
|
158
164
|
// Continue to next middleware
|
|
159
165
|
await next();
|
|
160
166
|
}
|
package/dist/core/Agent.d.ts
CHANGED
|
@@ -4,17 +4,16 @@ import { ReactionCodec } from "@xmtp/content-type-reaction";
|
|
|
4
4
|
import { RemoteAttachmentCodec } from "@xmtp/content-type-remote-attachment";
|
|
5
5
|
import { ReplyCodec } from "@xmtp/content-type-reply";
|
|
6
6
|
import type { TextCodec } from "@xmtp/content-type-text";
|
|
7
|
-
import { Client,
|
|
7
|
+
import { Client, type ClientOptions } from "@xmtp/node-sdk";
|
|
8
8
|
import type { AgentErrorContext } from "./AgentContext.js";
|
|
9
|
-
import { ConversationContext } from "./ConversationContext.js";
|
|
9
|
+
import type { ConversationContext } from "./ConversationContext.js";
|
|
10
10
|
import { MessageContext } from "./MessageContext.js";
|
|
11
11
|
type EventHandlerMap<ContentTypes> = {
|
|
12
12
|
attachment: [
|
|
13
13
|
ctx: MessageContext<ReturnType<RemoteAttachmentCodec["decode"]>>
|
|
14
14
|
];
|
|
15
15
|
conversation: [ctx: ConversationContext<ContentTypes>];
|
|
16
|
-
|
|
17
|
-
group: [ctx: ConversationContext<ContentTypes, Group<ContentTypes>>];
|
|
16
|
+
message: [ctx: MessageContext<ContentTypes>];
|
|
18
17
|
reaction: [ctx: MessageContext<ReturnType<ReactionCodec["decode"]>>];
|
|
19
18
|
reply: [ctx: MessageContext<ReturnType<ReplyCodec["decode"]>>];
|
|
20
19
|
start: [];
|
|
@@ -43,7 +42,7 @@ export declare class Agent<ContentTypes = unknown> extends EventEmitter<EventHan
|
|
|
43
42
|
codecs?: ContentCodecs;
|
|
44
43
|
}): Promise<Agent<import("@xmtp/node-sdk").ExtractCodecContentTypes<(ReplyCodec | ReactionCodec | RemoteAttachmentCodec | (never[] | ContentCodecs)[number])[]>>>;
|
|
45
44
|
use(...middleware: Array<AgentMiddleware<ContentTypes> | AgentMiddleware<ContentTypes>[]>): this;
|
|
46
|
-
start(
|
|
45
|
+
start(): Promise<void>;
|
|
47
46
|
get client(): Client<ContentTypes>;
|
|
48
47
|
get errors(): AgentErrorRegistrar<ContentTypes>;
|
|
49
48
|
stop(): Promise<void>;
|
package/dist/core/Agent.js
CHANGED
|
@@ -2,21 +2,18 @@ import EventEmitter from "node:events";
|
|
|
2
2
|
import { ReactionCodec } from "@xmtp/content-type-reaction";
|
|
3
3
|
import { RemoteAttachmentCodec } from "@xmtp/content-type-remote-attachment";
|
|
4
4
|
import { ReplyCodec } from "@xmtp/content-type-reply";
|
|
5
|
-
import { ApiUrls, Client,
|
|
5
|
+
import { ApiUrls, Client, } from "@xmtp/node-sdk";
|
|
6
6
|
import { fromString } from "uint8arrays/from-string";
|
|
7
7
|
import { isHex } from "viem/utils";
|
|
8
8
|
import { AgentError } from "../utils/error.js";
|
|
9
9
|
import { filter } from "../utils/filter.js";
|
|
10
10
|
import { createSigner, createUser } from "../utils/user.js";
|
|
11
|
-
import { ClientContext } from "./ClientContext.js";
|
|
12
|
-
import { ConversationContext } from "./ConversationContext.js";
|
|
13
11
|
import { MessageContext } from "./MessageContext.js";
|
|
14
12
|
export class Agent extends EventEmitter {
|
|
15
13
|
#client;
|
|
16
|
-
#
|
|
14
|
+
#messageStream;
|
|
17
15
|
#middleware = [];
|
|
18
16
|
#errorMiddleware = [];
|
|
19
|
-
#isListening = false;
|
|
20
17
|
#errors = Object.freeze({
|
|
21
18
|
use: (...errorMiddleware) => {
|
|
22
19
|
for (const emw of errorMiddleware) {
|
|
@@ -36,6 +33,7 @@ export class Agent extends EventEmitter {
|
|
|
36
33
|
: new AgentError(9999, `Unhandled error caught by default error middleware.`, currentError);
|
|
37
34
|
this.emit("unhandledError", emittedError);
|
|
38
35
|
};
|
|
36
|
+
#isLocked = false;
|
|
39
37
|
constructor({ client }) {
|
|
40
38
|
super();
|
|
41
39
|
this.#client = client;
|
|
@@ -90,93 +88,60 @@ export class Agent extends EventEmitter {
|
|
|
90
88
|
}
|
|
91
89
|
return this;
|
|
92
90
|
}
|
|
93
|
-
async
|
|
94
|
-
|
|
95
|
-
|
|
91
|
+
async #handleStreamError(error) {
|
|
92
|
+
this.#messageStream = undefined;
|
|
93
|
+
const recovered = await this.#runErrorChain(error, {
|
|
94
|
+
client: this.#client,
|
|
95
|
+
});
|
|
96
|
+
if (recovered) {
|
|
97
|
+
this.#isLocked = false;
|
|
98
|
+
queueMicrotask(() => this.start());
|
|
96
99
|
}
|
|
100
|
+
}
|
|
101
|
+
async start() {
|
|
102
|
+
if (this.#isLocked || this.#messageStream)
|
|
103
|
+
return;
|
|
97
104
|
try {
|
|
98
|
-
this.#
|
|
99
|
-
|
|
100
|
-
this.#conversationsStream = await this.#client.conversations.stream({
|
|
101
|
-
onValue: async (conversation) => {
|
|
105
|
+
this.#messageStream = await this.#client.conversations.streamAllMessages({
|
|
106
|
+
onValue: async (message) => {
|
|
102
107
|
try {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
client: this.#client,
|
|
120
|
-
}));
|
|
108
|
+
switch (true) {
|
|
109
|
+
case filter.isRemoteAttachment(message):
|
|
110
|
+
await this.#processMessage(message, "attachment");
|
|
111
|
+
break;
|
|
112
|
+
case filter.isReaction(message):
|
|
113
|
+
await this.#processMessage(message, "reaction");
|
|
114
|
+
break;
|
|
115
|
+
case filter.isReply(message):
|
|
116
|
+
await this.#processMessage(message, "reply");
|
|
117
|
+
break;
|
|
118
|
+
case filter.isText(message):
|
|
119
|
+
await this.#processMessage(message, "text");
|
|
120
|
+
break;
|
|
121
|
+
default:
|
|
122
|
+
await this.#processMessage(message);
|
|
123
|
+
break;
|
|
121
124
|
}
|
|
122
125
|
}
|
|
123
126
|
catch (error) {
|
|
124
|
-
const recovered = await this.#runErrorChain(
|
|
125
|
-
|
|
127
|
+
const recovered = await this.#runErrorChain(error, {
|
|
128
|
+
client: this.#client,
|
|
129
|
+
});
|
|
130
|
+
if (!recovered) {
|
|
126
131
|
await this.stop();
|
|
132
|
+
}
|
|
133
|
+
this.#isLocked = false;
|
|
127
134
|
}
|
|
128
135
|
},
|
|
129
136
|
onError: async (error) => {
|
|
130
|
-
|
|
131
|
-
if (!recovered)
|
|
132
|
-
await this.stop();
|
|
137
|
+
await this.#handleStreamError(error);
|
|
133
138
|
},
|
|
134
139
|
});
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
// The "stop()" method sets "isListening"
|
|
138
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
139
|
-
if (!this.#isListening)
|
|
140
|
-
break;
|
|
141
|
-
try {
|
|
142
|
-
switch (true) {
|
|
143
|
-
case filter.isRemoteAttachment(message):
|
|
144
|
-
await this.#processMessage(message, "attachment");
|
|
145
|
-
break;
|
|
146
|
-
case filter.isReaction(message):
|
|
147
|
-
await this.#processMessage(message, "reaction");
|
|
148
|
-
break;
|
|
149
|
-
case filter.isReply(message):
|
|
150
|
-
await this.#processMessage(message, "reply");
|
|
151
|
-
break;
|
|
152
|
-
case filter.isText(message):
|
|
153
|
-
await this.#processMessage(message, "text");
|
|
154
|
-
break;
|
|
155
|
-
default:
|
|
156
|
-
await this.#processMessage(message);
|
|
157
|
-
break;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
const recovered = await this.#runErrorChain(error, {
|
|
162
|
-
client: this.#client,
|
|
163
|
-
});
|
|
164
|
-
if (!recovered) {
|
|
165
|
-
await this.stop();
|
|
166
|
-
break;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
140
|
+
this.emit("start");
|
|
141
|
+
this.#isLocked = false;
|
|
170
142
|
}
|
|
171
143
|
catch (error) {
|
|
172
|
-
this.#
|
|
173
|
-
const recovered = await this.#runErrorChain(error, {
|
|
174
|
-
client: this.#client,
|
|
175
|
-
});
|
|
176
|
-
if (recovered) {
|
|
177
|
-
await this.stop();
|
|
178
|
-
queueMicrotask(() => this.start(options));
|
|
179
|
-
}
|
|
144
|
+
await this.#handleStreamError(error);
|
|
180
145
|
}
|
|
181
146
|
}
|
|
182
147
|
async #processMessage(message, topic = "unknownMessage") {
|
|
@@ -203,6 +168,7 @@ export class Agent extends EventEmitter {
|
|
|
203
168
|
const finalEmit = async () => {
|
|
204
169
|
try {
|
|
205
170
|
this.emit(topic, context);
|
|
171
|
+
this.emit("message", context);
|
|
206
172
|
}
|
|
207
173
|
catch (error) {
|
|
208
174
|
await this.#runErrorChain(error, context);
|
|
@@ -274,9 +240,13 @@ export class Agent extends EventEmitter {
|
|
|
274
240
|
return this.#errors;
|
|
275
241
|
}
|
|
276
242
|
async stop() {
|
|
277
|
-
|
|
278
|
-
this.#
|
|
243
|
+
this.#isLocked = true;
|
|
244
|
+
if (this.#messageStream) {
|
|
245
|
+
await this.#messageStream.end();
|
|
246
|
+
this.#messageStream = undefined;
|
|
247
|
+
}
|
|
279
248
|
this.emit("stop");
|
|
249
|
+
this.#isLocked = false;
|
|
280
250
|
}
|
|
281
251
|
}
|
|
282
252
|
//# sourceMappingURL=Agent.js.map
|
package/dist/core/Agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/core/Agent.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sCAAsC,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEtD,OAAO,EACL,OAAO,EACP,MAAM,
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/core/Agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,8 @@ export declare class ConversationContext<ContentTypes = unknown, ConversationTyp
|
|
|
8
8
|
});
|
|
9
9
|
isDm(): this is ConversationContext<ContentTypes, Dm<ContentTypes>>;
|
|
10
10
|
isGroup(): this is ConversationContext<ContentTypes, Group<ContentTypes>>;
|
|
11
|
-
sendText(text: string): Promise<void>;
|
|
12
11
|
get conversation(): ConversationType;
|
|
12
|
+
get isAllowed(): boolean;
|
|
13
|
+
get isDenied(): boolean;
|
|
14
|
+
get isUnknown(): boolean;
|
|
13
15
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ContentTypeText } from "@xmtp/content-type-text";
|
|
2
1
|
import { filter } from "../utils/filter.js";
|
|
3
2
|
import { ClientContext } from "./ClientContext.js";
|
|
4
3
|
export class ConversationContext extends ClientContext {
|
|
@@ -13,11 +12,17 @@ export class ConversationContext extends ClientContext {
|
|
|
13
12
|
isGroup() {
|
|
14
13
|
return filter.isGroup(this.#conversation);
|
|
15
14
|
}
|
|
16
|
-
async sendText(text) {
|
|
17
|
-
await this.#conversation.send(text, ContentTypeText);
|
|
18
|
-
}
|
|
19
15
|
get conversation() {
|
|
20
16
|
return this.#conversation;
|
|
21
17
|
}
|
|
18
|
+
get isAllowed() {
|
|
19
|
+
return this.#conversation.consentState === 1 /* ConsentState.Allowed */;
|
|
20
|
+
}
|
|
21
|
+
get isDenied() {
|
|
22
|
+
return this.#conversation.consentState === 2 /* ConsentState.Denied */;
|
|
23
|
+
}
|
|
24
|
+
get isUnknown() {
|
|
25
|
+
return this.#conversation.consentState === 0 /* ConsentState.Unknown */;
|
|
26
|
+
}
|
|
22
27
|
}
|
|
23
28
|
//# sourceMappingURL=ConversationContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationContext.js","sourceRoot":"","sources":["../../src/core/ConversationContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ConversationContext.js","sourceRoot":"","sources":["../../src/core/ConversationContext.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,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,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,5 +1,5 @@
|
|
|
1
1
|
import { type Reaction, type ReactionCodec } from "@xmtp/content-type-reaction";
|
|
2
|
-
import {
|
|
2
|
+
import type { RemoteAttachmentCodec } from "@xmtp/content-type-remote-attachment";
|
|
3
3
|
import { type ReplyCodec } from "@xmtp/content-type-reply";
|
|
4
4
|
import { type TextCodec } from "@xmtp/content-type-text";
|
|
5
5
|
import type { DecodedMessage } from "@xmtp/node-sdk";
|
|
@@ -19,6 +19,7 @@ export declare class MessageContext<ContentTypes = unknown> extends Conversation
|
|
|
19
19
|
isReaction(): this is MessageContext<ReturnType<ReactionCodec["decode"]>>;
|
|
20
20
|
isRemoteAttachment(): this is MessageContext<ReturnType<RemoteAttachmentCodec["decode"]>>;
|
|
21
21
|
sendReaction(content: string, schema?: Reaction["schema"]): Promise<void>;
|
|
22
|
+
sendText(text: string): Promise<void>;
|
|
22
23
|
sendTextReply(text: string): Promise<void>;
|
|
23
24
|
getSenderAddress(): Promise<string>;
|
|
24
25
|
get message(): DecodedMessageWithContent<ContentTypes>;
|
|
@@ -31,6 +31,9 @@ export class MessageContext extends ConversationContext {
|
|
|
31
31
|
};
|
|
32
32
|
await this.conversation.send(reaction, ContentTypeReaction);
|
|
33
33
|
}
|
|
34
|
+
async sendText(text) {
|
|
35
|
+
await this.conversation.send(text, ContentTypeText);
|
|
36
|
+
}
|
|
34
37
|
async sendTextReply(text) {
|
|
35
38
|
const reply = {
|
|
36
39
|
reference: this.#message.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageContext.js","sourceRoot":"","sources":["../../src/core/MessageContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,gBAAgB,GAGjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAkB,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAc/D,MAAM,OAAO,cAEX,SAAQ,mBAAiC;IACzC,QAAQ,CAA0C;IAElD,YAAY,EACV,OAAO,EACP,YAAY,EACZ,MAAM,GAC6B;QACnC,KAAK,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB;QAGhB,OAAO,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,SAA6B,SAAS;QACxE,MAAM,QAAQ,GAAa;YACzB,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3B,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;YAC7C,MAAM;YACN,OAAO;SACR,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAU;YACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3B,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;YAC7C,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC;YACtE,IAAI,CAAC,QAAQ,CAAC,aAAa;SAC5B,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"MessageContext.js","sourceRoot":"","sources":["../../src/core/MessageContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,gBAAgB,GAGjB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,eAAe,EAAkB,MAAM,yBAAyB,CAAC;AAE1E,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAc/D,MAAM,OAAO,cAEX,SAAQ,mBAAiC;IACzC,QAAQ,CAA0C;IAElD,YAAY,EACV,OAAO,EACP,YAAY,EACZ,MAAM,GAC6B;QACnC,KAAK,CAAC,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED,kBAAkB;QAGhB,OAAO,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,SAA6B,SAAS;QACxE,MAAM,QAAQ,GAAa;YACzB,MAAM,EAAE,OAAO;YACf,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3B,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;YAC7C,MAAM;YACN,OAAO;SACR,CAAC;QACF,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,aAAa,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAU;YACnB,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;YAC3B,gBAAgB,EAAE,IAAI,CAAC,QAAQ,CAAC,aAAa;YAC7C,WAAW,EAAE,eAAe;YAC5B,OAAO,EAAE,IAAI;SACd,CAAC;QACF,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC;YACtE,IAAI,CAAC,QAAQ,CAAC,aAAa;SAC5B,CAAC,CAAC;QACH,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IACjD,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;CACF"}
|
package/dist/demo.js
CHANGED
|
@@ -18,12 +18,6 @@ router.command("/version", async (ctx) => {
|
|
|
18
18
|
await ctx.conversation.send(`v${process.env.npm_package_version}`);
|
|
19
19
|
});
|
|
20
20
|
agent.use(router.middleware());
|
|
21
|
-
agent.on("dm", (ctx) => {
|
|
22
|
-
console.log("Got new direct message in:", ctx.conversation.id);
|
|
23
|
-
});
|
|
24
|
-
agent.on("group", (ctx) => {
|
|
25
|
-
console.log("Got new group message in:", ctx.conversation.id);
|
|
26
|
-
});
|
|
27
21
|
agent.on("attachment", (ctx) => {
|
|
28
22
|
console.log("Got attachment:", ctx.message.content);
|
|
29
23
|
});
|
|
@@ -54,5 +48,6 @@ agent.on("unhandledError", errorHandler);
|
|
|
54
48
|
agent.on("start", () => {
|
|
55
49
|
console.log(`We are online: ${getTestUrl(agent)}`);
|
|
56
50
|
});
|
|
57
|
-
|
|
51
|
+
await agent.start();
|
|
52
|
+
console.log("Agent has started.");
|
|
58
53
|
//# sourceMappingURL=demo.js.map
|
package/dist/demo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAExE,IAAI,CAAC;IACH,WAAW,CAAC,MAAM,CAAC,CAAC;IACpB,OAAO,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;AAChD,CAAC;AAAC,MAAM,CAAC,CAAA,CAAC;AAEV,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe;IACvC,CAAC,CAAC,MAAM,KAAK,CAAC,aAAa,EAAE;IAC7B,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,EAAE;QAC7C,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;AAEP,MAAM,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;AAEnC,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IACvC,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC,CAAC;AACrE,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;AAE/B,KAAK,CAAC,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"@xmtp/content-type-remote-attachment": "^2.0.2",
|
|
9
9
|
"@xmtp/content-type-reply": "^2.0.2",
|
|
10
10
|
"@xmtp/content-type-text": "^2.0.2",
|
|
11
|
-
"@xmtp/node-sdk": "^4.1.
|
|
11
|
+
"@xmtp/node-sdk": "^4.1.2",
|
|
12
12
|
"uint8arrays": "^5.1.0",
|
|
13
13
|
"viem": "^2.37.6"
|
|
14
14
|
},
|
|
@@ -63,6 +63,7 @@
|
|
|
63
63
|
"clean:dist": "rm -rf dist",
|
|
64
64
|
"demo": "tsx src/demo.ts",
|
|
65
65
|
"dev": "tsx --watch src/main.ts",
|
|
66
|
+
"fix": "npx prettier --log-level error -w . && npx eslint . --fix",
|
|
66
67
|
"gen:keys": "tsx src/bin/generateKeys.ts",
|
|
67
68
|
"start": "yarn demo",
|
|
68
69
|
"test": "yarn typecheck && vitest run --typecheck",
|
|
@@ -70,5 +71,5 @@
|
|
|
70
71
|
"typecheck": "tsc --noEmit"
|
|
71
72
|
},
|
|
72
73
|
"type": "module",
|
|
73
|
-
"version": "0.0.
|
|
74
|
+
"version": "0.0.15"
|
|
74
75
|
}
|