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,564 @@
1
+ // ============================================================
2
+ // tools/ratings.ts — Section 5: Ratings (7 tools)
3
+ // ============================================================
4
+ // Multi-signal quality system: no explicit star ratings.
5
+ // System (35%) + Agent (25%) + User implicit (20%) + Community (20%)
6
+ // ============================================================
7
+ import { z } from "zod";
8
+ import { supabase } from "../services/supabase.js";
9
+ import { ok, fail, handleSupabaseError } from "../services/errors.js";
10
+ import { toMcpResponse, logRegistered } from "../services/register.js";
11
+ import { uuidSchema } from "../schemas/common.js";
12
+ import { verifyOwnership } from "../services/ownership.js";
13
+ import { awardXpViaRpc, awardClassXpViaRpc } from "../services/quality-gate.js";
14
+ // ================================================================
15
+ // Exported handler: captureExpectationsHandler
16
+ // ================================================================
17
+ export const captureExpectationsHandler = async (params) => {
18
+ const { caller_user_id, task_id, user_id, timing, expectations } = params;
19
+ // Ownership check: caller must be the user_id
20
+ const denied = await verifyOwnership({ caller_user_id, target_user_id: user_id });
21
+ if (denied)
22
+ return denied;
23
+ const { data, error } = await supabase
24
+ .from("task_expectations")
25
+ .insert({ task_id, user_id, timing, expectations })
26
+ .select()
27
+ .single();
28
+ if (error)
29
+ return toMcpResponse(handleSupabaseError(error, "capture_expectations"));
30
+ // If "after", compute implicit satisfaction by comparing before/after
31
+ let satisfaction = null;
32
+ if (timing === "after") {
33
+ const { data: before } = await supabase
34
+ .from("task_expectations")
35
+ .select("expectations")
36
+ .eq("task_id", task_id)
37
+ .eq("user_id", user_id)
38
+ .eq("timing", "before")
39
+ .maybeSingle();
40
+ if (before) {
41
+ const improvementCount = expectations.improvements?.length || 0;
42
+ satisfaction = improvementCount === 0 ? 5 : improvementCount <= 1 ? 4 : improvementCount <= 3 ? 3 : 2;
43
+ }
44
+ }
45
+ return toMcpResponse(ok({
46
+ id: data.id,
47
+ task_id: data.task_id,
48
+ timing,
49
+ recorded: true,
50
+ implicit_satisfaction: satisfaction,
51
+ }));
52
+ };
53
+ // ================================================================
54
+ // Exported handler: submitAgentEvaluationHandler
55
+ // ================================================================
56
+ export const submitAgentEvaluationHandler = async (params) => {
57
+ const p = params;
58
+ // Ownership check: verify caller owns the evaluating agent
59
+ const ownershipErr = await verifyOwnership({
60
+ caller_user_id: p.caller_user_id,
61
+ target_agent_id: p.agent_id,
62
+ });
63
+ if (ownershipErr)
64
+ return ownershipErr;
65
+ const scores = {
66
+ request_clarity: p.request_clarity,
67
+ iteration_count: p.iteration_count,
68
+ iteration_types: p.iteration_types || [],
69
+ confidence: p.confidence,
70
+ errors_encountered: p.errors_encountered || 0,
71
+ errors_resolved: p.errors_resolved || 0,
72
+ skills_used: p.skills_used || [],
73
+ scope_changed: p.scope_changed || false,
74
+ complexity_assessment: p.complexity_assessment || null,
75
+ context_quality: p.context_quality || null,
76
+ feedback_quality: p.feedback_quality || null,
77
+ collaboration_style: p.collaboration_style || null,
78
+ user_contribution: p.user_contribution || null,
79
+ };
80
+ const { data: evaluation, error } = await supabase.rpc('add_task_evaluation_secure', {
81
+ p_task_id: p.task_id,
82
+ p_evaluator_type: "agent",
83
+ p_evaluator_id: p.agent_id,
84
+ p_scores: scores,
85
+ p_weight: 0.25,
86
+ });
87
+ if (error)
88
+ return toMcpResponse(handleSupabaseError(error, "submit_agent_evaluation"));
89
+ // --- Dynamic integrity: compare agent self-eval vs system template eval ---
90
+ let integrityDelta = 1;
91
+ let integrityReason = "eval_submitted";
92
+ const { data: systemEval } = await supabase
93
+ .from("task_evaluations")
94
+ .select("scores")
95
+ .eq("task_id", p.task_id)
96
+ .eq("evaluator_type", "system_template")
97
+ .maybeSingle();
98
+ if (systemEval?.scores) {
99
+ const sysScores = systemEval.scores;
100
+ const sysNums = Object.values(sysScores).filter((v) => typeof v === "number" && v >= 1 && v <= 5);
101
+ const sysAvg = sysNums.length > 0 ? sysNums.reduce((s, n) => s + n, 0) / sysNums.length : 3;
102
+ const agentNums = [p.confidence];
103
+ if (p.complexity_assessment) {
104
+ agentNums.push(Math.min(5, Math.round(p.complexity_assessment * 5 / 7)));
105
+ }
106
+ const agentAvg = agentNums.reduce((s, n) => s + n, 0) / agentNums.length;
107
+ const divergence = agentAvg - sysAvg;
108
+ if (Math.abs(divergence) <= 0.5) {
109
+ integrityDelta = 3;
110
+ integrityReason = "honest_self_assessor";
111
+ }
112
+ else if (Math.abs(divergence) <= 1.0) {
113
+ integrityDelta = 1;
114
+ integrityReason = "reasonable_self_eval";
115
+ }
116
+ else if (divergence > 1.0 && divergence <= 1.5) {
117
+ integrityDelta = -3;
118
+ integrityReason = "inflated_self_eval";
119
+ }
120
+ else if (divergence > 1.5) {
121
+ integrityDelta = -7;
122
+ integrityReason = "dishonest_self_eval";
123
+ }
124
+ else {
125
+ integrityDelta = 1;
126
+ integrityReason = "humble_self_eval";
127
+ }
128
+ }
129
+ await supabase.rpc('write_agent_eval_data_secure', {
130
+ p_task_id: p.task_id,
131
+ p_agent_id: p.agent_id,
132
+ p_evaluation_id: evaluation.id,
133
+ p_cross_ratings: p.cross_ratings || [],
134
+ p_integrity_delta: integrityDelta,
135
+ p_integrity_reason: integrityReason,
136
+ });
137
+ return toMcpResponse(ok({
138
+ evaluation_id: evaluation.id,
139
+ task_id: p.task_id,
140
+ agent_id: p.agent_id,
141
+ integrity_delta: integrityDelta,
142
+ integrity_reason: integrityReason,
143
+ cross_ratings_submitted: p.cross_ratings?.length || 0,
144
+ }));
145
+ };
146
+ // ================================================================
147
+ // Exported handler: requestSystemEvaluationHandler
148
+ // ================================================================
149
+ export const requestSystemEvaluationHandler = async (params) => {
150
+ const { caller_user_id, task_id, include_llm } = params;
151
+ const includeLlm = include_llm !== false;
152
+ const ownershipErr = await verifyOwnership({
153
+ caller_user_id,
154
+ target_task_id: task_id,
155
+ });
156
+ if (ownershipErr)
157
+ return ownershipErr;
158
+ const { data: task, error: taskError } = await supabase
159
+ .from("tasks").select("*").eq("id", task_id).single();
160
+ if (taskError)
161
+ return toMcpResponse(handleSupabaseError(taskError, "request_system_evaluation"));
162
+ if (task.status !== "completed" && task.status !== "failed") {
163
+ return toMcpResponse(fail("任务必须处于已完成或已失败状态才能进行评估"));
164
+ }
165
+ const completionScore = task.completion_pct >= 100 ? 5 : task.completion_pct >= 75 ? 4 : task.completion_pct >= 50 ? 3 : 2;
166
+ const hasOutput = task.output_type === "deliverable" || task.output_type === "deployed";
167
+ const outputScore = hasOutput ? 4 : 3;
168
+ const durationMinutes = task.duration_seconds ? task.duration_seconds / 60 : null;
169
+ const scores = {
170
+ completeness: completionScore,
171
+ output_quality: outputScore,
172
+ difficulty_appropriate: task.difficulty >= 3 ? 4 : 3,
173
+ timeliness: durationMinutes && durationMinutes < 60 ? 5 : durationMinutes && durationMinutes < 180 ? 4 : 3,
174
+ };
175
+ const { data: evaluation, error } = await supabase.rpc('add_task_evaluation_secure', {
176
+ p_task_id: task_id,
177
+ p_evaluator_type: "system_template",
178
+ p_evaluator_id: null,
179
+ p_scores: scores,
180
+ p_weight: includeLlm ? 0.175 : 0.35,
181
+ });
182
+ if (error)
183
+ return toMcpResponse(handleSupabaseError(error, "request_system_evaluation"));
184
+ return toMcpResponse(ok({
185
+ evaluation_id: evaluation.id,
186
+ task_id,
187
+ evaluator_type: "system_template",
188
+ scores,
189
+ llm_evaluation: includeLlm ? "延迟 — LLM评估尚未实现" : "已跳过",
190
+ }));
191
+ };
192
+ // ================================================================
193
+ // Exported handler: submitTestResultsHandler
194
+ // ================================================================
195
+ export const submitTestResultsHandler = async (params) => {
196
+ const { caller_user_id, task_id, test_type, passed, details } = params;
197
+ const ownershipErr = await verifyOwnership({
198
+ caller_user_id,
199
+ target_task_id: task_id,
200
+ });
201
+ if (ownershipErr)
202
+ return ownershipErr;
203
+ const scores = {
204
+ test_type,
205
+ passed,
206
+ score: passed ? 5 : 1,
207
+ details: details || {},
208
+ };
209
+ const { data: evaluation, error } = await supabase.rpc('add_task_evaluation_secure', {
210
+ p_task_id: task_id,
211
+ p_evaluator_type: "test",
212
+ p_evaluator_id: null,
213
+ p_scores: scores,
214
+ p_weight: 0.15,
215
+ });
216
+ if (error)
217
+ return toMcpResponse(handleSupabaseError(error, "submit_test_results"));
218
+ return toMcpResponse(ok({
219
+ evaluation_id: evaluation.id,
220
+ task_id,
221
+ test_type,
222
+ passed,
223
+ }));
224
+ };
225
+ // ================================================================
226
+ // Exported handler: getTaskQualityHandler
227
+ // ================================================================
228
+ export const getTaskQualityHandler = async (params) => {
229
+ const { task_id } = params;
230
+ const { data: evaluations, error } = await supabase
231
+ .from("task_evaluations")
232
+ .select("evaluator_type, scores, weight, created_at")
233
+ .eq("task_id", task_id);
234
+ if (error)
235
+ return toMcpResponse(handleSupabaseError(error, "get_task_quality"));
236
+ const { data: expectations } = await supabase
237
+ .from("task_expectations")
238
+ .select("timing, expectations")
239
+ .eq("task_id", task_id);
240
+ const { data: crossRatings } = await supabase
241
+ .from("agent_cross_ratings")
242
+ .select("rater_agent_id, rated_agent_id, contribution_quality, reliability, collaboration_quality, would_collaborate_again")
243
+ .eq("task_id", task_id);
244
+ let weightedSum = 0;
245
+ let totalWeight = 0;
246
+ const byType = {};
247
+ for (const ev of evaluations || []) {
248
+ const scores = ev.scores;
249
+ const numericScores = Object.values(scores).filter((v) => typeof v === "number" && v >= 1 && v <= 5);
250
+ if (numericScores.length > 0) {
251
+ const avg = numericScores.reduce((s, n) => s + n, 0) / numericScores.length;
252
+ weightedSum += avg * ev.weight;
253
+ totalWeight += ev.weight;
254
+ }
255
+ byType[ev.evaluator_type] = { scores: ev.scores, weight: ev.weight };
256
+ }
257
+ const compositeScore = totalWeight > 0 ? Math.round((weightedSum / totalWeight) * 100) / 100 : null;
258
+ return toMcpResponse(ok({
259
+ task_id,
260
+ composite_score: compositeScore,
261
+ composite_out_of: 5,
262
+ evaluation_count: (evaluations || []).length,
263
+ by_evaluator_type: byType,
264
+ expectations: {
265
+ before: expectations?.find((e) => e.timing === "before")?.expectations || null,
266
+ after: expectations?.find((e) => e.timing === "after")?.expectations || null,
267
+ },
268
+ cross_ratings: crossRatings || [],
269
+ }));
270
+ };
271
+ // ================================================================
272
+ // Exported handler: submitCalibrationReviewHandler
273
+ // ================================================================
274
+ export const submitCalibrationReviewHandler = async (params) => {
275
+ const { caller_user_id, calibration_item_id, reviewer_user_id, difficulty_assessment, comment } = params;
276
+ const denied = await verifyOwnership({ caller_user_id, target_user_id: reviewer_user_id });
277
+ if (denied)
278
+ return denied;
279
+ const { data: evaluation, error } = await supabase.rpc('add_task_evaluation_secure', {
280
+ p_task_id: calibration_item_id,
281
+ p_evaluator_type: "community",
282
+ p_evaluator_id: reviewer_user_id,
283
+ p_scores: {
284
+ difficulty_assessment,
285
+ comment: comment || null,
286
+ },
287
+ p_weight: 0.20,
288
+ });
289
+ if (error)
290
+ return toMcpResponse(handleSupabaseError(error, "submit_calibration_review"));
291
+ const todayStart = new Date();
292
+ todayStart.setHours(0, 0, 0, 0);
293
+ const { data: todayEntries } = await supabase
294
+ .from("xp_ledger")
295
+ .select("amount")
296
+ .eq("entity_type", "user")
297
+ .eq("entity_id", reviewer_user_id)
298
+ .eq("source_type", "calibration")
299
+ .gte("created_at", todayStart.toISOString());
300
+ const todayTotal = (todayEntries || []).reduce((s, r) => s + r.amount, 0);
301
+ const xpToAward = todayTotal >= 10 ? 0 : Math.min(2, 10 - todayTotal);
302
+ if (xpToAward > 0) {
303
+ await awardXpViaRpc("user", reviewer_user_id, xpToAward, "calibration", "校准评审", calibration_item_id);
304
+ await awardClassXpViaRpc(reviewer_user_id, "trainer", xpToAward, "calibration", "校准评审训练师职业经验值", calibration_item_id);
305
+ }
306
+ return toMcpResponse(ok({
307
+ evaluation_id: evaluation.id,
308
+ task_id: calibration_item_id,
309
+ difficulty_assessment,
310
+ trainer_xp_awarded: xpToAward,
311
+ daily_calibration_xp: todayTotal + xpToAward,
312
+ daily_cap: 10,
313
+ }));
314
+ };
315
+ // ================================================================
316
+ // Exported handler: getCalibrationQueueHandler
317
+ // ================================================================
318
+ export const getCalibrationQueueHandler = async (params) => {
319
+ const { user_id, limit } = params;
320
+ const effectiveLimit = limit || 5;
321
+ const { data: tasks, error } = await supabase
322
+ .from("tasks")
323
+ .select("id, title, task_type_id, difficulty, output_type, completion_pct, duration_seconds, tags")
324
+ .eq("status", "completed")
325
+ .neq("user_id", user_id)
326
+ .order("completed_at", { ascending: false })
327
+ .limit(effectiveLimit);
328
+ if (error)
329
+ return toMcpResponse(handleSupabaseError(error, "get_calibration_queue"));
330
+ const items = await Promise.all((tasks || []).map(async (task) => {
331
+ const { data: tt } = await supabase
332
+ .from("task_types").select("name, xp_tier").eq("id", task.task_type_id).single();
333
+ const { data: awards } = await supabase
334
+ .from("task_xp_awards").select("total_xp").eq("task_id", task.id);
335
+ const totalXp = (awards || []).reduce((s, a) => s + a.total_xp, 0);
336
+ return {
337
+ calibration_item_id: task.id,
338
+ task_type: tt?.name || "Unknown",
339
+ xp_tier: tt?.xp_tier || null,
340
+ difficulty: task.difficulty,
341
+ output_type: task.output_type,
342
+ completion_pct: task.completion_pct,
343
+ duration_minutes: task.duration_seconds ? Math.round(task.duration_seconds / 60) : null,
344
+ total_xp_awarded: totalXp,
345
+ tags: task.tags,
346
+ };
347
+ }));
348
+ return toMcpResponse(ok({ queue: items, count: items.length }));
349
+ };
350
+ export function registerRatingTools(server) {
351
+ console.error("\n📋 Section 5: Ratings");
352
+ // ================================================================
353
+ // Tool 30: levelup_capture_expectations
354
+ // ================================================================
355
+ server.registerTool("levelup_capture_expectations", {
356
+ title: "记录期望",
357
+ description: `记录用户在任务前或任务后的期望。由智能体静默调用。
358
+
359
+ "before": 用户对任务的期望。
360
+ "after": 用户对结果的感受(隐式满意度信号)。
361
+
362
+ 参数:
363
+ - task_id (uuid): 哪个任务。
364
+ - user_id (uuid): 哪个用户。
365
+ - timing (string): "before" 或 "after"。
366
+ - expectations (object): { time_target, features, quality_bar, improvements }
367
+
368
+ 返回:
369
+ 已记录的期望。如果是 "after",还会生成隐式满意度信号。`,
370
+ inputSchema: {
371
+ caller_user_id: uuidSchema.describe("Your user ID (ownership verification)"),
372
+ task_id: uuidSchema.describe("The task"),
373
+ user_id: uuidSchema.describe("The user (must be you)"),
374
+ timing: z.enum(["before", "after"]).describe('"before" or "after" the task'),
375
+ expectations: z.object({
376
+ time_target: z.string().optional().describe("Expected time"),
377
+ features: z.array(z.string()).optional().describe("Expected features"),
378
+ quality_bar: z.string().optional().describe("Quality expectation"),
379
+ improvements: z.array(z.string()).optional().describe("Suggested improvements (after only)"),
380
+ }).describe("Expectation details"),
381
+ },
382
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
383
+ }, captureExpectationsHandler);
384
+ logRegistered("levelup_capture_expectations");
385
+ // ================================================================
386
+ // Tool 31: levelup_submit_agent_evaluation
387
+ // ================================================================
388
+ server.registerTool("levelup_submit_agent_evaluation", {
389
+ title: "提交智能体评估",
390
+ description: `智能体完成任务后的自我评估。在 complete_task 之后调用。
391
+
392
+ 跳过此步骤会降低智能体经验值 20-30%。请如实填写 — 诚信分数
393
+ 取决于自我评估与系统评估之间的一致性。
394
+
395
+ 参数:
396
+ - task_id (uuid): 已完成的任务。
397
+ - agent_id (uuid): 进行评估的智能体。
398
+ - request_clarity (integer): 1-5 用户请求的清晰度。
399
+ - iteration_count (integer): 修改轮数。
400
+ - confidence (integer): 1-5 自我评估的置信度。
401
+ - iteration_types (string[], 可选): 每轮类型: "fundamental_redo"、"partial_fix"、"minor_tweak"、"scope_addition"。
402
+ - errors_encountered (integer, 可选): 错误数量。
403
+ - errors_resolved (integer, 可选): 已恢复的错误数。
404
+ - skills_used (uuid[], 可选): 实际使用的技能。
405
+ - scope_changed (boolean, 可选): 需求是否在任务中途变更。
406
+ - complexity_assessment (integer, 可选): 1-7 智能体对难度的判断。
407
+ - context_quality (integer, 可选): 1-5 用户提供的上下文质量。
408
+ - feedback_quality (integer, 可选): 1-5 用户修正意见的质量。
409
+ - collaboration_style (string, 可选): "directive"/"collaborative"/"hands_off"/"iterative"。
410
+ - user_contribution (string, 可选): 用户的贡献内容。
411
+ - cross_ratings (object[], 可选): 多智能体任务中对其他智能体的评分。
412
+
413
+ 返回:
414
+ 评估已记录、诚信分数影响。`,
415
+ inputSchema: {
416
+ caller_user_id: uuidSchema.describe("Your user_id for ownership verification"),
417
+ task_id: uuidSchema.describe("The completed task"),
418
+ agent_id: uuidSchema.describe("The evaluating agent"),
419
+ request_clarity: z.number().int().min(1).max(5).describe("1-5 request clarity"),
420
+ iteration_count: z.number().int().min(0).describe("Revision rounds"),
421
+ confidence: z.number().int().min(1).max(5).describe("1-5 self-confidence"),
422
+ iteration_types: z.array(z.enum(["fundamental_redo", "partial_fix", "minor_tweak", "scope_addition"])).optional(),
423
+ errors_encountered: z.number().int().min(0).optional(),
424
+ errors_resolved: z.number().int().min(0).optional(),
425
+ skills_used: z.array(uuidSchema).optional(),
426
+ scope_changed: z.boolean().optional(),
427
+ complexity_assessment: z.number().int().min(1).max(7).optional(),
428
+ context_quality: z.number().int().min(1).max(5).optional(),
429
+ feedback_quality: z.number().int().min(1).max(5).optional(),
430
+ collaboration_style: z.enum(["directive", "collaborative", "hands_off", "iterative"]).optional(),
431
+ user_contribution: z.string().max(500).optional(),
432
+ cross_ratings: z.array(z.object({
433
+ rated_agent_id: uuidSchema,
434
+ contribution_quality: z.number().int().min(1).max(5),
435
+ reliability: z.number().int().min(1).max(5),
436
+ collaboration_quality: z.number().int().min(1).max(5),
437
+ would_collaborate_again: z.boolean(),
438
+ })).optional(),
439
+ },
440
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
441
+ }, submitAgentEvaluationHandler);
442
+ logRegistered("levelup_submit_agent_evaluation");
443
+ // ================================================================
444
+ // Tool 32: levelup_request_system_evaluation
445
+ // ================================================================
446
+ server.registerTool("levelup_request_system_evaluation", {
447
+ title: "请求系统评估",
448
+ description: `触发已完成任务的系统评估。
449
+
450
+ 生成基于模板的评分。基于LLM的评估为可选且延迟执行。
451
+
452
+ 参数:
453
+ - task_id (uuid): 已完成的任务。
454
+ - include_llm (boolean, 可选): 包含LLM评估(默认: true,目前延迟)。
455
+
456
+ 返回:
457
+ 基于模板的评估评分。`,
458
+ inputSchema: {
459
+ caller_user_id: uuidSchema.describe("Your user_id for ownership verification"),
460
+ task_id: uuidSchema.describe("The completed task"),
461
+ include_llm: z.boolean().default(true).describe("Include LLM eval (deferred)"),
462
+ },
463
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
464
+ }, requestSystemEvaluationHandler);
465
+ logRegistered("levelup_request_system_evaluation");
466
+ // ================================================================
467
+ // Tool 33: levelup_submit_test_results
468
+ // ================================================================
469
+ server.registerTool("levelup_submit_test_results", {
470
+ title: "提交测试结果",
471
+ description: `提交任务的自动化测试结果(代码执行、部署检查等)。
472
+
473
+ 参数:
474
+ - task_id (uuid): 任务。
475
+ - test_type (string): "code_execution"、"deployment_check"、"action_verification"、"custom"。
476
+ - passed (boolean): 测试是否通过。
477
+ - details (object, 可选): 测试输出详情。
478
+
479
+ 返回:
480
+ 测试评估已记录。`,
481
+ inputSchema: {
482
+ caller_user_id: uuidSchema.describe("Your user_id for ownership verification"),
483
+ task_id: uuidSchema.describe("The task"),
484
+ test_type: z.enum(["code_execution", "deployment_check", "action_verification", "custom"]).describe("Type of test"),
485
+ passed: z.boolean().describe("Pass or fail"),
486
+ details: z.record(z.unknown()).optional().describe("Test output details"),
487
+ },
488
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
489
+ }, submitTestResultsHandler);
490
+ logRegistered("levelup_submit_test_results");
491
+ // ================================================================
492
+ // Tool 34: levelup_get_task_quality
493
+ // ================================================================
494
+ server.registerTool("levelup_get_task_quality", {
495
+ title: "获取任务质量",
496
+ description: `从所有评估信号获取任务的综合质量评分。
497
+
498
+ 组合: 系统 (35%) + 智能体 (25%) + 用户隐式 (20%) + 社区 (20%)。
499
+
500
+ 参数:
501
+ - task_id (uuid): 任务。
502
+
503
+ 返回:
504
+ 综合评分、按评估者类型的分解、迭代摘要、交叉评分。`,
505
+ inputSchema: {
506
+ task_id: uuidSchema.describe("The task"),
507
+ },
508
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
509
+ }, getTaskQualityHandler);
510
+ logRegistered("levelup_get_task_quality");
511
+ // ================================================================
512
+ // Tool 35: levelup_submit_calibration_review
513
+ // ================================================================
514
+ server.registerTool("levelup_submit_calibration_review", {
515
+ title: "提交校准评审",
516
+ description: `为任务的经验值奖励提交社区校准评审。
517
+
518
+ 用户审查匿名化的任务,评估难度/经验值是否公平。
519
+ 获得 1-2 训练师经验值(每日上限 10)。
520
+
521
+ 参数:
522
+ - calibration_item_id (uuid): 校准队列中的任务ID。
523
+ - reviewer_user_id (uuid): 评审者。
524
+ - difficulty_assessment (string): "undervalued"、"about_right" 或 "overvalued"。
525
+ - comment (string, 可选): 反馈。
526
+
527
+ 返回:
528
+ 评审已记录、训练师经验值已发放。`,
529
+ inputSchema: {
530
+ caller_user_id: uuidSchema.describe("Your user ID (ownership verification)"),
531
+ calibration_item_id: uuidSchema.describe("Task ID from calibration queue"),
532
+ reviewer_user_id: uuidSchema.describe("The reviewer (must be you)"),
533
+ difficulty_assessment: z.enum(["undervalued", "about_right", "overvalued"]).describe("Fair assessment"),
534
+ comment: z.string().max(500).optional().describe("Feedback"),
535
+ },
536
+ annotations: { readOnlyHint: false, destructiveHint: false, idempotentHint: true, openWorldHint: false },
537
+ }, submitCalibrationReviewHandler);
538
+ logRegistered("levelup_submit_calibration_review");
539
+ // ================================================================
540
+ // Tool 36: levelup_get_calibration_queue
541
+ // ================================================================
542
+ server.registerTool("levelup_get_calibration_queue", {
543
+ title: "获取校准队列",
544
+ description: `获取用于社区校准评审的匿名化任务。
545
+
546
+ 排除评审者自己的任务。显示任务摘要和获得的经验值,
547
+ 不透露执行者身份。
548
+
549
+ 参数:
550
+ - user_id (uuid): 评审者(用于排除自己的任务)。
551
+ - limit (integer, 可选): 返回数量(默认 5)。
552
+
553
+ 返回:
554
+ 准备评审的匿名化任务摘要。`,
555
+ inputSchema: {
556
+ user_id: uuidSchema.describe("Reviewer (excludes own tasks)"),
557
+ limit: z.number().int().min(1).max(20).default(5).describe("Items to return"),
558
+ },
559
+ annotations: { readOnlyHint: true, destructiveHint: false, idempotentHint: true, openWorldHint: false },
560
+ }, getCalibrationQueueHandler);
561
+ logRegistered("levelup_get_calibration_queue");
562
+ console.error(` → 7 of 7 rating tools registered ✅`);
563
+ }
564
+ //# sourceMappingURL=ratings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ratings.js","sourceRoot":"","sources":["../../src/tools/ratings.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
+ export declare function handleAddAgentSkill(params: Record<string, unknown>): Promise<{
3
+ content: Array<{
4
+ type: "text";
5
+ text: string;
6
+ }>;
7
+ isError?: boolean;
8
+ }>;
9
+ export declare function handleGetAgentSkills(params: Record<string, unknown>): Promise<{
10
+ content: Array<{
11
+ type: "text";
12
+ text: string;
13
+ }>;
14
+ isError?: boolean;
15
+ }>;
16
+ export declare function handleListSkills(params: Record<string, unknown>): Promise<{
17
+ content: Array<{
18
+ type: "text";
19
+ text: string;
20
+ }>;
21
+ isError?: boolean;
22
+ }>;
23
+ export declare function handleListSkillCategories(params: Record<string, unknown>): Promise<{
24
+ content: Array<{
25
+ type: "text";
26
+ text: string;
27
+ }>;
28
+ isError?: boolean;
29
+ }>;
30
+ export declare function handleSuggestSkill(params: Record<string, unknown>): Promise<{
31
+ content: Array<{
32
+ type: "text";
33
+ text: string;
34
+ }>;
35
+ isError?: boolean;
36
+ }>;
37
+ export declare function handleGetSkillProgress(params: Record<string, unknown>): Promise<{
38
+ content: Array<{
39
+ type: "text";
40
+ text: string;
41
+ }>;
42
+ isError?: boolean;
43
+ }>;
44
+ export declare function handleReportInstalledMcps(params: Record<string, unknown>): Promise<{
45
+ content: Array<{
46
+ type: "text";
47
+ text: string;
48
+ }>;
49
+ isError?: boolean;
50
+ }>;
51
+ export declare function handleGetPendingInstalls(params: Record<string, unknown>): Promise<{
52
+ content: Array<{
53
+ type: "text";
54
+ text: string;
55
+ }>;
56
+ isError?: boolean;
57
+ }>;
58
+ export declare function handleConfirmInstall(params: Record<string, unknown>): Promise<{
59
+ content: Array<{
60
+ type: "text";
61
+ text: string;
62
+ }>;
63
+ isError?: boolean;
64
+ }>;
65
+ export declare function registerSkillTools(server: McpServer): void;
66
+ //# sourceMappingURL=skills.d.ts.map