create-message-kit 1.2.26 → 1.2.27
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/index.js +9 -1
- package/package.json +1 -1
- package/templates/ens/.cursorrules +10 -10
- package/templates/ens/src/index.ts +0 -2
- package/templates/ens/src/skills/check.ts +2 -2
- package/templates/ens/src/skills/cool.ts +2 -2
- package/templates/ens/src/skills/info.ts +2 -2
- package/templates/ens/src/skills/pay.ts +2 -4
- package/templates/ens/src/skills/register.ts +2 -2
- package/templates/ens/src/skills/renew.ts +2 -2
- package/templates/simple/.cursorrules +10 -10
- package/templates/simple/src/index.ts +4 -21
- package/templates/ens/src/prompt.ts +0 -11
- package/templates/simple/src/prompt.ts +0 -9
package/index.js
CHANGED
@@ -7,7 +7,7 @@ import { default as fs } from "fs-extra";
|
|
7
7
|
import { isCancel } from "@clack/prompts";
|
8
8
|
import { detect } from "detect-package-manager";
|
9
9
|
import pc from "picocolors";
|
10
|
-
const defVersion = "1.2.
|
10
|
+
const defVersion = "1.2.27";
|
11
11
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
12
12
|
|
13
13
|
// Read package.json to get the version
|
@@ -49,6 +49,8 @@ Powered by XMTP`;
|
|
49
49
|
// Create .gitignore
|
50
50
|
createGitignore(destDir);
|
51
51
|
|
52
|
+
// Create .data directory
|
53
|
+
createDataDir(destDir);
|
52
54
|
// Create .env file
|
53
55
|
createEnvFile(destDir);
|
54
56
|
|
@@ -77,6 +79,12 @@ Powered by XMTP`;
|
|
77
79
|
|
78
80
|
program.parse(process.argv);
|
79
81
|
|
82
|
+
async function createDataDir(destDir) {
|
83
|
+
if (!fs.existsSync(resolve(destDir, ".data"))) {
|
84
|
+
fs.mkdirSync(resolve(destDir, ".data"));
|
85
|
+
}
|
86
|
+
}
|
87
|
+
|
80
88
|
async function updatePackagejson(destDir, templateType) {
|
81
89
|
// Remove 'templates/' prefix if it exists in templateType
|
82
90
|
const cleanTemplatePath = templateType.replace("templates/", "");
|
package/package.json
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
import { ensUrl } from "../index.js";
|
9
|
-
import {
|
9
|
+
import { Context } from "@xmtp/message-kit";
|
10
10
|
import type { Skill } from "@xmtp/message-kit";
|
11
11
|
|
12
12
|
// Define Skill
|
@@ -25,7 +25,7 @@ export const checkDomain: Skill[] = [
|
|
25
25
|
];
|
26
26
|
|
27
27
|
// Handler Implementation
|
28
|
-
export async function handler(context:
|
28
|
+
export async function handler(context: Context) {
|
29
29
|
const {
|
30
30
|
message: {
|
31
31
|
content: {
|
@@ -55,7 +55,7 @@ export async function handler(context: XMTPContext) {
|
|
55
55
|
### Generate a payment request
|
56
56
|
|
57
57
|
|
58
|
-
import {
|
58
|
+
import { Context } from "@xmtp/message-kit";
|
59
59
|
import type { Skill } from "@xmtp/message-kit";
|
60
60
|
|
61
61
|
// Define Skill
|
@@ -92,7 +92,7 @@ export const paymentRequest: Skill[] = [
|
|
92
92
|
];
|
93
93
|
|
94
94
|
// Handler Implementation
|
95
|
-
export async function handler(context:
|
95
|
+
export async function handler(context: Context) {
|
96
96
|
const {
|
97
97
|
message: {
|
98
98
|
content: {
|
@@ -125,12 +125,12 @@ Each app consists of the following files:
|
|
125
125
|
agent/
|
126
126
|
├── src/
|
127
127
|
│ └── index.ts
|
128
|
-
│ └── prompt.ts
|
129
|
-
│ └── plugins/
|
128
|
+
│ └── prompt.ts # Optional
|
129
|
+
│ └── plugins/ # Optional
|
130
130
|
│ └── ...
|
131
|
-
│ └── skills/
|
131
|
+
│ └── skills/ # Optional
|
132
132
|
│ └── ...
|
133
|
-
│ └── vibes/
|
133
|
+
│ └── vibes/ # Optional
|
134
134
|
│ └── ...
|
135
135
|
├── tsconfig.json
|
136
136
|
├── package.json
|
@@ -142,14 +142,14 @@ agent/
|
|
142
142
|
This is the main function that runs the listener.
|
143
143
|
|
144
144
|
```jsx
|
145
|
-
import { Agent, run,
|
145
|
+
import { Agent, run, Context } from "@xmtp/message-kit";
|
146
146
|
|
147
147
|
const agent: Agent = {
|
148
148
|
name: "Agent Name",
|
149
149
|
tag: "@bot",
|
150
150
|
description: "Agent Description",
|
151
151
|
skills: [skill1, skill2],
|
152
|
-
onMessage: async (context:
|
152
|
+
onMessage: async (context: Context) => {
|
153
153
|
/* Logs every message in a conversation.
|
154
154
|
If not declared, the agent will automatically use the defined skills.
|
155
155
|
Alternatively, you can implement your own logic here. */
|
@@ -1,5 +1,4 @@
|
|
1
1
|
import { run, Agent } from "@xmtp/message-kit";
|
2
|
-
import { systemPrompt } from "./prompt.js";
|
3
2
|
import { checkDomain } from "./skills/check.js";
|
4
3
|
import { cool } from "./skills/cool.js";
|
5
4
|
import { info } from "./skills/info.js";
|
@@ -12,7 +11,6 @@ export const agent: Agent = {
|
|
12
11
|
tag: "@bot",
|
13
12
|
description: "A ens agent with a lot of skills.",
|
14
13
|
skills: [checkDomain, cool, info, register, renew, pay],
|
15
|
-
systemPrompt: systemPrompt,
|
16
14
|
};
|
17
15
|
|
18
16
|
run(agent);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Context } from "@xmtp/message-kit";
|
2
2
|
import type { Skill } from "@xmtp/message-kit";
|
3
3
|
|
4
4
|
const ensUrl = "https://app.ens.domains/";
|
@@ -20,7 +20,7 @@ export const checkDomain: Skill[] = [
|
|
20
20
|
// [!endregion define]
|
21
21
|
|
22
22
|
// [!region handle]
|
23
|
-
export async function handler(context:
|
23
|
+
export async function handler(context: Context) {
|
24
24
|
const {
|
25
25
|
message: {
|
26
26
|
content: {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Context } from "@xmtp/message-kit";
|
2
2
|
|
3
3
|
import type { Skill } from "@xmtp/message-kit";
|
4
4
|
|
@@ -15,7 +15,7 @@ export const cool: Skill[] = [
|
|
15
15
|
},
|
16
16
|
},
|
17
17
|
];
|
18
|
-
export async function handler(context:
|
18
|
+
export async function handler(context: Context) {
|
19
19
|
const {
|
20
20
|
message: {
|
21
21
|
content: {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Context } from "@xmtp/message-kit";
|
2
2
|
|
3
3
|
import type { Skill } from "@xmtp/message-kit";
|
4
4
|
|
@@ -26,7 +26,7 @@ export const info: Skill[] = [
|
|
26
26
|
// [!endregion define]
|
27
27
|
|
28
28
|
// [!region handle]
|
29
|
-
export async function handler(context:
|
29
|
+
export async function handler(context: Context) {
|
30
30
|
const {
|
31
31
|
message: {
|
32
32
|
sender,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Context } from "@xmtp/message-kit";
|
2
2
|
import type { Skill } from "@xmtp/message-kit";
|
3
3
|
|
4
4
|
export const pay: Skill[] = [
|
@@ -44,7 +44,7 @@ export const pay: Skill[] = [
|
|
44
44
|
},
|
45
45
|
},
|
46
46
|
];
|
47
|
-
export async function handler(context:
|
47
|
+
export async function handler(context: Context) {
|
48
48
|
const {
|
49
49
|
message: {
|
50
50
|
content: {
|
@@ -63,10 +63,8 @@ export async function handler(context: XMTPContext) {
|
|
63
63
|
}
|
64
64
|
if (skill === "tip") {
|
65
65
|
let tipAmount = 1;
|
66
|
-
await context.send("Sure, here is the tip link: ");
|
67
66
|
await context.requestPayment(receiverAddress, tipAmount);
|
68
67
|
} else if (skill === "pay") {
|
69
|
-
await context.send("Sure, here is the payment link: ");
|
70
68
|
await context.requestPayment(receiverAddress, amount, token);
|
71
69
|
}
|
72
70
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Context } from "@xmtp/message-kit";
|
2
2
|
|
3
3
|
const ensUrl = "https://app.ens.domains/";
|
4
4
|
import type { Skill } from "@xmtp/message-kit";
|
@@ -18,7 +18,7 @@ export const register: Skill[] = [
|
|
18
18
|
},
|
19
19
|
];
|
20
20
|
|
21
|
-
export async function handler(context:
|
21
|
+
export async function handler(context: Context) {
|
22
22
|
const {
|
23
23
|
message: {
|
24
24
|
content: {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { Context } from "@xmtp/message-kit";
|
2
2
|
|
3
3
|
import type { Skill } from "@xmtp/message-kit";
|
4
4
|
|
@@ -19,7 +19,7 @@ export const renew: Skill[] = [
|
|
19
19
|
},
|
20
20
|
];
|
21
21
|
|
22
|
-
export async function handler(context:
|
22
|
+
export async function handler(context: Context) {
|
23
23
|
const {
|
24
24
|
message: {
|
25
25
|
sender,
|
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
|
8
8
|
import { ensUrl } from "../index.js";
|
9
|
-
import {
|
9
|
+
import { Context } from "@xmtp/message-kit";
|
10
10
|
import type { Skill } from "@xmtp/message-kit";
|
11
11
|
|
12
12
|
// Define Skill
|
@@ -25,7 +25,7 @@ export const checkDomain: Skill[] = [
|
|
25
25
|
];
|
26
26
|
|
27
27
|
// Handler Implementation
|
28
|
-
export async function handler(context:
|
28
|
+
export async function handler(context: Context) {
|
29
29
|
const {
|
30
30
|
message: {
|
31
31
|
content: {
|
@@ -55,7 +55,7 @@ export async function handler(context: XMTPContext) {
|
|
55
55
|
### Generate a payment request
|
56
56
|
|
57
57
|
|
58
|
-
import {
|
58
|
+
import { Context } from "@xmtp/message-kit";
|
59
59
|
import type { Skill } from "@xmtp/message-kit";
|
60
60
|
|
61
61
|
// Define Skill
|
@@ -92,7 +92,7 @@ export const paymentRequest: Skill[] = [
|
|
92
92
|
];
|
93
93
|
|
94
94
|
// Handler Implementation
|
95
|
-
export async function handler(context:
|
95
|
+
export async function handler(context: Context) {
|
96
96
|
const {
|
97
97
|
message: {
|
98
98
|
content: {
|
@@ -125,12 +125,12 @@ Each app consists of the following files:
|
|
125
125
|
agent/
|
126
126
|
├── src/
|
127
127
|
│ └── index.ts
|
128
|
-
│ └── prompt.ts
|
129
|
-
│ └── plugins/
|
128
|
+
│ └── prompt.ts # Optional
|
129
|
+
│ └── plugins/ # Optional
|
130
130
|
│ └── ...
|
131
|
-
│ └── skills/
|
131
|
+
│ └── skills/ # Optional
|
132
132
|
│ └── ...
|
133
|
-
│ └── vibes/
|
133
|
+
│ └── vibes/ # Optional
|
134
134
|
│ └── ...
|
135
135
|
├── tsconfig.json
|
136
136
|
├── package.json
|
@@ -142,14 +142,14 @@ agent/
|
|
142
142
|
This is the main function that runs the listener.
|
143
143
|
|
144
144
|
```jsx
|
145
|
-
import { Agent, run,
|
145
|
+
import { Agent, run, Context } from "@xmtp/message-kit";
|
146
146
|
|
147
147
|
const agent: Agent = {
|
148
148
|
name: "Agent Name",
|
149
149
|
tag: "@bot",
|
150
150
|
description: "Agent Description",
|
151
151
|
skills: [skill1, skill2],
|
152
|
-
onMessage: async (context:
|
152
|
+
onMessage: async (context: Context) => {
|
153
153
|
/* Logs every message in a conversation.
|
154
154
|
If not declared, the agent will automatically use the defined skills.
|
155
155
|
Alternatively, you can implement your own logic here. */
|
@@ -1,30 +1,13 @@
|
|
1
1
|
// [!region index]
|
2
|
-
import {
|
3
|
-
run,
|
4
|
-
agentReply,
|
5
|
-
parsePrompt,
|
6
|
-
XMTPContext,
|
7
|
-
Agent,
|
8
|
-
} from "@xmtp/message-kit";
|
9
|
-
import { systemPrompt } from "./prompt.js";
|
2
|
+
import { run, agentReply, Context, Agent } from "@xmtp/message-kit";
|
10
3
|
|
11
4
|
export const agent: Agent = {
|
12
5
|
name: "GPT Bot",
|
13
|
-
tag: "@bot",
|
14
6
|
description: "Use GPT to generate text responses.",
|
15
|
-
|
16
|
-
|
17
|
-
message: {
|
18
|
-
sender,
|
19
|
-
content: { text },
|
20
|
-
},
|
21
|
-
agent,
|
22
|
-
} = context;
|
7
|
+
tag: "@bot",
|
8
|
+
onMessage: async (context: Context) => {
|
23
9
|
// [!endregion index]
|
24
|
-
|
25
|
-
let prompt = await parsePrompt(systemPrompt, sender.address, agent);
|
26
|
-
await agentReply(context, prompt);
|
27
|
-
|
10
|
+
await agentReply(context);
|
28
11
|
// [!region final]
|
29
12
|
},
|
30
13
|
};
|