@clawnet/template-minimal 0.0.1
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/.agents/skills/claude-agent-sdk/.claude-plugin/plugin.json +13 -0
- package/.agents/skills/claude-agent-sdk/SKILL.md +954 -0
- package/.agents/skills/claude-agent-sdk/references/mcp-servers-guide.md +387 -0
- package/.agents/skills/claude-agent-sdk/references/permissions-guide.md +429 -0
- package/.agents/skills/claude-agent-sdk/references/query-api-reference.md +437 -0
- package/.agents/skills/claude-agent-sdk/references/session-management.md +419 -0
- package/.agents/skills/claude-agent-sdk/references/subagents-patterns.md +464 -0
- package/.agents/skills/claude-agent-sdk/references/top-errors.md +503 -0
- package/.agents/skills/claude-agent-sdk/rules/claude-agent-sdk.md +96 -0
- package/.agents/skills/claude-agent-sdk/scripts/check-versions.sh +55 -0
- package/.agents/skills/claude-agent-sdk/templates/basic-query.ts +55 -0
- package/.agents/skills/claude-agent-sdk/templates/custom-mcp-server.ts +161 -0
- package/.agents/skills/claude-agent-sdk/templates/error-handling.ts +283 -0
- package/.agents/skills/claude-agent-sdk/templates/filesystem-settings.ts +211 -0
- package/.agents/skills/claude-agent-sdk/templates/multi-agent-workflow.ts +318 -0
- package/.agents/skills/claude-agent-sdk/templates/package.json +30 -0
- package/.agents/skills/claude-agent-sdk/templates/permission-control.ts +211 -0
- package/.agents/skills/claude-agent-sdk/templates/query-with-tools.ts +54 -0
- package/.agents/skills/claude-agent-sdk/templates/session-management.ts +151 -0
- package/.agents/skills/claude-agent-sdk/templates/subagents-orchestration.ts +166 -0
- package/.agents/skills/claude-agent-sdk/templates/tsconfig.json +22 -0
- package/.claude/settings.local.json +70 -0
- package/.claude/skills/moltbook-example/SKILL.md +79 -0
- package/.claude/skills/post/SKILL.md +130 -0
- package/.env.example +4 -0
- package/.vercel/README.txt +11 -0
- package/.vercel/project.json +1 -0
- package/AGENTS.md +114 -0
- package/CLAUDE.md +532 -0
- package/README.md +44 -0
- package/api/index.ts +3 -0
- package/biome.json +14 -0
- package/clark_avatar.jpeg +0 -0
- package/package.json +21 -0
- package/scripts/wake.ts +38 -0
- package/skills/clawbook/HEARTBEAT.md +142 -0
- package/skills/clawbook/SKILL.md +219 -0
- package/skills/moltbook-example/SKILL.md +79 -0
- package/skills/moltbook-example/bot/index.ts +61 -0
- package/src/agent/prompts.ts +98 -0
- package/src/agent/runner.ts +526 -0
- package/src/agent/tool-definitions.ts +1151 -0
- package/src/agent-options.ts +14 -0
- package/src/bot-identity.ts +41 -0
- package/src/constants.ts +15 -0
- package/src/handlers/heartbeat.ts +21 -0
- package/src/handlers/openai-compat.ts +95 -0
- package/src/handlers/post.ts +21 -0
- package/src/identity.ts +83 -0
- package/src/index.ts +30 -0
- package/src/middleware/cron-auth.ts +53 -0
- package/src/middleware/sigma-auth.ts +147 -0
- package/src/runs.ts +49 -0
- package/tests/agent/prompts.test.ts +172 -0
- package/tests/agent/runner.test.ts +353 -0
- package/tests/agent/tool-definitions.test.ts +171 -0
- package/tests/constants.test.ts +24 -0
- package/tests/handlers/openai-compat.test.ts +128 -0
- package/tests/handlers.test.ts +133 -0
- package/tests/identity.test.ts +66 -0
- package/tests/index.test.ts +108 -0
- package/tests/middleware/cron-auth.test.ts +99 -0
- package/tests/middleware/sigma-auth.test.ts +198 -0
- package/tests/runs.test.ts +56 -0
- package/tests/skill.test.ts +71 -0
- package/tsconfig.json +14 -0
- package/vercel.json +9 -0
|
@@ -0,0 +1,1151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Single source of truth for all MCP tool definitions across networks.
|
|
3
|
+
* runner.ts generates inline sandbox code from these definitions.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export interface ToolInputField {
|
|
7
|
+
name: string;
|
|
8
|
+
type: "string" | "number";
|
|
9
|
+
required: boolean;
|
|
10
|
+
description: string;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface QueryParam {
|
|
14
|
+
/** Input field name to read the value from */
|
|
15
|
+
field: string;
|
|
16
|
+
/** Query parameter key in the URL */
|
|
17
|
+
key: string;
|
|
18
|
+
/** Default value if field is not provided */
|
|
19
|
+
defaultValue?: string | number;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface ToolDef {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
inputFields: ToolInputField[];
|
|
26
|
+
method: "GET" | "POST" | "DELETE" | "PATCH";
|
|
27
|
+
path: string;
|
|
28
|
+
/** Whether this tool requires authentication */
|
|
29
|
+
auth: boolean;
|
|
30
|
+
/** Which network this tool belongs to */
|
|
31
|
+
network: "clawbook" | "moltbook";
|
|
32
|
+
/** Auth scheme: bitcoin-auth (Sigma Auth) or bearer (API key) */
|
|
33
|
+
authScheme?: "bitcoin-auth" | "bearer";
|
|
34
|
+
/** Whether path contains :param placeholders (e.g. /api/posts/:txId) */
|
|
35
|
+
pathParams?: string[];
|
|
36
|
+
/** Static success text — if absent, return JSON.stringify(res.data) */
|
|
37
|
+
successText?: string;
|
|
38
|
+
/** JS code string for custom response transform (receives `res` variable) */
|
|
39
|
+
transformResponse?: string;
|
|
40
|
+
/** Fields to include in the request body (POST/DELETE with auth) */
|
|
41
|
+
bodyFields?: string[];
|
|
42
|
+
/** Query parameters to append to the URL */
|
|
43
|
+
queryParams?: QueryParam[];
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export const TOOL_DEFINITIONS: ToolDef[] = [
|
|
47
|
+
// ── Clawbook tools ──────────────────────────────────────────────────
|
|
48
|
+
{
|
|
49
|
+
name: "read_feed",
|
|
50
|
+
description:
|
|
51
|
+
"Read recent posts from the Clawbook feed. Always call this before deciding what to do.",
|
|
52
|
+
inputFields: [
|
|
53
|
+
{
|
|
54
|
+
name: "limit",
|
|
55
|
+
type: "number",
|
|
56
|
+
required: false,
|
|
57
|
+
description: "Max posts to return (default 20)",
|
|
58
|
+
},
|
|
59
|
+
],
|
|
60
|
+
method: "GET",
|
|
61
|
+
path: "/api/feed",
|
|
62
|
+
auth: false,
|
|
63
|
+
network: "clawbook",
|
|
64
|
+
queryParams: [{ field: "limit", key: "limit", defaultValue: 20 }],
|
|
65
|
+
transformResponse: `const result = JSON.stringify((res.data?.results || []).map(p => ({
|
|
66
|
+
txId: p.txId,
|
|
67
|
+
author: p.author?.identity?.alternateName || p.author?.idKey?.slice(0,8) || "unknown",
|
|
68
|
+
authorIdKey: p.author?.idKey,
|
|
69
|
+
content: p.content,
|
|
70
|
+
channel: p.channel,
|
|
71
|
+
timestamp: p.timestamp,
|
|
72
|
+
likes: p.meta?.likes || 0,
|
|
73
|
+
replies: p.meta?.replies || 0,
|
|
74
|
+
})));`,
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
name: "read_replies",
|
|
78
|
+
description: "Read replies to a specific post.",
|
|
79
|
+
inputFields: [
|
|
80
|
+
{
|
|
81
|
+
name: "txId",
|
|
82
|
+
type: "string",
|
|
83
|
+
required: true,
|
|
84
|
+
description: "Transaction ID of the post",
|
|
85
|
+
},
|
|
86
|
+
],
|
|
87
|
+
method: "GET",
|
|
88
|
+
path: "/api/posts/:txId/replies",
|
|
89
|
+
pathParams: ["txId"],
|
|
90
|
+
auth: false,
|
|
91
|
+
network: "clawbook",
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
name: "read_post",
|
|
95
|
+
description:
|
|
96
|
+
"Read a single post by transaction ID, including its full content and metadata.",
|
|
97
|
+
inputFields: [
|
|
98
|
+
{
|
|
99
|
+
name: "txId",
|
|
100
|
+
type: "string",
|
|
101
|
+
required: true,
|
|
102
|
+
description: "Transaction ID of the post",
|
|
103
|
+
},
|
|
104
|
+
],
|
|
105
|
+
method: "GET",
|
|
106
|
+
path: "/api/posts/:txId",
|
|
107
|
+
pathParams: ["txId"],
|
|
108
|
+
auth: false,
|
|
109
|
+
network: "clawbook",
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
name: "read_channel",
|
|
113
|
+
description: "Read posts from a specific channel.",
|
|
114
|
+
inputFields: [
|
|
115
|
+
{
|
|
116
|
+
name: "name",
|
|
117
|
+
type: "string",
|
|
118
|
+
required: true,
|
|
119
|
+
description: "Channel name",
|
|
120
|
+
},
|
|
121
|
+
],
|
|
122
|
+
method: "GET",
|
|
123
|
+
path: "/api/channels/:name",
|
|
124
|
+
pathParams: ["name"],
|
|
125
|
+
auth: false,
|
|
126
|
+
network: "clawbook",
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: "list_channels",
|
|
130
|
+
description: "List all available channels on Clawbook.",
|
|
131
|
+
inputFields: [],
|
|
132
|
+
method: "GET",
|
|
133
|
+
path: "/api/channels",
|
|
134
|
+
auth: false,
|
|
135
|
+
network: "clawbook",
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
name: "create_post",
|
|
139
|
+
description:
|
|
140
|
+
"Create a new post on Clawbook. Use this for original content. Supports markdown formatting.",
|
|
141
|
+
inputFields: [
|
|
142
|
+
{
|
|
143
|
+
name: "content",
|
|
144
|
+
type: "string",
|
|
145
|
+
required: true,
|
|
146
|
+
description: "The post content (supports markdown)",
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
name: "channel",
|
|
150
|
+
type: "string",
|
|
151
|
+
required: false,
|
|
152
|
+
description: "Channel to post in",
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
method: "POST",
|
|
156
|
+
path: "/api/posts",
|
|
157
|
+
auth: true,
|
|
158
|
+
network: "clawbook",
|
|
159
|
+
authScheme: "bitcoin-auth",
|
|
160
|
+
bodyFields: ["content", "channel"],
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
name: "reply_to_post",
|
|
164
|
+
description:
|
|
165
|
+
"Reply to an existing post. Reference the original content in your reply.",
|
|
166
|
+
inputFields: [
|
|
167
|
+
{
|
|
168
|
+
name: "content",
|
|
169
|
+
type: "string",
|
|
170
|
+
required: true,
|
|
171
|
+
description: "The reply content",
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
name: "parentTxId",
|
|
175
|
+
type: "string",
|
|
176
|
+
required: true,
|
|
177
|
+
description: "Transaction ID of the post to reply to",
|
|
178
|
+
},
|
|
179
|
+
],
|
|
180
|
+
method: "POST",
|
|
181
|
+
path: "/api/posts",
|
|
182
|
+
auth: true,
|
|
183
|
+
network: "clawbook",
|
|
184
|
+
authScheme: "bitcoin-auth",
|
|
185
|
+
bodyFields: ["content", "parentTxId"],
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
name: "like_post",
|
|
189
|
+
description: "Like a post you find interesting or valuable.",
|
|
190
|
+
inputFields: [
|
|
191
|
+
{
|
|
192
|
+
name: "targetTxId",
|
|
193
|
+
type: "string",
|
|
194
|
+
required: true,
|
|
195
|
+
description: "Transaction ID of the post to like",
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
name: "emoji",
|
|
199
|
+
type: "string",
|
|
200
|
+
required: false,
|
|
201
|
+
description: "Reaction emoji (default: thumbs up)",
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
method: "POST",
|
|
205
|
+
path: "/api/likes",
|
|
206
|
+
auth: true,
|
|
207
|
+
network: "clawbook",
|
|
208
|
+
authScheme: "bitcoin-auth",
|
|
209
|
+
bodyFields: ["targetTxId", "emoji"],
|
|
210
|
+
successText: "Liked post",
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: "unlike_post",
|
|
214
|
+
description: "Remove a like from a post.",
|
|
215
|
+
inputFields: [
|
|
216
|
+
{
|
|
217
|
+
name: "targetTxId",
|
|
218
|
+
type: "string",
|
|
219
|
+
required: true,
|
|
220
|
+
description: "Transaction ID of the post to unlike",
|
|
221
|
+
},
|
|
222
|
+
],
|
|
223
|
+
method: "DELETE",
|
|
224
|
+
path: "/api/likes",
|
|
225
|
+
auth: true,
|
|
226
|
+
network: "clawbook",
|
|
227
|
+
authScheme: "bitcoin-auth",
|
|
228
|
+
bodyFields: ["targetTxId"],
|
|
229
|
+
successText: "Unliked post",
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
name: "follow_user",
|
|
233
|
+
description: "Follow another user on Clawbook.",
|
|
234
|
+
inputFields: [
|
|
235
|
+
{
|
|
236
|
+
name: "targetBapId",
|
|
237
|
+
type: "string",
|
|
238
|
+
required: true,
|
|
239
|
+
description: "BAP identity key of the user to follow",
|
|
240
|
+
},
|
|
241
|
+
],
|
|
242
|
+
method: "POST",
|
|
243
|
+
path: "/api/follows",
|
|
244
|
+
auth: true,
|
|
245
|
+
network: "clawbook",
|
|
246
|
+
authScheme: "bitcoin-auth",
|
|
247
|
+
bodyFields: ["targetBapId"],
|
|
248
|
+
successText: "Followed user",
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
name: "read_profile",
|
|
252
|
+
description:
|
|
253
|
+
"Look up a user's profile by their BAP identity key. Use this to learn about other agents on the network.",
|
|
254
|
+
inputFields: [
|
|
255
|
+
{
|
|
256
|
+
name: "bapId",
|
|
257
|
+
type: "string",
|
|
258
|
+
required: true,
|
|
259
|
+
description: "BAP identity key of the user",
|
|
260
|
+
},
|
|
261
|
+
],
|
|
262
|
+
method: "GET",
|
|
263
|
+
path: "/api/profiles/:bapId",
|
|
264
|
+
pathParams: ["bapId"],
|
|
265
|
+
auth: false,
|
|
266
|
+
network: "clawbook",
|
|
267
|
+
},
|
|
268
|
+
{
|
|
269
|
+
name: "unfollow_user",
|
|
270
|
+
description: "Unfollow a user on Clawbook.",
|
|
271
|
+
inputFields: [
|
|
272
|
+
{
|
|
273
|
+
name: "targetBapId",
|
|
274
|
+
type: "string",
|
|
275
|
+
required: true,
|
|
276
|
+
description: "BAP identity key of the user to unfollow",
|
|
277
|
+
},
|
|
278
|
+
],
|
|
279
|
+
method: "DELETE",
|
|
280
|
+
path: "/api/follows",
|
|
281
|
+
auth: true,
|
|
282
|
+
network: "clawbook",
|
|
283
|
+
authScheme: "bitcoin-auth",
|
|
284
|
+
bodyFields: ["targetBapId"],
|
|
285
|
+
successText: "Unfollowed user",
|
|
286
|
+
},
|
|
287
|
+
|
|
288
|
+
{
|
|
289
|
+
name: "register_agent",
|
|
290
|
+
description:
|
|
291
|
+
"Register this agent with Clawbook. Returns a claim URL for human verification. Only needed once — check status first.",
|
|
292
|
+
inputFields: [
|
|
293
|
+
{
|
|
294
|
+
name: "name",
|
|
295
|
+
type: "string",
|
|
296
|
+
required: true,
|
|
297
|
+
description: "Agent display name",
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
name: "description",
|
|
301
|
+
type: "string",
|
|
302
|
+
required: false,
|
|
303
|
+
description: "Short description of what this agent does",
|
|
304
|
+
},
|
|
305
|
+
],
|
|
306
|
+
method: "POST",
|
|
307
|
+
path: "/api/agents/register",
|
|
308
|
+
auth: true,
|
|
309
|
+
network: "clawbook",
|
|
310
|
+
authScheme: "bitcoin-auth",
|
|
311
|
+
bodyFields: ["name", "description"],
|
|
312
|
+
},
|
|
313
|
+
|
|
314
|
+
{
|
|
315
|
+
name: "create_channel",
|
|
316
|
+
description: "Create a new channel on Clawbook.",
|
|
317
|
+
inputFields: [
|
|
318
|
+
{
|
|
319
|
+
name: "name",
|
|
320
|
+
type: "string",
|
|
321
|
+
required: true,
|
|
322
|
+
description: "Channel name",
|
|
323
|
+
},
|
|
324
|
+
{
|
|
325
|
+
name: "description",
|
|
326
|
+
type: "string",
|
|
327
|
+
required: false,
|
|
328
|
+
description: "Channel description",
|
|
329
|
+
},
|
|
330
|
+
],
|
|
331
|
+
method: "POST",
|
|
332
|
+
path: "/api/channels",
|
|
333
|
+
auth: true,
|
|
334
|
+
network: "clawbook",
|
|
335
|
+
authScheme: "bitcoin-auth",
|
|
336
|
+
bodyFields: ["name", "description"],
|
|
337
|
+
},
|
|
338
|
+
{
|
|
339
|
+
name: "following_feed",
|
|
340
|
+
description:
|
|
341
|
+
"Read posts from agents you follow on Clawbook. Personalized feed based on your follows.",
|
|
342
|
+
inputFields: [
|
|
343
|
+
{
|
|
344
|
+
name: "limit",
|
|
345
|
+
type: "number",
|
|
346
|
+
required: false,
|
|
347
|
+
description: "Max posts to return",
|
|
348
|
+
},
|
|
349
|
+
],
|
|
350
|
+
method: "GET",
|
|
351
|
+
path: "/api/feed/following",
|
|
352
|
+
auth: true,
|
|
353
|
+
network: "clawbook",
|
|
354
|
+
authScheme: "bitcoin-auth",
|
|
355
|
+
queryParams: [{ field: "limit", key: "limit" }],
|
|
356
|
+
},
|
|
357
|
+
|
|
358
|
+
// ── Moltbook tools ──────────────────────────────────────────────────
|
|
359
|
+
{
|
|
360
|
+
name: "moltbook_read_feed",
|
|
361
|
+
description:
|
|
362
|
+
"Read recent posts from the Moltbook feed. Use this to see what agents are discussing on Moltbook.",
|
|
363
|
+
inputFields: [
|
|
364
|
+
{
|
|
365
|
+
name: "limit",
|
|
366
|
+
type: "number",
|
|
367
|
+
required: false,
|
|
368
|
+
description: "Max posts to return (default 20)",
|
|
369
|
+
},
|
|
370
|
+
],
|
|
371
|
+
method: "GET",
|
|
372
|
+
path: "/posts",
|
|
373
|
+
auth: true,
|
|
374
|
+
network: "moltbook",
|
|
375
|
+
authScheme: "bearer",
|
|
376
|
+
queryParams: [
|
|
377
|
+
{ field: "sort", key: "sort", defaultValue: "new" },
|
|
378
|
+
{ field: "limit", key: "limit", defaultValue: 20 },
|
|
379
|
+
],
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
name: "moltbook_read_post",
|
|
383
|
+
description: "Read a single Moltbook post by its ID.",
|
|
384
|
+
inputFields: [
|
|
385
|
+
{
|
|
386
|
+
name: "postId",
|
|
387
|
+
type: "string",
|
|
388
|
+
required: true,
|
|
389
|
+
description: "Post ID",
|
|
390
|
+
},
|
|
391
|
+
],
|
|
392
|
+
method: "GET",
|
|
393
|
+
path: "/posts/:postId",
|
|
394
|
+
pathParams: ["postId"],
|
|
395
|
+
auth: true,
|
|
396
|
+
network: "moltbook",
|
|
397
|
+
authScheme: "bearer",
|
|
398
|
+
},
|
|
399
|
+
{
|
|
400
|
+
name: "moltbook_read_comments",
|
|
401
|
+
description: "Read comments on a Moltbook post.",
|
|
402
|
+
inputFields: [
|
|
403
|
+
{
|
|
404
|
+
name: "postId",
|
|
405
|
+
type: "string",
|
|
406
|
+
required: true,
|
|
407
|
+
description: "Post ID",
|
|
408
|
+
},
|
|
409
|
+
],
|
|
410
|
+
method: "GET",
|
|
411
|
+
path: "/posts/:postId/comments",
|
|
412
|
+
pathParams: ["postId"],
|
|
413
|
+
auth: true,
|
|
414
|
+
network: "moltbook",
|
|
415
|
+
authScheme: "bearer",
|
|
416
|
+
},
|
|
417
|
+
{
|
|
418
|
+
name: "moltbook_list_submolts",
|
|
419
|
+
description: "List available submolts (communities) on Moltbook.",
|
|
420
|
+
inputFields: [],
|
|
421
|
+
method: "GET",
|
|
422
|
+
path: "/submolts",
|
|
423
|
+
auth: true,
|
|
424
|
+
network: "moltbook",
|
|
425
|
+
authScheme: "bearer",
|
|
426
|
+
},
|
|
427
|
+
{
|
|
428
|
+
name: "moltbook_read_submolt",
|
|
429
|
+
description: "Read details about a specific Moltbook submolt (community).",
|
|
430
|
+
inputFields: [
|
|
431
|
+
{
|
|
432
|
+
name: "name",
|
|
433
|
+
type: "string",
|
|
434
|
+
required: true,
|
|
435
|
+
description: "Submolt name",
|
|
436
|
+
},
|
|
437
|
+
],
|
|
438
|
+
method: "GET",
|
|
439
|
+
path: "/submolts/:name",
|
|
440
|
+
pathParams: ["name"],
|
|
441
|
+
auth: true,
|
|
442
|
+
network: "moltbook",
|
|
443
|
+
authScheme: "bearer",
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
name: "moltbook_create_submolt",
|
|
447
|
+
description: "Create a new submolt (community) on Moltbook.",
|
|
448
|
+
inputFields: [
|
|
449
|
+
{
|
|
450
|
+
name: "name",
|
|
451
|
+
type: "string",
|
|
452
|
+
required: true,
|
|
453
|
+
description: "Submolt name",
|
|
454
|
+
},
|
|
455
|
+
{
|
|
456
|
+
name: "description",
|
|
457
|
+
type: "string",
|
|
458
|
+
required: false,
|
|
459
|
+
description: "Submolt description",
|
|
460
|
+
},
|
|
461
|
+
],
|
|
462
|
+
method: "POST",
|
|
463
|
+
path: "/submolts",
|
|
464
|
+
auth: true,
|
|
465
|
+
network: "moltbook",
|
|
466
|
+
authScheme: "bearer",
|
|
467
|
+
bodyFields: ["name", "description"],
|
|
468
|
+
},
|
|
469
|
+
{
|
|
470
|
+
name: "moltbook_subscribe",
|
|
471
|
+
description: "Subscribe to a Moltbook submolt.",
|
|
472
|
+
inputFields: [
|
|
473
|
+
{
|
|
474
|
+
name: "name",
|
|
475
|
+
type: "string",
|
|
476
|
+
required: true,
|
|
477
|
+
description: "Submolt name to subscribe to",
|
|
478
|
+
},
|
|
479
|
+
],
|
|
480
|
+
method: "POST",
|
|
481
|
+
path: "/submolts/:name/subscribe",
|
|
482
|
+
pathParams: ["name"],
|
|
483
|
+
auth: true,
|
|
484
|
+
network: "moltbook",
|
|
485
|
+
authScheme: "bearer",
|
|
486
|
+
},
|
|
487
|
+
{
|
|
488
|
+
name: "moltbook_unsubscribe",
|
|
489
|
+
description: "Unsubscribe from a Moltbook submolt.",
|
|
490
|
+
inputFields: [
|
|
491
|
+
{
|
|
492
|
+
name: "name",
|
|
493
|
+
type: "string",
|
|
494
|
+
required: true,
|
|
495
|
+
description: "Submolt name to unsubscribe from",
|
|
496
|
+
},
|
|
497
|
+
],
|
|
498
|
+
method: "DELETE",
|
|
499
|
+
path: "/submolts/:name/subscribe",
|
|
500
|
+
pathParams: ["name"],
|
|
501
|
+
auth: true,
|
|
502
|
+
network: "moltbook",
|
|
503
|
+
authScheme: "bearer",
|
|
504
|
+
},
|
|
505
|
+
{
|
|
506
|
+
name: "moltbook_submolt_feed",
|
|
507
|
+
description: "Read the feed for a specific Moltbook submolt.",
|
|
508
|
+
inputFields: [
|
|
509
|
+
{
|
|
510
|
+
name: "name",
|
|
511
|
+
type: "string",
|
|
512
|
+
required: true,
|
|
513
|
+
description: "Submolt name",
|
|
514
|
+
},
|
|
515
|
+
{
|
|
516
|
+
name: "sort",
|
|
517
|
+
type: "string",
|
|
518
|
+
required: false,
|
|
519
|
+
description: "Sort order: hot, new, or top",
|
|
520
|
+
},
|
|
521
|
+
],
|
|
522
|
+
method: "GET",
|
|
523
|
+
path: "/submolts/:name/feed",
|
|
524
|
+
pathParams: ["name"],
|
|
525
|
+
auth: true,
|
|
526
|
+
network: "moltbook",
|
|
527
|
+
authScheme: "bearer",
|
|
528
|
+
queryParams: [{ field: "sort", key: "sort" }],
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
name: "moltbook_update_submolt",
|
|
532
|
+
description: "Update a Moltbook submolt's settings.",
|
|
533
|
+
inputFields: [
|
|
534
|
+
{
|
|
535
|
+
name: "name",
|
|
536
|
+
type: "string",
|
|
537
|
+
required: true,
|
|
538
|
+
description: "Submolt name",
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
name: "description",
|
|
542
|
+
type: "string",
|
|
543
|
+
required: false,
|
|
544
|
+
description: "New submolt description",
|
|
545
|
+
},
|
|
546
|
+
],
|
|
547
|
+
method: "PATCH",
|
|
548
|
+
path: "/submolts/:name/settings",
|
|
549
|
+
pathParams: ["name"],
|
|
550
|
+
auth: true,
|
|
551
|
+
network: "moltbook",
|
|
552
|
+
authScheme: "bearer",
|
|
553
|
+
bodyFields: ["description"],
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
name: "moltbook_list_moderators",
|
|
557
|
+
description: "List moderators of a Moltbook submolt.",
|
|
558
|
+
inputFields: [
|
|
559
|
+
{
|
|
560
|
+
name: "name",
|
|
561
|
+
type: "string",
|
|
562
|
+
required: true,
|
|
563
|
+
description: "Submolt name",
|
|
564
|
+
},
|
|
565
|
+
],
|
|
566
|
+
method: "GET",
|
|
567
|
+
path: "/submolts/:name/moderators",
|
|
568
|
+
pathParams: ["name"],
|
|
569
|
+
auth: true,
|
|
570
|
+
network: "moltbook",
|
|
571
|
+
authScheme: "bearer",
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
name: "moltbook_create_post",
|
|
575
|
+
description:
|
|
576
|
+
"Create a new post on Moltbook. Posts require a title and content. Use submolt 'general' unless a more specific one fits.",
|
|
577
|
+
inputFields: [
|
|
578
|
+
{
|
|
579
|
+
name: "submolt",
|
|
580
|
+
type: "string",
|
|
581
|
+
required: true,
|
|
582
|
+
description: "Submolt (community) to post in",
|
|
583
|
+
},
|
|
584
|
+
{
|
|
585
|
+
name: "title",
|
|
586
|
+
type: "string",
|
|
587
|
+
required: true,
|
|
588
|
+
description: "Post title",
|
|
589
|
+
},
|
|
590
|
+
{
|
|
591
|
+
name: "content",
|
|
592
|
+
type: "string",
|
|
593
|
+
required: true,
|
|
594
|
+
description: "Post content",
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
name: "url",
|
|
598
|
+
type: "string",
|
|
599
|
+
required: false,
|
|
600
|
+
description: "URL for link posts",
|
|
601
|
+
},
|
|
602
|
+
],
|
|
603
|
+
method: "POST",
|
|
604
|
+
path: "/posts",
|
|
605
|
+
auth: true,
|
|
606
|
+
network: "moltbook",
|
|
607
|
+
authScheme: "bearer",
|
|
608
|
+
bodyFields: ["submolt", "title", "content", "url"],
|
|
609
|
+
},
|
|
610
|
+
{
|
|
611
|
+
name: "moltbook_comment",
|
|
612
|
+
description: "Comment on a Moltbook post.",
|
|
613
|
+
inputFields: [
|
|
614
|
+
{
|
|
615
|
+
name: "postId",
|
|
616
|
+
type: "string",
|
|
617
|
+
required: true,
|
|
618
|
+
description: "Post ID to comment on",
|
|
619
|
+
},
|
|
620
|
+
{
|
|
621
|
+
name: "content",
|
|
622
|
+
type: "string",
|
|
623
|
+
required: true,
|
|
624
|
+
description: "Comment content",
|
|
625
|
+
},
|
|
626
|
+
{
|
|
627
|
+
name: "parent_id",
|
|
628
|
+
type: "string",
|
|
629
|
+
required: false,
|
|
630
|
+
description: "Parent comment ID for nested replies",
|
|
631
|
+
},
|
|
632
|
+
],
|
|
633
|
+
method: "POST",
|
|
634
|
+
path: "/posts/:postId/comments",
|
|
635
|
+
pathParams: ["postId"],
|
|
636
|
+
auth: true,
|
|
637
|
+
network: "moltbook",
|
|
638
|
+
authScheme: "bearer",
|
|
639
|
+
bodyFields: ["content", "parent_id"],
|
|
640
|
+
},
|
|
641
|
+
{
|
|
642
|
+
name: "moltbook_upvote",
|
|
643
|
+
description: "Upvote a Moltbook post.",
|
|
644
|
+
inputFields: [
|
|
645
|
+
{
|
|
646
|
+
name: "postId",
|
|
647
|
+
type: "string",
|
|
648
|
+
required: true,
|
|
649
|
+
description: "Post ID to upvote",
|
|
650
|
+
},
|
|
651
|
+
],
|
|
652
|
+
method: "POST",
|
|
653
|
+
path: "/posts/:postId/upvote",
|
|
654
|
+
pathParams: ["postId"],
|
|
655
|
+
auth: true,
|
|
656
|
+
network: "moltbook",
|
|
657
|
+
authScheme: "bearer",
|
|
658
|
+
},
|
|
659
|
+
{
|
|
660
|
+
name: "moltbook_downvote",
|
|
661
|
+
description: "Downvote a Moltbook post.",
|
|
662
|
+
inputFields: [
|
|
663
|
+
{
|
|
664
|
+
name: "postId",
|
|
665
|
+
type: "string",
|
|
666
|
+
required: true,
|
|
667
|
+
description: "Post ID to downvote",
|
|
668
|
+
},
|
|
669
|
+
],
|
|
670
|
+
method: "POST",
|
|
671
|
+
path: "/posts/:postId/downvote",
|
|
672
|
+
pathParams: ["postId"],
|
|
673
|
+
auth: true,
|
|
674
|
+
network: "moltbook",
|
|
675
|
+
authScheme: "bearer",
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
name: "moltbook_delete_post",
|
|
679
|
+
description: "Delete one of your own Moltbook posts.",
|
|
680
|
+
inputFields: [
|
|
681
|
+
{
|
|
682
|
+
name: "postId",
|
|
683
|
+
type: "string",
|
|
684
|
+
required: true,
|
|
685
|
+
description: "Post ID to delete",
|
|
686
|
+
},
|
|
687
|
+
],
|
|
688
|
+
method: "DELETE",
|
|
689
|
+
path: "/posts/:postId",
|
|
690
|
+
pathParams: ["postId"],
|
|
691
|
+
auth: true,
|
|
692
|
+
network: "moltbook",
|
|
693
|
+
authScheme: "bearer",
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
name: "moltbook_upvote_comment",
|
|
697
|
+
description: "Upvote a comment on Moltbook.",
|
|
698
|
+
inputFields: [
|
|
699
|
+
{
|
|
700
|
+
name: "commentId",
|
|
701
|
+
type: "string",
|
|
702
|
+
required: true,
|
|
703
|
+
description: "Comment ID to upvote",
|
|
704
|
+
},
|
|
705
|
+
],
|
|
706
|
+
method: "POST",
|
|
707
|
+
path: "/comments/:commentId/upvote",
|
|
708
|
+
pathParams: ["commentId"],
|
|
709
|
+
auth: true,
|
|
710
|
+
network: "moltbook",
|
|
711
|
+
authScheme: "bearer",
|
|
712
|
+
},
|
|
713
|
+
{
|
|
714
|
+
name: "moltbook_register",
|
|
715
|
+
description:
|
|
716
|
+
"Register a new agent on Moltbook. Returns an API key and claim URL for human verification.",
|
|
717
|
+
inputFields: [
|
|
718
|
+
{
|
|
719
|
+
name: "name",
|
|
720
|
+
type: "string",
|
|
721
|
+
required: true,
|
|
722
|
+
description: "Agent name",
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
name: "description",
|
|
726
|
+
type: "string",
|
|
727
|
+
required: false,
|
|
728
|
+
description: "Short description of the agent",
|
|
729
|
+
},
|
|
730
|
+
],
|
|
731
|
+
method: "POST",
|
|
732
|
+
path: "/agents/register",
|
|
733
|
+
auth: true,
|
|
734
|
+
network: "moltbook",
|
|
735
|
+
authScheme: "bearer",
|
|
736
|
+
bodyFields: ["name", "description"],
|
|
737
|
+
},
|
|
738
|
+
{
|
|
739
|
+
name: "moltbook_follow_user",
|
|
740
|
+
description: "Follow an agent on Moltbook.",
|
|
741
|
+
inputFields: [
|
|
742
|
+
{
|
|
743
|
+
name: "agentName",
|
|
744
|
+
type: "string",
|
|
745
|
+
required: true,
|
|
746
|
+
description: "Agent name to follow",
|
|
747
|
+
},
|
|
748
|
+
],
|
|
749
|
+
method: "POST",
|
|
750
|
+
path: "/agents/:agentName/follow",
|
|
751
|
+
pathParams: ["agentName"],
|
|
752
|
+
auth: true,
|
|
753
|
+
network: "moltbook",
|
|
754
|
+
authScheme: "bearer",
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
name: "moltbook_unfollow_user",
|
|
758
|
+
description: "Unfollow an agent on Moltbook.",
|
|
759
|
+
inputFields: [
|
|
760
|
+
{
|
|
761
|
+
name: "agentName",
|
|
762
|
+
type: "string",
|
|
763
|
+
required: true,
|
|
764
|
+
description: "Agent name to unfollow",
|
|
765
|
+
},
|
|
766
|
+
],
|
|
767
|
+
method: "DELETE",
|
|
768
|
+
path: "/agents/:agentName/follow",
|
|
769
|
+
pathParams: ["agentName"],
|
|
770
|
+
auth: true,
|
|
771
|
+
network: "moltbook",
|
|
772
|
+
authScheme: "bearer",
|
|
773
|
+
},
|
|
774
|
+
{
|
|
775
|
+
name: "moltbook_personalized_feed",
|
|
776
|
+
description:
|
|
777
|
+
"Read your personalized Moltbook feed based on subscriptions and follows.",
|
|
778
|
+
inputFields: [
|
|
779
|
+
{
|
|
780
|
+
name: "sort",
|
|
781
|
+
type: "string",
|
|
782
|
+
required: false,
|
|
783
|
+
description: "Sort order: hot, new, or top",
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
name: "limit",
|
|
787
|
+
type: "number",
|
|
788
|
+
required: false,
|
|
789
|
+
description: "Max posts to return",
|
|
790
|
+
},
|
|
791
|
+
],
|
|
792
|
+
method: "GET",
|
|
793
|
+
path: "/feed",
|
|
794
|
+
auth: true,
|
|
795
|
+
network: "moltbook",
|
|
796
|
+
authScheme: "bearer",
|
|
797
|
+
queryParams: [
|
|
798
|
+
{ field: "sort", key: "sort", defaultValue: "hot" },
|
|
799
|
+
{ field: "limit", key: "limit" },
|
|
800
|
+
],
|
|
801
|
+
},
|
|
802
|
+
{
|
|
803
|
+
name: "moltbook_check_status",
|
|
804
|
+
description: "Check the current agent's status on Moltbook.",
|
|
805
|
+
inputFields: [],
|
|
806
|
+
method: "GET",
|
|
807
|
+
path: "/agents/status",
|
|
808
|
+
auth: true,
|
|
809
|
+
network: "moltbook",
|
|
810
|
+
authScheme: "bearer",
|
|
811
|
+
},
|
|
812
|
+
{
|
|
813
|
+
name: "moltbook_my_profile",
|
|
814
|
+
description: "Get your own agent profile on Moltbook.",
|
|
815
|
+
inputFields: [],
|
|
816
|
+
method: "GET",
|
|
817
|
+
path: "/agents/me",
|
|
818
|
+
auth: true,
|
|
819
|
+
network: "moltbook",
|
|
820
|
+
authScheme: "bearer",
|
|
821
|
+
},
|
|
822
|
+
{
|
|
823
|
+
name: "moltbook_read_profile",
|
|
824
|
+
description: "Look up an agent's profile on Moltbook by name.",
|
|
825
|
+
inputFields: [
|
|
826
|
+
{
|
|
827
|
+
name: "name",
|
|
828
|
+
type: "string",
|
|
829
|
+
required: true,
|
|
830
|
+
description: "Agent name to look up",
|
|
831
|
+
},
|
|
832
|
+
],
|
|
833
|
+
method: "GET",
|
|
834
|
+
path: "/agents/profile",
|
|
835
|
+
auth: true,
|
|
836
|
+
network: "moltbook",
|
|
837
|
+
authScheme: "bearer",
|
|
838
|
+
queryParams: [{ field: "name", key: "name" }],
|
|
839
|
+
},
|
|
840
|
+
{
|
|
841
|
+
name: "moltbook_update_profile",
|
|
842
|
+
description: "Update your agent profile on Moltbook.",
|
|
843
|
+
inputFields: [
|
|
844
|
+
{
|
|
845
|
+
name: "description",
|
|
846
|
+
type: "string",
|
|
847
|
+
required: false,
|
|
848
|
+
description: "New profile description",
|
|
849
|
+
},
|
|
850
|
+
{
|
|
851
|
+
name: "metadata",
|
|
852
|
+
type: "string",
|
|
853
|
+
required: false,
|
|
854
|
+
description: "Profile metadata (JSON string)",
|
|
855
|
+
},
|
|
856
|
+
],
|
|
857
|
+
method: "PATCH",
|
|
858
|
+
path: "/agents/me",
|
|
859
|
+
auth: true,
|
|
860
|
+
network: "moltbook",
|
|
861
|
+
authScheme: "bearer",
|
|
862
|
+
bodyFields: ["description", "metadata"],
|
|
863
|
+
},
|
|
864
|
+
{
|
|
865
|
+
name: "moltbook_upload_avatar",
|
|
866
|
+
description:
|
|
867
|
+
"Upload agent avatar image on Moltbook (multipart/form-data — requires image data).",
|
|
868
|
+
inputFields: [],
|
|
869
|
+
method: "POST",
|
|
870
|
+
path: "/agents/me/avatar",
|
|
871
|
+
auth: true,
|
|
872
|
+
network: "moltbook",
|
|
873
|
+
authScheme: "bearer",
|
|
874
|
+
},
|
|
875
|
+
{
|
|
876
|
+
name: "moltbook_delete_avatar",
|
|
877
|
+
description: "Delete your agent avatar on Moltbook.",
|
|
878
|
+
inputFields: [],
|
|
879
|
+
method: "DELETE",
|
|
880
|
+
path: "/agents/me/avatar",
|
|
881
|
+
auth: true,
|
|
882
|
+
network: "moltbook",
|
|
883
|
+
authScheme: "bearer",
|
|
884
|
+
},
|
|
885
|
+
// ── Moltbook moderation tools ──────────────────────────────────────
|
|
886
|
+
{
|
|
887
|
+
name: "moltbook_pin_post",
|
|
888
|
+
description: "Pin a post in a Moltbook submolt.",
|
|
889
|
+
inputFields: [
|
|
890
|
+
{
|
|
891
|
+
name: "postId",
|
|
892
|
+
type: "string",
|
|
893
|
+
required: true,
|
|
894
|
+
description: "Post ID to pin",
|
|
895
|
+
},
|
|
896
|
+
],
|
|
897
|
+
method: "POST",
|
|
898
|
+
path: "/posts/:postId/pin",
|
|
899
|
+
pathParams: ["postId"],
|
|
900
|
+
auth: true,
|
|
901
|
+
network: "moltbook",
|
|
902
|
+
authScheme: "bearer",
|
|
903
|
+
},
|
|
904
|
+
{
|
|
905
|
+
name: "moltbook_unpin_post",
|
|
906
|
+
description: "Unpin a post in a Moltbook submolt.",
|
|
907
|
+
inputFields: [
|
|
908
|
+
{
|
|
909
|
+
name: "postId",
|
|
910
|
+
type: "string",
|
|
911
|
+
required: true,
|
|
912
|
+
description: "Post ID to unpin",
|
|
913
|
+
},
|
|
914
|
+
],
|
|
915
|
+
method: "DELETE",
|
|
916
|
+
path: "/posts/:postId/pin",
|
|
917
|
+
pathParams: ["postId"],
|
|
918
|
+
auth: true,
|
|
919
|
+
network: "moltbook",
|
|
920
|
+
authScheme: "bearer",
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
name: "moltbook_add_moderator",
|
|
924
|
+
description: "Add a moderator to a Moltbook submolt.",
|
|
925
|
+
inputFields: [
|
|
926
|
+
{
|
|
927
|
+
name: "name",
|
|
928
|
+
type: "string",
|
|
929
|
+
required: true,
|
|
930
|
+
description: "Submolt name",
|
|
931
|
+
},
|
|
932
|
+
{
|
|
933
|
+
name: "agent_name",
|
|
934
|
+
type: "string",
|
|
935
|
+
required: true,
|
|
936
|
+
description: "Agent name to add as moderator",
|
|
937
|
+
},
|
|
938
|
+
],
|
|
939
|
+
method: "POST",
|
|
940
|
+
path: "/submolts/:name/moderators",
|
|
941
|
+
pathParams: ["name"],
|
|
942
|
+
auth: true,
|
|
943
|
+
network: "moltbook",
|
|
944
|
+
authScheme: "bearer",
|
|
945
|
+
bodyFields: ["agent_name"],
|
|
946
|
+
},
|
|
947
|
+
{
|
|
948
|
+
name: "moltbook_remove_moderator",
|
|
949
|
+
description: "Remove a moderator from a Moltbook submolt.",
|
|
950
|
+
inputFields: [
|
|
951
|
+
{
|
|
952
|
+
name: "name",
|
|
953
|
+
type: "string",
|
|
954
|
+
required: true,
|
|
955
|
+
description: "Submolt name",
|
|
956
|
+
},
|
|
957
|
+
{
|
|
958
|
+
name: "agent_name",
|
|
959
|
+
type: "string",
|
|
960
|
+
required: true,
|
|
961
|
+
description: "Agent name to remove as moderator",
|
|
962
|
+
},
|
|
963
|
+
],
|
|
964
|
+
method: "DELETE",
|
|
965
|
+
path: "/submolts/:name/moderators",
|
|
966
|
+
pathParams: ["name"],
|
|
967
|
+
auth: true,
|
|
968
|
+
network: "moltbook",
|
|
969
|
+
authScheme: "bearer",
|
|
970
|
+
bodyFields: ["agent_name"],
|
|
971
|
+
},
|
|
972
|
+
|
|
973
|
+
// ── Moltbook search ────────────────────────────────────────────────
|
|
974
|
+
{
|
|
975
|
+
name: "moltbook_search",
|
|
976
|
+
description: "Search Moltbook posts, comments, or agents by keyword.",
|
|
977
|
+
inputFields: [
|
|
978
|
+
{
|
|
979
|
+
name: "query",
|
|
980
|
+
type: "string",
|
|
981
|
+
required: true,
|
|
982
|
+
description: "Search query",
|
|
983
|
+
},
|
|
984
|
+
{
|
|
985
|
+
name: "type",
|
|
986
|
+
type: "string",
|
|
987
|
+
required: false,
|
|
988
|
+
description: "Filter: posts, comments, or agents",
|
|
989
|
+
},
|
|
990
|
+
{
|
|
991
|
+
name: "limit",
|
|
992
|
+
type: "number",
|
|
993
|
+
required: false,
|
|
994
|
+
description: "Max results to return",
|
|
995
|
+
},
|
|
996
|
+
],
|
|
997
|
+
method: "GET",
|
|
998
|
+
path: "/search",
|
|
999
|
+
auth: true,
|
|
1000
|
+
network: "moltbook",
|
|
1001
|
+
authScheme: "bearer",
|
|
1002
|
+
queryParams: [
|
|
1003
|
+
{ field: "query", key: "q" },
|
|
1004
|
+
{ field: "type", key: "type" },
|
|
1005
|
+
{ field: "limit", key: "limit" },
|
|
1006
|
+
],
|
|
1007
|
+
},
|
|
1008
|
+
|
|
1009
|
+
// ── Moltbook DM tools ──────────────────────────────────────────────
|
|
1010
|
+
{
|
|
1011
|
+
name: "moltbook_dm_check",
|
|
1012
|
+
description: "Check if DMs are enabled for your agent on Moltbook.",
|
|
1013
|
+
inputFields: [],
|
|
1014
|
+
method: "GET",
|
|
1015
|
+
path: "/agents/dm/check",
|
|
1016
|
+
auth: true,
|
|
1017
|
+
network: "moltbook",
|
|
1018
|
+
authScheme: "bearer",
|
|
1019
|
+
},
|
|
1020
|
+
{
|
|
1021
|
+
name: "moltbook_dm_requests",
|
|
1022
|
+
description: "List pending DM requests on Moltbook.",
|
|
1023
|
+
inputFields: [],
|
|
1024
|
+
method: "GET",
|
|
1025
|
+
path: "/agents/dm/requests",
|
|
1026
|
+
auth: true,
|
|
1027
|
+
network: "moltbook",
|
|
1028
|
+
authScheme: "bearer",
|
|
1029
|
+
},
|
|
1030
|
+
{
|
|
1031
|
+
name: "moltbook_dm_approve",
|
|
1032
|
+
description: "Approve a DM request on Moltbook.",
|
|
1033
|
+
inputFields: [
|
|
1034
|
+
{
|
|
1035
|
+
name: "requestId",
|
|
1036
|
+
type: "string",
|
|
1037
|
+
required: true,
|
|
1038
|
+
description: "DM request ID to approve",
|
|
1039
|
+
},
|
|
1040
|
+
],
|
|
1041
|
+
method: "POST",
|
|
1042
|
+
path: "/agents/dm/requests/:requestId/approve",
|
|
1043
|
+
pathParams: ["requestId"],
|
|
1044
|
+
auth: true,
|
|
1045
|
+
network: "moltbook",
|
|
1046
|
+
authScheme: "bearer",
|
|
1047
|
+
},
|
|
1048
|
+
{
|
|
1049
|
+
name: "moltbook_dm_conversations",
|
|
1050
|
+
description: "List your DM conversations on Moltbook.",
|
|
1051
|
+
inputFields: [],
|
|
1052
|
+
method: "GET",
|
|
1053
|
+
path: "/agents/dm/conversations",
|
|
1054
|
+
auth: true,
|
|
1055
|
+
network: "moltbook",
|
|
1056
|
+
authScheme: "bearer",
|
|
1057
|
+
},
|
|
1058
|
+
{
|
|
1059
|
+
name: "moltbook_dm_read",
|
|
1060
|
+
description: "Read messages in a DM conversation on Moltbook.",
|
|
1061
|
+
inputFields: [
|
|
1062
|
+
{
|
|
1063
|
+
name: "conversationId",
|
|
1064
|
+
type: "string",
|
|
1065
|
+
required: true,
|
|
1066
|
+
description: "Conversation ID to read",
|
|
1067
|
+
},
|
|
1068
|
+
],
|
|
1069
|
+
method: "GET",
|
|
1070
|
+
path: "/agents/dm/conversations/:conversationId",
|
|
1071
|
+
pathParams: ["conversationId"],
|
|
1072
|
+
auth: true,
|
|
1073
|
+
network: "moltbook",
|
|
1074
|
+
authScheme: "bearer",
|
|
1075
|
+
},
|
|
1076
|
+
{
|
|
1077
|
+
name: "moltbook_dm_send",
|
|
1078
|
+
description: "Send a message in a DM conversation on Moltbook.",
|
|
1079
|
+
inputFields: [
|
|
1080
|
+
{
|
|
1081
|
+
name: "conversationId",
|
|
1082
|
+
type: "string",
|
|
1083
|
+
required: true,
|
|
1084
|
+
description: "Conversation ID",
|
|
1085
|
+
},
|
|
1086
|
+
{
|
|
1087
|
+
name: "content",
|
|
1088
|
+
type: "string",
|
|
1089
|
+
required: true,
|
|
1090
|
+
description: "Message content",
|
|
1091
|
+
},
|
|
1092
|
+
],
|
|
1093
|
+
method: "POST",
|
|
1094
|
+
path: "/agents/dm/conversations/:conversationId/send",
|
|
1095
|
+
pathParams: ["conversationId"],
|
|
1096
|
+
auth: true,
|
|
1097
|
+
network: "moltbook",
|
|
1098
|
+
authScheme: "bearer",
|
|
1099
|
+
bodyFields: ["content"],
|
|
1100
|
+
},
|
|
1101
|
+
{
|
|
1102
|
+
name: "moltbook_dm_request",
|
|
1103
|
+
description: "Send a DM request to another agent on Moltbook.",
|
|
1104
|
+
inputFields: [
|
|
1105
|
+
{
|
|
1106
|
+
name: "agent_name",
|
|
1107
|
+
type: "string",
|
|
1108
|
+
required: true,
|
|
1109
|
+
description: "Agent name to message",
|
|
1110
|
+
},
|
|
1111
|
+
{
|
|
1112
|
+
name: "message",
|
|
1113
|
+
type: "string",
|
|
1114
|
+
required: true,
|
|
1115
|
+
description: "Initial message content",
|
|
1116
|
+
},
|
|
1117
|
+
],
|
|
1118
|
+
method: "POST",
|
|
1119
|
+
path: "/agents/dm/request",
|
|
1120
|
+
auth: true,
|
|
1121
|
+
network: "moltbook",
|
|
1122
|
+
authScheme: "bearer",
|
|
1123
|
+
bodyFields: ["agent_name", "message"],
|
|
1124
|
+
},
|
|
1125
|
+
];
|
|
1126
|
+
|
|
1127
|
+
/** Clawbook tools only */
|
|
1128
|
+
export const CLAWBOOK_TOOLS = TOOL_DEFINITIONS.filter(
|
|
1129
|
+
(t) => t.network === "clawbook",
|
|
1130
|
+
);
|
|
1131
|
+
|
|
1132
|
+
/** Moltbook tools only */
|
|
1133
|
+
export const MOLTBOOK_TOOLS = TOOL_DEFINITIONS.filter(
|
|
1134
|
+
(t) => t.network === "moltbook",
|
|
1135
|
+
);
|
|
1136
|
+
|
|
1137
|
+
/** All tool names (unscoped) */
|
|
1138
|
+
export const TOOL_NAMES = TOOL_DEFINITIONS.map((t) => t.name);
|
|
1139
|
+
|
|
1140
|
+
/** MCP-prefixed tool names for Clawbook */
|
|
1141
|
+
export const CLAWBOOK_TOOL_NAMES = CLAWBOOK_TOOLS.map(
|
|
1142
|
+
(t) => `mcp__clawbook__${t.name}`,
|
|
1143
|
+
);
|
|
1144
|
+
|
|
1145
|
+
/** MCP-prefixed tool names for Moltbook */
|
|
1146
|
+
export const MOLTBOOK_TOOL_NAMES = MOLTBOOK_TOOLS.map(
|
|
1147
|
+
(t) => `mcp__moltbook__${t.name}`,
|
|
1148
|
+
);
|
|
1149
|
+
|
|
1150
|
+
/** All MCP-prefixed tool names for the allowedTools config */
|
|
1151
|
+
export const ALLOWED_TOOLS = [...CLAWBOOK_TOOL_NAMES, ...MOLTBOOK_TOOL_NAMES];
|