@xmtp/agent-sdk 0.0.6 → 0.0.8
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 +4 -6
- package/dist/core/Agent.d.ts +11 -5
- package/dist/core/Agent.js +109 -28
- package/dist/core/Agent.js.map +1 -1
- package/dist/core/AgentContext.d.ts +1 -1
- package/dist/core/AgentContext.js +1 -1
- package/dist/core/AgentContext.js.map +1 -1
- package/dist/demo.js +1 -2
- package/dist/demo.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/CommandRouter.d.ts +3 -3
- package/dist/middleware/CommandRouter.js.map +1 -1
- package/dist/utils/crypto.js +1 -13
- package/dist/utils/crypto.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ yarn add @xmtp/agent-sdk
|
|
|
26
26
|
## Quick Start
|
|
27
27
|
|
|
28
28
|
```ts
|
|
29
|
-
import {
|
|
29
|
+
import { createUser, createSigner, Agent, getTestUrl } from "@xmtp/agent-sdk";
|
|
30
30
|
|
|
31
31
|
// 1. Create a local user + signer (you can plug in your own wallet signer)
|
|
32
32
|
const user = createUser();
|
|
@@ -45,9 +45,7 @@ agent.on("message", async (ctx) => {
|
|
|
45
45
|
|
|
46
46
|
// 4. Log when we're ready
|
|
47
47
|
agent.on("start", () => {
|
|
48
|
-
|
|
49
|
-
const env = agent.client.options?.env;
|
|
50
|
-
console.log(`Agent online: http://xmtp.chat/dm/${address}?env=${env}`);
|
|
48
|
+
console.log(`We are online: ${getTestUrl(agent)}`);
|
|
51
49
|
});
|
|
52
50
|
|
|
53
51
|
await agent.start();
|
|
@@ -87,12 +85,12 @@ Events you can listen for:
|
|
|
87
85
|
|
|
88
86
|
- `message` – a new incoming (non‑self) message
|
|
89
87
|
- `start` / `stop` – lifecycle events
|
|
90
|
-
- `
|
|
88
|
+
- `unhandledError` – unhandled errors
|
|
91
89
|
|
|
92
90
|
**Example:**
|
|
93
91
|
|
|
94
92
|
```ts
|
|
95
|
-
agent.on("
|
|
93
|
+
agent.on("unhandledError", (error) => {
|
|
96
94
|
console.error("Agent error", error);
|
|
97
95
|
});
|
|
98
96
|
```
|
package/dist/core/Agent.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { ReplyCodec } from "@xmtp/content-type-reply";
|
|
|
6
6
|
import { Client, type ClientOptions } from "@xmtp/node-sdk";
|
|
7
7
|
import { AgentContext } from "./AgentContext.js";
|
|
8
8
|
interface EventHandlerMap<ContentTypes> {
|
|
9
|
-
|
|
9
|
+
unhandledError: [error: Error];
|
|
10
10
|
message: [ctx: AgentContext<ContentTypes>];
|
|
11
11
|
start: [];
|
|
12
12
|
stop: [];
|
|
@@ -14,17 +14,23 @@ interface EventHandlerMap<ContentTypes> {
|
|
|
14
14
|
export interface AgentOptions<ContentTypes> {
|
|
15
15
|
client: Client<ContentTypes>;
|
|
16
16
|
}
|
|
17
|
-
export type
|
|
18
|
-
export type AgentMiddleware<ContentTypes> = (ctx: AgentContext<ContentTypes>, next: () => Promise<void>) => Promise<void>;
|
|
17
|
+
export type AgentMessageHandler<ContentTypes = unknown> = (ctx: AgentContext<ContentTypes>) => Promise<void> | void;
|
|
18
|
+
export type AgentMiddleware<ContentTypes = unknown> = (ctx: AgentContext<ContentTypes>, next: () => Promise<void> | void) => Promise<void>;
|
|
19
|
+
export type AgentErrorMiddleware<ContentTypes = unknown> = (error: unknown, ctx: AgentContext<ContentTypes> | null, next: (err?: unknown) => Promise<void> | void) => Promise<void> | void;
|
|
20
|
+
export type StreamAllMessagesOptions<ContentTypes> = Parameters<Client<ContentTypes>["conversations"]["streamAllMessages"]>[0];
|
|
21
|
+
export interface AgentErrorRegistrar<ContentTypes> {
|
|
22
|
+
use(...errorMiddleware: Array<AgentErrorMiddleware<ContentTypes> | AgentErrorMiddleware<ContentTypes>[]>): AgentErrorRegistrar<ContentTypes>;
|
|
23
|
+
}
|
|
19
24
|
export declare class Agent<ContentTypes> extends EventEmitter<EventHandlerMap<ContentTypes>> {
|
|
20
25
|
#private;
|
|
21
26
|
constructor({ client }: AgentOptions<ContentTypes>);
|
|
22
27
|
static create<ContentCodecs extends ContentCodec[] = []>(signer?: Parameters<typeof Client.create>[0], options?: Omit<ClientOptions, "codecs"> & {
|
|
23
28
|
codecs?: ContentCodecs;
|
|
24
29
|
}): Promise<Agent<import("@xmtp/node-sdk").ExtractCodecContentTypes<(ReactionCodec | ReplyCodec | RemoteAttachmentCodec | (never[] | ContentCodecs)[number])[]>>>;
|
|
25
|
-
use(middleware: AgentMiddleware<ContentTypes>): this;
|
|
26
|
-
start(): Promise<void>;
|
|
30
|
+
use(...middleware: Array<AgentMiddleware<ContentTypes> | AgentMiddleware<ContentTypes>[]>): this;
|
|
31
|
+
start(options?: StreamAllMessagesOptions<ContentTypes>): Promise<void>;
|
|
27
32
|
get client(): Client<ContentTypes>;
|
|
33
|
+
get errors(): AgentErrorRegistrar<ContentTypes>;
|
|
28
34
|
stop(): void;
|
|
29
35
|
}
|
|
30
36
|
export {};
|
package/dist/core/Agent.js
CHANGED
|
@@ -12,7 +12,29 @@ import { AgentContext } from "./AgentContext.js";
|
|
|
12
12
|
export class Agent extends EventEmitter {
|
|
13
13
|
#client;
|
|
14
14
|
#middleware = [];
|
|
15
|
+
#errorMiddleware = [];
|
|
15
16
|
#isListening = false;
|
|
17
|
+
#errors = Object.freeze({
|
|
18
|
+
use: (...errorMiddleware) => {
|
|
19
|
+
for (const emw of errorMiddleware) {
|
|
20
|
+
if (Array.isArray(emw)) {
|
|
21
|
+
this.#errorMiddleware.push(...emw);
|
|
22
|
+
}
|
|
23
|
+
else if (typeof emw === "function") {
|
|
24
|
+
this.#errorMiddleware.push(emw);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return this.#errors;
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
#defaultErrorHandler = (currentError) => {
|
|
31
|
+
const emittedError = currentError instanceof Error
|
|
32
|
+
? currentError
|
|
33
|
+
: new Error(`Unhandled error caught by default error middleware.`, {
|
|
34
|
+
cause: currentError,
|
|
35
|
+
});
|
|
36
|
+
this.emit("unhandledError", emittedError);
|
|
37
|
+
};
|
|
16
38
|
constructor({ client }) {
|
|
17
39
|
super();
|
|
18
40
|
this.#client = client;
|
|
@@ -60,67 +82,126 @@ export class Agent extends EventEmitter {
|
|
|
60
82
|
}
|
|
61
83
|
return new Agent({ client });
|
|
62
84
|
}
|
|
63
|
-
use(middleware) {
|
|
64
|
-
|
|
85
|
+
use(...middleware) {
|
|
86
|
+
for (const mw of middleware) {
|
|
87
|
+
if (Array.isArray(mw)) {
|
|
88
|
+
this.#middleware.push(...mw);
|
|
89
|
+
}
|
|
90
|
+
else if (typeof mw === "function") {
|
|
91
|
+
this.#middleware.push(mw);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
65
94
|
return this;
|
|
66
95
|
}
|
|
67
|
-
async start() {
|
|
96
|
+
async start(options) {
|
|
68
97
|
if (this.#isListening) {
|
|
69
98
|
return;
|
|
70
99
|
}
|
|
71
100
|
try {
|
|
72
101
|
this.#isListening = true;
|
|
73
102
|
void this.emit("start");
|
|
74
|
-
const stream = await this.#client.conversations.streamAllMessages();
|
|
103
|
+
const stream = await this.#client.conversations.streamAllMessages(options);
|
|
75
104
|
for await (const message of stream) {
|
|
76
105
|
// The "stop()" method sets "isListening"
|
|
77
106
|
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
78
107
|
if (!this.#isListening)
|
|
79
108
|
break;
|
|
80
|
-
|
|
81
|
-
await this.#processMessage(message);
|
|
82
|
-
}
|
|
83
|
-
catch (error) {
|
|
84
|
-
this.#throwError(error);
|
|
85
|
-
}
|
|
109
|
+
await this.#processMessage(message);
|
|
86
110
|
}
|
|
87
111
|
}
|
|
88
112
|
catch (error) {
|
|
89
113
|
this.#isListening = false;
|
|
90
|
-
this.#
|
|
114
|
+
const recovered = await this.#runErrorChain(error, null);
|
|
115
|
+
if (recovered) {
|
|
116
|
+
queueMicrotask(() => this.start(options));
|
|
117
|
+
}
|
|
91
118
|
}
|
|
92
119
|
}
|
|
93
120
|
async #processMessage(message) {
|
|
121
|
+
let context = null;
|
|
94
122
|
const conversation = await this.#client.conversations.getConversationById(message.conversationId);
|
|
95
123
|
if (!conversation) {
|
|
96
|
-
|
|
97
|
-
return;
|
|
124
|
+
throw new Error(`Failed to process message ID "${message.id}" for conversation ID "${message.conversationId}" because the conversation could not be found.`);
|
|
98
125
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
126
|
+
context = new AgentContext(message, conversation, this.#client);
|
|
127
|
+
await this.#runMiddlewareChain(context);
|
|
128
|
+
}
|
|
129
|
+
async #runMiddlewareChain(context) {
|
|
130
|
+
const finalEmit = async () => {
|
|
131
|
+
try {
|
|
132
|
+
if (filter.notFromSelf(context.message, this.#client)) {
|
|
133
|
+
this.emit("message", context);
|
|
134
|
+
}
|
|
105
135
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
// infinite message loops when a "message" listener replies
|
|
109
|
-
void this.emit("message", context);
|
|
136
|
+
catch (error) {
|
|
137
|
+
await this.#runErrorChain(error, context);
|
|
110
138
|
}
|
|
111
139
|
};
|
|
112
|
-
|
|
140
|
+
const chain = this.#middleware.reduceRight((next, mw) => {
|
|
141
|
+
return async () => {
|
|
142
|
+
try {
|
|
143
|
+
await mw(context, next);
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
const resume = await this.#runErrorChain(error, context);
|
|
147
|
+
if (resume) {
|
|
148
|
+
await next();
|
|
149
|
+
}
|
|
150
|
+
// Chain is not resuming, error is being swallowed
|
|
151
|
+
}
|
|
152
|
+
};
|
|
153
|
+
}, finalEmit);
|
|
154
|
+
await chain();
|
|
155
|
+
}
|
|
156
|
+
async #runErrorHandler(handler, context, error) {
|
|
157
|
+
let settled = false;
|
|
158
|
+
let flow = { kind: "stopped" };
|
|
159
|
+
const next = (nextErr) => {
|
|
160
|
+
if (settled)
|
|
161
|
+
return;
|
|
162
|
+
settled = true;
|
|
163
|
+
flow =
|
|
164
|
+
nextErr === undefined
|
|
165
|
+
? { kind: "handled" }
|
|
166
|
+
: { kind: "continue", error: nextErr };
|
|
167
|
+
};
|
|
168
|
+
try {
|
|
169
|
+
await handler(error, context, next);
|
|
170
|
+
return flow;
|
|
171
|
+
}
|
|
172
|
+
catch (thrown) {
|
|
173
|
+
return { kind: "continue", error: thrown };
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async #runErrorChain(error, context) {
|
|
177
|
+
const chain = [...this.#errorMiddleware, this.#defaultErrorHandler];
|
|
178
|
+
let currentError = error;
|
|
179
|
+
for (let i = 0; i < chain.length; i++) {
|
|
180
|
+
const outcome = await this.#runErrorHandler(chain[i], context, currentError);
|
|
181
|
+
switch (outcome.kind) {
|
|
182
|
+
case "handled":
|
|
183
|
+
// Error was handled. Main middleware can continue.
|
|
184
|
+
return true;
|
|
185
|
+
case "stopped":
|
|
186
|
+
// Error cannot be handled. Main middleware won't continue.
|
|
187
|
+
return false;
|
|
188
|
+
case "continue":
|
|
189
|
+
// Error is passed to the next handler
|
|
190
|
+
currentError = outcome.error;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
// Reached end of chain without recovery
|
|
194
|
+
return false;
|
|
113
195
|
}
|
|
114
196
|
get client() {
|
|
115
197
|
return this.#client;
|
|
116
198
|
}
|
|
199
|
+
get errors() {
|
|
200
|
+
return this.#errors;
|
|
201
|
+
}
|
|
117
202
|
stop() {
|
|
118
203
|
this.#isListening = false;
|
|
119
204
|
void this.emit("stop");
|
|
120
205
|
}
|
|
121
|
-
#throwError(error) {
|
|
122
|
-
const newError = error instanceof Error ? error : new Error(String(error));
|
|
123
|
-
void this.emit("error", newError);
|
|
124
|
-
}
|
|
125
206
|
}
|
|
126
207
|
//# 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;AACtD,OAAO,EACL,OAAO,EACP,MAAM,GAKP,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../../src/core/Agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import type { Client, Conversation, DecodedMessage } from "@xmtp/node-sdk";
|
|
|
3
3
|
export declare class AgentContext<ContentTypes = unknown> {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(message: DecodedMessage<ContentTypes>, conversation: Conversation, client: Client<ContentTypes>);
|
|
6
|
-
sendReaction(content: string, schema
|
|
6
|
+
sendReaction(content: string, schema?: Reaction["schema"]): Promise<void>;
|
|
7
7
|
sendText(text: string): Promise<void>;
|
|
8
8
|
sendTextReply(text: string): Promise<void>;
|
|
9
9
|
getOwnAddress(): string | undefined;
|
|
@@ -10,7 +10,7 @@ export class AgentContext {
|
|
|
10
10
|
this.#conversation = conversation;
|
|
11
11
|
this.#client = client;
|
|
12
12
|
}
|
|
13
|
-
async sendReaction(content, schema) {
|
|
13
|
+
async sendReaction(content, schema = "unicode") {
|
|
14
14
|
const reaction = {
|
|
15
15
|
action: "added",
|
|
16
16
|
reference: this.#message.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentContext.js","sourceRoot":"","sources":["../../src/core/AgentContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAc,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,MAAM,OAAO,YAAY;IACvB,OAAO,CAAuB;IAC9B,QAAQ,CAA+B;IACvC,aAAa,CAAe;IAE5B,YACE,OAAqC,EACrC,YAA0B,EAC1B,MAA4B;QAE5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"AgentContext.js","sourceRoot":"","sources":["../../src/core/AgentContext.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,GAEpB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAc,MAAM,0BAA0B,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,MAAM,OAAO,YAAY;IACvB,OAAO,CAAuB;IAC9B,QAAQ,CAA+B;IACvC,aAAa,CAAe;IAE5B,YACE,OAAqC,EACrC,YAA0B,EAC1B,MAA4B;QAE5B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,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,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACvD,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,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,UAAU,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,gBAAgB;QACpB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC;YACvE,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;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF"}
|
package/dist/demo.js
CHANGED
|
@@ -27,8 +27,7 @@ agent.on("message", withFilter(f.startsWith("@agent"), async (ctx) => {
|
|
|
27
27
|
const errorHandler = (error) => {
|
|
28
28
|
console.log("Caught error", error);
|
|
29
29
|
};
|
|
30
|
-
agent.on("
|
|
31
|
-
agent.off("error", errorHandler);
|
|
30
|
+
agent.on("unhandledError", errorHandler);
|
|
32
31
|
agent.on("start", () => {
|
|
33
32
|
console.log(`We are online: ${getTestUrl(agent)}`);
|
|
34
33
|
});
|
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,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3E,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,MAAM,EAAE;IACtB,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,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;IAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,EAAE,CACN,SAAS,EACT,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC/C,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACrD,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE;IACtC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,KAAK,CAAC,EAAE,CAAC,
|
|
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,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE3E,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,MAAM,EAAE;IACtB,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,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;IAC1B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AACnD,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,EAAE,CACN,SAAS,EACT,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;IAC/C,MAAM,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACrD,CAAC,CAAC,CACH,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,KAAc,EAAE,EAAE;IACtC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF,KAAK,CAAC,EAAE,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;AAEzC,KAAK,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,OAAO,CAAC,GAAG,CAAC,kBAAkB,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACrD,CAAC,CAAC,CAAC;AAEH,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type AgentMessageHandler, type AgentMiddleware } from "../core/Agent.js";
|
|
2
2
|
import type { AgentContext } from "../core/AgentContext.js";
|
|
3
3
|
export declare class CommandRouter<ContentTypes> {
|
|
4
4
|
private commandMap;
|
|
5
5
|
private defaultHandler;
|
|
6
|
-
command(command: string, handler:
|
|
7
|
-
default(handler:
|
|
6
|
+
command(command: string, handler: AgentMessageHandler): this;
|
|
7
|
+
default(handler: AgentMessageHandler): this;
|
|
8
8
|
handle(ctx: AgentContext): Promise<boolean>;
|
|
9
9
|
middleware: () => AgentMiddleware<ContentTypes>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/middleware/CommandRouter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CommandRouter.js","sourceRoot":"","sources":["../../src/middleware/CommandRouter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,OAAO,aAAa;IAChB,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;IACpD,cAAc,GAA+B,IAAI,CAAC;IAE1D,OAAO,CAAC,OAAe,EAAE,OAA4B;QACnD,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,OAA4B;QAClC,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAiB;QAC5B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,KAAK,CAAC;QACf,CAAC;QAED,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,CAAC,WAAW,EAAE,CAAC;QAEvC,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,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,GAAwC,GAAG,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC1E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,EAAE,CAAC;QACf,CAAC;IACH,CAAC,CAAC;CACH"}
|
package/dist/utils/crypto.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { getRandomValues } from "node:crypto";
|
|
2
|
-
import { secp256k1 } from "@noble/curves/secp256k1.js";
|
|
3
2
|
import { fromString, toString } from "uint8arrays";
|
|
4
|
-
import {
|
|
3
|
+
import { generatePrivateKey } from "viem/accounts";
|
|
5
4
|
/**
|
|
6
5
|
* Convert a hex string to a Uint8Array encryption key.
|
|
7
6
|
* @param hex - The hex string
|
|
@@ -10,17 +9,6 @@ import { toHex } from "viem";
|
|
|
10
9
|
export const getEncryptionKeyFromHex = (hex) => {
|
|
11
10
|
return fromString(hex, "hex");
|
|
12
11
|
};
|
|
13
|
-
/**
|
|
14
|
-
* Generates a cryptographically secure random private key for wallet operations.
|
|
15
|
-
*
|
|
16
|
-
* Uses the secp256k1 elliptic curve to generate a private key suitable for
|
|
17
|
-
* Ethereum-compatible wallets and XMTP client authentication.
|
|
18
|
-
*
|
|
19
|
-
* @returns A hex-encoded private key string (64 characters, prefixed with '0x')
|
|
20
|
-
*/
|
|
21
|
-
function generatePrivateKey() {
|
|
22
|
-
return toHex(secp256k1.utils.randomSecretKey());
|
|
23
|
-
}
|
|
24
12
|
/**
|
|
25
13
|
* Generates a cryptographically secure random encryption key for database encryption.
|
|
26
14
|
*
|
package/dist/utils/crypto.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../src/utils/crypto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,GAAW,EAAc,EAAE;IACjE,OAAO,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AAChC,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,wBAAwB,GAAG,GAAG,EAAE;IACpC,sCAAsC;IACtC,MAAM,UAAU,GAAG,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IACvD,gDAAgD;IAChD,OAAO,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrC,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,eAAe,GAAG,wBAAwB,EAAE,CAAC;IACnD,OAAO;QACL,sBAAsB,EAAE,eAAe;QACvC,eAAe,EAAE,SAAS;KAC3B,CAAC;AACJ,CAAC,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
"url": "https://github.com/xmtp/xmtp-js/issues"
|
|
5
5
|
},
|
|
6
6
|
"dependencies": {
|
|
7
|
-
"@noble/curves": "^2.0.0",
|
|
8
7
|
"@xmtp/content-type-reaction": "^2.0.2",
|
|
9
8
|
"@xmtp/content-type-remote-attachment": "^2.0.2",
|
|
10
9
|
"@xmtp/content-type-reply": "^2.0.2",
|
|
@@ -71,5 +70,5 @@
|
|
|
71
70
|
"typecheck": "tsc --noEmit"
|
|
72
71
|
},
|
|
73
72
|
"type": "module",
|
|
74
|
-
"version": "0.0.
|
|
73
|
+
"version": "0.0.8"
|
|
75
74
|
}
|