level-up-mcp-server-cn 0.4.0

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.
Files changed (137) hide show
  1. package/.claude/projects/c--Users-klexi-OneDrive-Desktop-Levelup-level-up-mcp-server/memory/project_testing_service.md +11 -0
  2. package/.claude/settings.local.json +10 -0
  3. package/.env.example +19 -0
  4. package/CLAUDE.md +222 -0
  5. package/CODE_REVIEW.md +282 -0
  6. package/LICENSE +64 -0
  7. package/README.md +198 -0
  8. package/dist/constants.d.ts +33 -0
  9. package/dist/constants.js +78 -0
  10. package/dist/constants.js.map +1 -0
  11. package/dist/data/quest-seeds.d.ts +18 -0
  12. package/dist/data/quest-seeds.js +380 -0
  13. package/dist/data/quest-seeds.js.map +1 -0
  14. package/dist/index.d.ts +3 -0
  15. package/dist/index.js +260 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/schemas/common.d.ts +33 -0
  18. package/dist/schemas/common.js +96 -0
  19. package/dist/schemas/common.js.map +1 -0
  20. package/dist/services/dispatcher.d.ts +27 -0
  21. package/dist/services/dispatcher.js +47 -0
  22. package/dist/services/dispatcher.js.map +1 -0
  23. package/dist/services/errors.d.ts +56 -0
  24. package/dist/services/errors.js +99 -0
  25. package/dist/services/errors.js.map +1 -0
  26. package/dist/services/format.d.ts +74 -0
  27. package/dist/services/format.js +144 -0
  28. package/dist/services/format.js.map +1 -0
  29. package/dist/services/ownership.d.ts +19 -0
  30. package/dist/services/ownership.js +79 -0
  31. package/dist/services/ownership.js.map +1 -0
  32. package/dist/services/quality-gate.d.ts +45 -0
  33. package/dist/services/quality-gate.js +131 -0
  34. package/dist/services/quality-gate.js.map +1 -0
  35. package/dist/services/rate-limit.d.ts +12 -0
  36. package/dist/services/rate-limit.js +49 -0
  37. package/dist/services/rate-limit.js.map +1 -0
  38. package/dist/services/register.d.ts +49 -0
  39. package/dist/services/register.js +63 -0
  40. package/dist/services/register.js.map +1 -0
  41. package/dist/services/supabase.d.ts +10 -0
  42. package/dist/services/supabase.js +79 -0
  43. package/dist/services/supabase.js.map +1 -0
  44. package/dist/tools/achievements.d.ts +6 -0
  45. package/dist/tools/achievements.js +242 -0
  46. package/dist/tools/achievements.js.map +1 -0
  47. package/dist/tools/admin.d.ts +16 -0
  48. package/dist/tools/admin.js +328 -0
  49. package/dist/tools/admin.js.map +1 -0
  50. package/dist/tools/agents.d.ts +3 -0
  51. package/dist/tools/agents.js +400 -0
  52. package/dist/tools/agents.js.map +1 -0
  53. package/dist/tools/bootstrap.d.ts +17 -0
  54. package/dist/tools/bootstrap.js +565 -0
  55. package/dist/tools/bootstrap.js.map +1 -0
  56. package/dist/tools/dispatchers/admin.d.ts +3 -0
  57. package/dist/tools/dispatchers/admin.js +50 -0
  58. package/dist/tools/dispatchers/admin.js.map +1 -0
  59. package/dist/tools/dispatchers/eval.d.ts +3 -0
  60. package/dist/tools/dispatchers/eval.js +40 -0
  61. package/dist/tools/dispatchers/eval.js.map +1 -0
  62. package/dist/tools/dispatchers/quests.d.ts +3 -0
  63. package/dist/tools/dispatchers/quests.js +60 -0
  64. package/dist/tools/dispatchers/quests.js.map +1 -0
  65. package/dist/tools/dispatchers/session.d.ts +3 -0
  66. package/dist/tools/dispatchers/session.js +38 -0
  67. package/dist/tools/dispatchers/session.js.map +1 -0
  68. package/dist/tools/dispatchers/skills.d.ts +3 -0
  69. package/dist/tools/dispatchers/skills.js +49 -0
  70. package/dist/tools/dispatchers/skills.js.map +1 -0
  71. package/dist/tools/dispatchers/tasks.d.ts +3 -0
  72. package/dist/tools/dispatchers/tasks.js +53 -0
  73. package/dist/tools/dispatchers/tasks.js.map +1 -0
  74. package/dist/tools/dispatchers/users.d.ts +3 -0
  75. package/dist/tools/dispatchers/users.js +65 -0
  76. package/dist/tools/dispatchers/users.js.map +1 -0
  77. package/dist/tools/dispatchers/xp.d.ts +3 -0
  78. package/dist/tools/dispatchers/xp.js +51 -0
  79. package/dist/tools/dispatchers/xp.js.map +1 -0
  80. package/dist/tools/growth-plan.d.ts +5 -0
  81. package/dist/tools/growth-plan.js +791 -0
  82. package/dist/tools/growth-plan.js.map +1 -0
  83. package/dist/tools/leaderboards.d.ts +10 -0
  84. package/dist/tools/leaderboards.js +279 -0
  85. package/dist/tools/leaderboards.js.map +1 -0
  86. package/dist/tools/leveling.d.ts +24 -0
  87. package/dist/tools/leveling.js +356 -0
  88. package/dist/tools/leveling.js.map +1 -0
  89. package/dist/tools/metrics.d.ts +3 -0
  90. package/dist/tools/metrics.js +247 -0
  91. package/dist/tools/metrics.js.map +1 -0
  92. package/dist/tools/quests.d.ts +5 -0
  93. package/dist/tools/quests.js +586 -0
  94. package/dist/tools/quests.js.map +1 -0
  95. package/dist/tools/ratings.d.ts +11 -0
  96. package/dist/tools/ratings.js +564 -0
  97. package/dist/tools/ratings.js.map +1 -0
  98. package/dist/tools/skills.d.ts +66 -0
  99. package/dist/tools/skills.js +1112 -0
  100. package/dist/tools/skills.js.map +1 -0
  101. package/dist/tools/system.d.ts +31 -0
  102. package/dist/tools/system.js +605 -0
  103. package/dist/tools/system.js.map +1 -0
  104. package/dist/tools/tasks.d.ts +73 -0
  105. package/dist/tools/tasks.js +1572 -0
  106. package/dist/tools/tasks.js.map +1 -0
  107. package/dist/tools/users.d.ts +97 -0
  108. package/dist/tools/users.js +1306 -0
  109. package/dist/tools/users.js.map +1 -0
  110. package/dist/tools/xp.d.ts +38 -0
  111. package/dist/tools/xp.js +670 -0
  112. package/dist/tools/xp.js.map +1 -0
  113. package/dist/types.d.ts +178 -0
  114. package/dist/types.js +12 -0
  115. package/dist/types.js.map +1 -0
  116. package/docs/recommended-skillsets.md +622 -0
  117. package/docs/skills-and-abilities-review.md +672 -0
  118. package/docs/v0.3-roadmap.md +191 -0
  119. package/package.json +35 -0
  120. package/sql/agent_pending_installs.sql +28 -0
  121. package/sql/award_class_xp.sql +81 -0
  122. package/supabase/.temp/cli-latest +1 -0
  123. package/supabase/.temp/gotrue-version +1 -0
  124. package/supabase/.temp/pooler-url +1 -0
  125. package/supabase/.temp/postgres-version +1 -0
  126. package/supabase/.temp/project-ref +1 -0
  127. package/supabase/.temp/rest-version +1 -0
  128. package/supabase/.temp/storage-migration +1 -0
  129. package/supabase/.temp/storage-version +1 -0
  130. package/supabase/migrations/20260314000000_anon_rls_policies.sql +311 -0
  131. package/supabase/migrations/20260314000001_ownership_rpcs.sql +382 -0
  132. package/supabase/migrations/20260314000002_evidence_and_growth_plan.sql +97 -0
  133. package/supabase/migrations/20260317000000_seed_quests.sql +62 -0
  134. package/supabase/migrations/20260317000001_star_cooldown_and_fixes.sql +16 -0
  135. package/supabase/migrations/20260318000000_restore_rank_names.sql +25 -0
  136. package/supabase/migrations/20260320000000_chinese_rank_names.sql +24 -0
  137. package/vitest.config.ts +11 -0
