create-message-kit 1.1.7-beta.4 → 1.1.7-beta.6
Sign up to get free protection for your applications and to get access to all the features.
- package/package.json +1 -1
- package/templates/agent/src/handler/ens.ts +4 -11
- package/templates/agent/src/index.ts +2 -2
- package/templates/agent/src/lib/gpt.ts +1 -1
- package/templates/agent/src/lib/resolver.ts +2 -2
- package/templates/agent/src/prompt.ts +7 -2
- package/templates/group/src/handler/agent.ts +2 -3
- package/templates/group/src/handler/helpers.ts +24 -0
- package/templates/group/src/handler/tipping.ts +1 -1
- package/templates/group/src/handler/transaction.ts +1 -1
- package/templates/group/src/index.ts +1 -1
- package/templates/group/src/lib/gpt.ts +1 -1
- package/templates/group/src/lib/resolver.ts +2 -2
- package/templates/group/src/skills.ts +1 -1
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import { HandlerContext, SkillResponse } from "@xmtp/message-kit";
|
2
|
-
import { getUserInfo, clearInfoCache, isOnXMTP } from "
|
2
|
+
import { getUserInfo, clearInfoCache, isOnXMTP } from "@xmtp/message-kit";
|
3
3
|
import { isAddress } from "viem";
|
4
|
-
import { clearMemory } from "
|
4
|
+
import { clearMemory } from "@xmtp/message-kit";
|
5
5
|
|
6
6
|
export const frameUrl = "https://ens.steer.fun/";
|
7
7
|
export const ensUrl = "https://app.ens.domains/";
|
@@ -14,7 +14,6 @@ export async function handleEns(
|
|
14
14
|
message: {
|
15
15
|
content: { command, params, sender },
|
16
16
|
},
|
17
|
-
skill,
|
18
17
|
} = context;
|
19
18
|
if (command == "reset") {
|
20
19
|
clearMemory();
|
@@ -87,13 +86,7 @@ export async function handleEns(
|
|
87
86
|
}
|
88
87
|
message += `\n\nWould you like to tip the domain owner for getting there first 🤣?`;
|
89
88
|
message = message.trim();
|
90
|
-
if (
|
91
|
-
await isOnXMTP(
|
92
|
-
context.v2client,
|
93
|
-
data?.ensInfo?.ens,
|
94
|
-
data?.ensInfo?.address,
|
95
|
-
)
|
96
|
-
) {
|
89
|
+
if (await isOnXMTP(context.client, context.v2client, sender?.address)) {
|
97
90
|
await context.send(
|
98
91
|
`Ah, this domains is in XMTP, you can message it directly: https://converse.xyz/dm/${domain}`,
|
99
92
|
);
|
@@ -118,7 +111,7 @@ export async function handleEns(
|
|
118
111
|
};
|
119
112
|
} else {
|
120
113
|
let message = `Looks like ${domain} is already registered!`;
|
121
|
-
await
|
114
|
+
await context.executeSkill("/cool " + domain);
|
122
115
|
return {
|
123
116
|
code: 404,
|
124
117
|
message,
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { run, HandlerContext } from "@xmtp/message-kit";
|
2
|
-
import { textGeneration, processMultilineResponse } from "
|
2
|
+
import { textGeneration, processMultilineResponse } from "@xmtp/message-kit";
|
3
3
|
import { agent_prompt } from "./prompt.js";
|
4
|
-
import { getUserInfo } from "
|
4
|
+
import { getUserInfo } from "@xmtp/message-kit";
|
5
5
|
|
6
6
|
run(async (context: HandlerContext) => {
|
7
7
|
/*All the skills are handled through the skills file*/
|
@@ -126,7 +126,7 @@ export async function processMultilineResponse(
|
|
126
126
|
console.log(messages);
|
127
127
|
for (const message of messages) {
|
128
128
|
if (message.startsWith("/")) {
|
129
|
-
const response = await context.
|
129
|
+
const response = await context.executeSkill(message);
|
130
130
|
if (response && typeof response.message === "string") {
|
131
131
|
let msg = parseMarkdown(response.message);
|
132
132
|
chatMemory.addEntry(memoryKey, {
|
@@ -108,8 +108,8 @@ export const getUserInfo = async (
|
|
108
108
|
}),
|
109
109
|
});
|
110
110
|
const converseData = (await response.json()) as ConverseProfile;
|
111
|
-
if (process.env.MSG_LOG === "true")
|
112
|
-
|
111
|
+
//if (process.env.MSG_LOG === "true")
|
112
|
+
//console.log("Converse data", keyToUse, converseData);
|
113
113
|
data.converseUsername =
|
114
114
|
converseData?.formattedName || converseData?.name || undefined;
|
115
115
|
data.address = converseData?.address || undefined;
|
@@ -1,6 +1,11 @@
|
|
1
1
|
import { skills } from "./skills.js";
|
2
|
-
import {
|
3
|
-
|
2
|
+
import {
|
3
|
+
getUserInfo,
|
4
|
+
UserInfo,
|
5
|
+
PROMPT_USER_CONTENT,
|
6
|
+
PROMPT_RULES,
|
7
|
+
PROMPT_SKILLS_AND_EXAMPLES,
|
8
|
+
} from "@xmtp/message-kit";
|
4
9
|
|
5
10
|
export async function agent_prompt(userInfo: UserInfo) {
|
6
11
|
let { address, ensDomain, converseUsername, preferredName } = userInfo;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { HandlerContext, AbstractedMember } from "@xmtp/message-kit";
|
2
|
-
import { textGeneration } from "
|
2
|
+
import { textGeneration } from "@xmtp/message-kit";
|
3
3
|
|
4
4
|
export async function handler(context: HandlerContext) {
|
5
5
|
if (!process?.env?.OPEN_AI_API_KEY) {
|
@@ -12,7 +12,6 @@ export async function handler(context: HandlerContext) {
|
|
12
12
|
sender,
|
13
13
|
content: { content, params },
|
14
14
|
},
|
15
|
-
skill,
|
16
15
|
} = context;
|
17
16
|
|
18
17
|
const systemPrompt = generateSystemPrompt(context);
|
@@ -24,7 +23,7 @@ export async function handler(context: HandlerContext) {
|
|
24
23
|
userPrompt,
|
25
24
|
systemPrompt,
|
26
25
|
);
|
27
|
-
|
26
|
+
context.executeSkill(reply);
|
28
27
|
} catch (error) {
|
29
28
|
console.error("Error during OpenAI call:", error);
|
30
29
|
await context.reply("An error occurred while processing your request.");
|
@@ -0,0 +1,24 @@
|
|
1
|
+
import { HandlerContext } from "@xmtp/message-kit";
|
2
|
+
|
3
|
+
export async function handler(context: HandlerContext) {
|
4
|
+
const {
|
5
|
+
skills,
|
6
|
+
group,
|
7
|
+
message: {
|
8
|
+
content: { command },
|
9
|
+
},
|
10
|
+
} = context;
|
11
|
+
|
12
|
+
if (command == "help") {
|
13
|
+
const intro =
|
14
|
+
"Available experiences:\n" +
|
15
|
+
skills
|
16
|
+
?.flatMap((app) => app.skills)
|
17
|
+
.map((skill) => `${skill.command} - ${skill.description}`)
|
18
|
+
.join("\n") +
|
19
|
+
"\nUse these skills to interact with specific apps.";
|
20
|
+
context.send(intro);
|
21
|
+
} else if (command == "id") {
|
22
|
+
context.send(context.group?.id);
|
23
|
+
}
|
24
|
+
}
|
@@ -126,7 +126,7 @@ export async function processMultilineResponse(
|
|
126
126
|
console.log(messages);
|
127
127
|
for (const message of messages) {
|
128
128
|
if (message.startsWith("/")) {
|
129
|
-
const response = await context.
|
129
|
+
const response = await context.executeSkill(message);
|
130
130
|
if (response && typeof response.message === "string") {
|
131
131
|
let msg = parseMarkdown(response.message);
|
132
132
|
chatMemory.addEntry(memoryKey, {
|
@@ -108,8 +108,8 @@ export const getUserInfo = async (
|
|
108
108
|
}),
|
109
109
|
});
|
110
110
|
const converseData = (await response.json()) as ConverseProfile;
|
111
|
-
if (process.env.MSG_LOG === "true")
|
112
|
-
|
111
|
+
/// if (process.env.MSG_LOG === "true")
|
112
|
+
//console.log("Converse data", keyToUse, converseData);
|
113
113
|
data.converseUsername =
|
114
114
|
converseData?.formattedName || converseData?.name || undefined;
|
115
115
|
data.address = converseData?.address || undefined;
|
@@ -3,7 +3,7 @@ import { handler as agent } from "./handler/agent.js";
|
|
3
3
|
import { handler as transaction } from "./handler/transaction.js";
|
4
4
|
import { handler as games } from "./handler/game.js";
|
5
5
|
import { handler as loyalty } from "./handler/loyalty.js";
|
6
|
-
import { handler as groupHelp } from "./handler/
|
6
|
+
import { handler as groupHelp } from "./handler/helpers.js";
|
7
7
|
import type { SkillGroup } from "@xmtp/message-kit";
|
8
8
|
|
9
9
|
export const skills: SkillGroup[] = [
|