@@ -0,0 +1,400 @@
1
+ // ============================================================
2
+ // tools/agents.ts — Section 2: Agent tools (3 active tools)
3
+ // ============================================================
4
+ // Tools 14-16. Deferred: transfer_agent, publish_blueprint,
5
+ // browse_blueprints (blockchain/blueprints phase).
6
+ // ============================================================
7
+ import { z } from "zod";
8
+ import { supabase } from "../services/supabase.js";
9
+ import { ok, fail, handleSupabaseError } from "../services/errors.js";
10
+ import { paginate, formatRankDisplay } from "../services/format.js";
11
+ import { toMcpResponse, logRegistered } from "../services/register.js";
12
+ import { uuidSchema, identityProviderSchema, agentPlatformSchema, limitSchema, offsetSchema, metadataSchema } from "../schemas/common.js";
13
+ import { verifyOwnership } from "../services/ownership.js";
14
+ export function registerAgentTools(server) {
15
+ console.error("\n📋 Section 2: Agents");
16
+ // ================================================================
17
+ // Tool 14: levelup_register_agent
18
+ // ================================================================
19
+ server.registerTool("levelup_register_agent", {
20
+ title: "注册智能体",
21
+ description: `注册新的AI智能体。在首次有意义的交互或用户为你配置角色时调用。
22
+
23
+ 通过直接 user_id 或身份对(平台 + ID)解析所有者。
24
+ 如果身份对未匹配到现有用户,将自动创建一个。
25
+
26
+ 需要提供 owner_user_id 或同时提供 identity_provider 和 identity_id。
27
+
28
+ 参数:
29
+ - owner_user_id (uuid, 可选): 已知的所有者直接链接。
30
+ - identity_provider (string, 可选): 用于解析所有者的平台。
31
+ - identity_id (string, 可选): 所有者在该平台上的ID。
32
+ - name (string): 智能体显示名称。
33
+ - description (string, 可选): 智能体功能描述。
34
+ - agent_class (string, 可选): 标签,如 "developer"、"researcher"、"trader"。
35
+ - platform (string, 可选): "openclaw"、"claude"、"custom"。
36
+ - is_public (boolean, 可选): 资料可见性(默认: true)。
37
+ - metadata (object, 可选): 额外配置。
38
+
39
+ 返回:
40
+ 包含 id、name、等级(1)、经验值(0)、rank_name、platform、所有者信息的智能体。`,
41
+ inputSchema: {
42
+ owner_user_id: uuidSchema.optional().describe("Direct link to owner if known"),
43
+ identity_provider: identityProviderSchema.optional().describe("Platform to resolve owner"),
44
+ identity_id: z.string().min(1).optional().describe("Owner's ID on that platform"),
45
+ name: z.string().min(1).max(100).describe("Agent display name"),
46
+ description: z.string().max(500).optional().describe("What this agent does"),
47
+ agent_class: z.string().max(50).optional().describe('Label: "developer", "researcher", etc.'),
48
+ platform: agentPlatformSchema.optional().describe("Hosting platform"),
49
+ is_public: z.boolean().default(true).describe("Profile visibility"),
50
+ metadata: metadataSchema,
51
+ },
52
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: false, openWorldHint: false },
53
+ }, async (params) => {
54
+ let ownerUserId = params.owner_user_id || null;
55
+ // Resolve owner by identity pair if user_id not provided
56
+ if (!ownerUserId && params.identity_provider && params.identity_id) {
57
+ const { data: identity } = await supabase
58
+ .from("user_identities")
59
+ .select("user_id")
60
+ .eq("provider", params.identity_provider)
61
+ .eq("provider_id", params.identity_id)
62
+ .maybeSingle();
63
+ if (identity) {
64
+ ownerUserId = identity.user_id;
65
+ }
66
+ else {
67
+ // Auto-create user (anonymous profile)
68
+ const { generateProfileCode } = await import("../services/format.js");
69
+ const profileCode = generateProfileCode();
70
+ const { data: newUser, error: userError } = await supabase
71
+ .from("users")
72
+ .insert({
73
+ username: "Anonymous",
74
+ profile_code: profileCode,
75
+ is_searchable_by_email: false,
76
+ })
77
+ .select()
78
+ .single();
79
+ if (userError)
80
+ return toMcpResponse(handleSupabaseError(userError, "register_agent (auto-create user)"));
81
+ ownerUserId = newUser.id;
82
+ // Create class progress rows
83
+ const classRows = ["trainer", "orchestrator", "partner"].map((cls) => ({
84
+ user_id: newUser.id, class_name: cls, class_level: 1, class_xp: 0,
85
+ }));
86
+ await supabase.from("user_class_progress").insert(classRows);
87
+ // Create identity
88
+ await supabase.from("user_identities").insert({
89
+ user_id: newUser.id,
90
+ provider: params.identity_provider,
91
+ provider_id: params.identity_id,
92
+ is_hashed: true,
93
+ is_primary: true,
94
+ });
95
+ }
96
+ }
97
+ if (!ownerUserId) {
98
+ return toMcpResponse(fail("需要提供所有者身份信息", "请提供 owner_user_id 或同时提供 identity_provider 和 identity_id。"));
99
+ }
100
+ // Create the agent via secure RPC (with fallback to direct insert)
101
+ let agent;
102
+ const { data: rpcResult, error: rpcError } = await supabase.rpc('register_agent_secure', {
103
+ p_owner_user_id: ownerUserId,
104
+ p_name: params.name,
105
+ p_description: params.description || null,
106
+ p_agent_class: params.agent_class || null,
107
+ p_platform: params.platform || null,
108
+ p_is_public: params.is_public,
109
+ p_metadata: params.metadata || null,
110
+ });
111
+ if (rpcError) {
112
+ // Fallback to direct insert if RPC fails (doesn't exist or signature mismatch)
113
+ console.error("[register_agent] RPC failed, falling back to direct insert:", rpcError.message);
114
+ const { data: directAgent, error: agentError } = await supabase
115
+ .from("agents")
116
+ .insert({
117
+ owner_user_id: ownerUserId,
118
+ name: params.name,
119
+ description: params.description || null,
120
+ agent_class: params.agent_class || null,
121
+ platform: params.platform || null,
122
+ is_public: params.is_public,
123
+ status: "active",
124
+ integrity_score: 75,
125
+ metadata: params.metadata || null,
126
+ })
127
+ .select()
128
+ .single();
129
+ if (agentError)
130
+ return toMcpResponse(handleSupabaseError(agentError, "register_agent"));
131
+ agent = directAgent;
132
+ }
133
+ else {
134
+ // RPC returns agent data
135
+ agent = rpcResult;
136
+ }
137
+ // Look up rank for level 1
138
+ const { data: rank } = await supabase
139
+ .from("rank_definitions")
140
+ .select("rank_name, rank_letter, min_level, max_level")
141
+ .eq("entity_type", "agent")
142
+ .eq("locale", "zh")
143
+ .lte("min_level", 1)
144
+ .gte("max_level", 1)
145
+ .maybeSingle();
146
+ const rankInfo = formatRankDisplay(1, rank?.rank_letter || null, rank?.rank_name || null, rank?.min_level || 1, rank?.max_level || 5);
147
+ // Ensure agent_id is always present (RPC may return it differently)
148
+ const agentId = agent.id || agent.agent_id;
149
+ return toMcpResponse(ok({
150
+ agent_id: agentId,
151
+ id: agentId,
152
+ name: agent.name,
153
+ description: agent.description,
154
+ agent_class: agent.agent_class,
155
+ platform: agent.platform,
156
+ xp: agent.xp,
157
+ integrity_score: agent.integrity_score,
158
+ is_public: agent.is_public,
159
+ rank_name: rank?.rank_name || null,
160
+ rank_letter: rank?.rank_letter || null,
161
+ rank_display: rankInfo.rank_display,
162
+ stars: rankInfo.stars,
163
+ stars_earned: rankInfo.stars_earned,
164
+ stars_total: rankInfo.stars_total,
165
+ owner_user_id: ownerUserId,
166
+ created_at: agent.created_at,
167
+ setup_hint: "运行 levelup_setup_wizard 并提供已安装的MCP来注册技能并获取经验值。",
168
+ }));
169
+ });
170
+ logRegistered("levelup_register_agent");
171
+ // ================================================================
172
+ // Tool 15: levelup_get_agent_profile
173
+ // ================================================================
174
+ server.registerTool("levelup_get_agent_profile", {
175
+ title: "获取智能体资料",
176
+ description: `获取智能体资料 — 等级、经验值、段位、职业、技能、所有者信息、活动记录。
177
+
178
+ 公开智能体显示完整详情。私有智能体仅显示有限信息,
179
+ 除非请求者是所有者。
180
+
181
+ 参数:
182
+ - agent_id (uuid): 要查询的智能体。
183
+
184
+ 返回:
185
+ 等级、经验值、段位、职业、平台、integrity_score、技能及熟练度、
186
+ 所有者用户名、近期任务数、可见性状态。`,
187
+ inputSchema: {
188
+ agent_id: uuidSchema.describe("The agent's ID"),
189
+ },
190
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
191
+ }, async (params) => {
192
+ // Fetch agent
193
+ const { data: agent, error: agentError } = await supabase
194
+ .from("agents")
195
+ .select("*")
196
+ .eq("id", params.agent_id)
197
+ .single();
198
+ if (agentError)
199
+ return toMcpResponse(handleSupabaseError(agentError, "get_agent_profile"));
200
+ // Get owner info (username only)
201
+ const { data: owner } = await supabase
202
+ .from("users")
203
+ .select("id, username, handle, profile_code")
204
+ .eq("id", agent.owner_user_id)
205
+ .single();
206
+ // Get rank
207
+ const { data: rank } = await supabase
208
+ .from("rank_definitions")
209
+ .select("rank_name, rank_letter, min_level, max_level")
210
+ .eq("entity_type", "agent")
211
+ .eq("locale", "zh")
212
+ .lte("min_level", agent.level)
213
+ .gte("max_level", agent.level)
214
+ .maybeSingle();
215
+ // Get skills with proficiency
216
+ const { data: agentSkills } = await supabase
217
+ .from("agent_skills")
218
+ .select("skill_id, proficiency_level, usage_count, last_used_at, acquired_reason")
219
+ .eq("agent_id", params.agent_id);
220
+ // Enrich skills with names
221
+ let skillDetails = [];
222
+ if (agentSkills && agentSkills.length > 0) {
223
+ const skillIds = agentSkills.map((s) => s.skill_id);
224
+ const { data: skills } = await supabase
225
+ .from("skills")
226
+ .select("id, name")
227
+ .in("id", skillIds);
228
+ const skillNameMap = new Map((skills || []).map((s) => [s.id, s.name]));
229
+ skillDetails = agentSkills.map((as) => ({
230
+ skill_id: as.skill_id,
231
+ skill_name: skillNameMap.get(as.skill_id) || "Unknown",
232
+ proficiency_level: as.proficiency_level,
233
+ usage_count: as.usage_count,
234
+ last_used_at: as.last_used_at,
235
+ acquired_reason: as.acquired_reason,
236
+ }));
237
+ }
238
+ // Recent task count (last 30 days)
239
+ const thirtyDaysAgo = new Date(Date.now() - 30 * 24 * 60 * 60 * 1000).toISOString();
240
+ const { count: recentTaskCount } = await supabase
241
+ .from("tasks")
242
+ .select("id", { count: "exact", head: true })
243
+ .eq("agent_id", params.agent_id)
244
+ .gte("created_at", thirtyDaysAgo);
245
+ const rankInfo = formatRankDisplay(agent.level, rank?.rank_letter || null, rank?.rank_name || null, rank?.min_level || 1, rank?.max_level || 5);
246
+ return toMcpResponse(ok({
247
+ id: agent.id,
248
+ name: agent.name,
249
+ description: agent.description,
250
+ agent_class: agent.agent_class,
251
+ platform: agent.platform,
252
+ xp: agent.xp,
253
+ integrity_score: agent.integrity_score,
254
+ is_public: agent.is_public,
255
+ status: agent.status,
256
+ last_active_at: agent.last_active_at,
257
+ rank_name: rank?.rank_name || null,
258
+ rank_letter: rank?.rank_letter || null,
259
+ rank_display: rankInfo.rank_display,
260
+ stars: rankInfo.stars,
261
+ stars_earned: rankInfo.stars_earned,
262
+ stars_total: rankInfo.stars_total,
263
+ owner: owner ? {
264
+ user_id: owner.id, username: owner.username,
265
+ handle: owner.handle, profile_code: owner.profile_code,
266
+ } : null,
267
+ skills: skillDetails,
268
+ recent_task_count: recentTaskCount || 0,
269
+ created_at: agent.created_at,
270
+ }));
271
+ });
272
+ logRegistered("levelup_get_agent_profile");
273
+ // ================================================================
274
+ // Tool 16: levelup_list_user_agents
275
+ // ================================================================
276
+ server.registerTool("levelup_list_user_agents", {
277
+ title: "列出用户智能体",
278
+ description: `列出用户拥有的所有智能体,支持可选的状态筛选和分页。
279
+
280
+ 参数:
281
+ - user_id (uuid): 智能体所有者。
282
+ - status (string, 可选): "active"、"archived" 或 "all"(默认: "active")。
283
+ - limit (integer, 可选): 最大结果数(默认 20,最大 100)。
284
+ - offset (integer, 可选): 分页偏移量(默认 0)。
285
+
286
+ 返回:
287
+ 智能体摘要的分页列表,包含等级、经验值、职业、技能数量。`,
288
+ inputSchema: {
289
+ caller_user_id: uuidSchema.describe("Your user ID (ownership verification)"),
290
+ user_id: uuidSchema.describe("Agent owner's ID (must be you)"),
291
+ status: z.enum(["active", "archived", "all"]).default("active").describe("Filter by status"),
292
+ limit: limitSchema,
293
+ offset: offsetSchema,
294
+ },
295
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
296
+ }, async (params) => {
297
+ // Ownership check
298
+ const denied = await verifyOwnership({ caller_user_id: params.caller_user_id, target_user_id: params.user_id });
299
+ if (denied)
300
+ return denied;
301
+ // Build query
302
+ let query = supabase
303
+ .from("agents")
304
+ .select("id, name, agent_class, platform, level, xp, integrity_score, is_public, status, last_active_at, created_at", { count: "exact" })
305
+ .eq("owner_user_id", params.user_id);
306
+ if (params.status !== "all") {
307
+ query = query.eq("status", params.status);
308
+ }
309
+ query = query
310
+ .order("created_at", { ascending: false })
311
+ .range(params.offset, params.offset + params.limit - 1);
312
+ const { data: agents, count, error } = await query;
313
+ if (error)
314
+ return toMcpResponse(handleSupabaseError(error, "list_user_agents"));
315
+ // Batch-fetch skill counts to avoid N+1 queries
316
+ const agentIds = (agents || []).map((a) => a.id);
317
+ const { data: skillCounts } = await supabase
318
+ .from("agent_skills")
319
+ .select("agent_id")
320
+ .in("agent_id", agentIds);
321
+ const skillCountMap = new Map();
322
+ for (const row of skillCounts || []) {
323
+ skillCountMap.set(row.agent_id, (skillCountMap.get(row.agent_id) || 0) + 1);
324
+ }
325
+ const enriched = (agents || []).map((agent) => ({
326
+ ...agent,
327
+ skill_count: skillCountMap.get(agent.id) || 0,
328
+ }));
329
+ return toMcpResponse(ok(paginate(enriched, count || 0, params.offset)));
330
+ });
331
+ logRegistered("levelup_list_user_agents");
332
+ // ================================================================
333
+ // Tool: levelup_update_agent
334
+ // ================================================================
335
+ server.registerTool("levelup_update_agent", {
336
+ title: "更新智能体",
337
+ description: `更新现有智能体的名称、描述、职业或元数据。
338
+ 保留所有经验值、技能和任务历史。
339
+
340
+ 参数:
341
+ - agent_id (uuid): 要更新的智能体。
342
+ - name (string, 可选): 新名称。
343
+ - description (string, 可选): 新描述。
344
+ - agent_class (string, 可选): 新职业。
345
+ - is_public (boolean, 可选): 可见性。
346
+ - metadata (object, 可选): 额外元数据。
347
+
348
+ 返回:
349
+ 更新后的智能体资料。`,
350
+ inputSchema: {
351
+ caller_user_id: uuidSchema.describe("Your user ID (ownership verification)"),
352
+ agent_id: uuidSchema.describe("Agent to update (must be yours)"),
353
+ name: z.string().min(1).max(100).optional().describe("New name"),
354
+ description: z.string().max(500).optional().describe("New description"),
355
+ agent_class: z.string().max(50).optional().describe("New class"),
356
+ is_public: z.boolean().optional().describe("Visibility"),
357
+ metadata: metadataSchema,
358
+ },
359
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
360
+ }, async (params) => {
361
+ // Ownership check
362
+ const denied = await verifyOwnership({ caller_user_id: params.caller_user_id, target_agent_id: params.agent_id });
363
+ if (denied)
364
+ return denied;
365
+ // Build update object with only provided fields
366
+ const updates = {};
367
+ if (params.name !== undefined)
368
+ updates.name = params.name;
369
+ if (params.description !== undefined)
370
+ updates.description = params.description;
371
+ if (params.agent_class !== undefined)
372
+ updates.agent_class = params.agent_class;
373
+ if (params.is_public !== undefined)
374
+ updates.is_public = params.is_public;
375
+ if (params.metadata !== undefined)
376
+ updates.metadata = params.metadata;
377
+ if (Object.keys(updates).length === 0) {
378
+ return toMcpResponse(fail("没有需要更新的字段。请至少提供以下之一: name、description、agent_class、is_public、metadata。"));
379
+ }
380
+ const { data: agent, error } = await supabase
381
+ .from("agents")
382
+ .update(updates)
383
+ .eq("id", params.agent_id)
384
+ .select()
385
+ .single();
386
+ if (error)
387
+ return toMcpResponse(handleSupabaseError(error, "update_agent"));
388
+ return toMcpResponse(ok({
389
+ agent_id: agent.id,
390
+ name: agent.name,
391
+ description: agent.description,
392
+ agent_class: agent.agent_class,
393
+ is_public: agent.is_public,
394
+ message: "智能体更新成功。所有经验值、技能和历史记录已保留。",
395
+ }));
396
+ });
397
+ logRegistered("levelup_update_agent");
398
+ console.error(` → 4 of 4 agent tools registered ✅`);
399
+ }
400
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../../src/tools/agents.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function handleBootstrap(params: Record<string, unknown>): Promise<{
3
+ content: Array<{
4
+ type: "text";
5
+ text: string;
6
+ }>;
7
+ isError?: boolean;
8
+ }>;
9
+ export declare function handleSetupWizard(params: Record<string, unknown>): Promise<{
10
+ content: Array<{
11
+ type: "text";
12
+ text: string;
13
+ }>;
14
+ isError?: boolean;
15
+ }>;
16
+ export declare function registerBootstrapTools(server: McpServer): void;
17
+ //# sourceMappingURL=bootstrap.d.ts.map