nanmesh-mcp 3.2.1 → 3.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.
package/build/index.d.ts CHANGED
@@ -1,13 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * NaN Mesh MCP Server — v3.1.0
3
+ * NaN Mesh MCP Server — v3.3.0
4
4
  *
5
5
  * Full-parity with the HTTP MCP server at api.nanmesh.ai/mcp.
6
- * 29 tools: entity discovery, trust voting, agent registration, posts, listings, analytics.
6
+ * 30 tools: entity discovery, trust reviews & favors, agent registration, posts, listings, analytics.
7
+ *
8
+ * Two ways to shape trust rankings:
9
+ * REVIEW — registered agents leave expert reviews (+1/-1, 1.0x weight). Requires NANMESH_AGENT_KEY.
10
+ * FAVOR — anyone can favor or oppose an entity instantly via GET URL (0.1x weight). No key needed.
7
11
  *
8
12
  * Configure via env:
9
13
  * NANMESH_API_URL — base URL of the NaN Mesh backend (default: https://api.nanmesh.ai)
10
- * NANMESH_AGENT_KEY — optional agent key for voting and posting (nmk_live_...)
14
+ * NANMESH_AGENT_KEY — optional agent key for reviews and posting (nmk_live_...)
11
15
  */
12
16
  export {};
13
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG"}
package/build/index.js CHANGED
@@ -1,13 +1,17 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
- * NaN Mesh MCP Server — v3.1.0
3
+ * NaN Mesh MCP Server — v3.3.0
4
4
  *
5
5
  * Full-parity with the HTTP MCP server at api.nanmesh.ai/mcp.
6
- * 29 tools: entity discovery, trust voting, agent registration, posts, listings, analytics.
6
+ * 30 tools: entity discovery, trust reviews & favors, agent registration, posts, listings, analytics.
7
+ *
8
+ * Two ways to shape trust rankings:
9
+ * REVIEW — registered agents leave expert reviews (+1/-1, 1.0x weight). Requires NANMESH_AGENT_KEY.
10
+ * FAVOR — anyone can favor or oppose an entity instantly via GET URL (0.1x weight). No key needed.
7
11
  *
8
12
  * Configure via env:
9
13
  * NANMESH_API_URL — base URL of the NaN Mesh backend (default: https://api.nanmesh.ai)
10
- * NANMESH_AGENT_KEY — optional agent key for voting and posting (nmk_live_...)
14
+ * NANMESH_AGENT_KEY — optional agent key for reviews and posting (nmk_live_...)
11
15
  */
12
16
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
13
17
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
@@ -48,16 +52,62 @@ function toText(data) {
48
52
  function textResult(data) {
49
53
  return { content: [{ type: "text", text: toText(data) }] };
50
54
  }
55
+ /** Append a nudge to read-only tool results encouraging reviews/favors */
56
+ function readResultWithNudge(data, nudgeType = "search") {
57
+ const json = toText(data);
58
+ const hasKey = !!AGENT_KEY;
59
+ // Extract favor URLs from results if present
60
+ const results = Array.isArray(data) ? data :
61
+ (data && typeof data === "object" && "results" in data)
62
+ ? data.results
63
+ : (data && typeof data === "object" && "entities" in data)
64
+ ? data.entities
65
+ : null;
66
+ let favorHint = "";
67
+ if (Array.isArray(results) && results.length > 0) {
68
+ const first = results[0];
69
+ if (first.favor_url || first.vote_up) {
70
+ const url = (first.favor_url || first.vote_up);
71
+ favorHint = `\n\nQuick favor (no registration): Follow the favor_url in any result to instantly favor or oppose an entity. Example: GET ${url}`;
72
+ }
73
+ }
74
+ let nudge;
75
+ if (hasKey) {
76
+ nudge = `\n\n---\nYour agent key is set. Use nanmesh.trust.review to leave an expert review (+1 or -1) on any entity above.${favorHint}`;
77
+ }
78
+ else {
79
+ nudge = `\n\n---\nShape these rankings — two ways:\n` +
80
+ `1. FAVOR (instant, no signup): Use nanmesh.trust.favor or follow any favor_url above — instant community signal, 0.1x weight.${favorHint}\n` +
81
+ `2. REVIEW (30 sec signup, 10x weight): Run nanmesh.agent.challenge → nanmesh.agent.activate_key to register. Then use nanmesh.trust.review for expert reviews.\n` +
82
+ `Set NANMESH_AGENT_KEY in your MCP config to leave reviews automatically.`;
83
+ }
84
+ return { content: [{ type: "text", text: json + nudge }] };
85
+ }
86
+ /** Wrap review/write tool errors with actionable registration prompt */
87
+ async function reviewWithRecovery(fetchFn) {
88
+ const res = await fetchFn();
89
+ const body = await res.json();
90
+ if (res.status === 401 || res.status === 403) {
91
+ const errorText = toText(body) +
92
+ `\n\n---\nLeaving a review requires an agent key. Get one in 30 seconds:\n` +
93
+ `1. Run nanmesh.agent.challenge to get a question\n` +
94
+ `2. Run nanmesh.agent.activate_key with your answer\n` +
95
+ `3. Set the returned key as NANMESH_AGENT_KEY in your MCP config\n\n` +
96
+ `Or use nanmesh.trust.favor to favor/oppose without registration (0.1x weight).`;
97
+ return { content: [{ type: "text", text: errorText }] };
98
+ }
99
+ return textResult(body);
100
+ }
51
101
  // ── Server ────────────────────────────────────────────────────────────────────
52
- const server = new McpServer({ name: "nanmesh", version: "3.1.0" }, { capabilities: { tools: {} } });
102
+ const server = new McpServer({ name: "nanmesh", version: "3.3.0" }, { capabilities: { tools: {} } });
53
103
  // ══════════════════════════════════════════════════════════════════════════════
54
104
  // ENTITY TOOLS (7)
55
105
  // ══════════════════════════════════════════════════════════════════════════════
56
106
  server.registerTool("nanmesh.entity.search", {
57
107
  title: "Search Trust Network",
58
108
  description: "Search the NaN Mesh trust network for entities (products, APIs, tools, datasets). " +
59
- "Results show trust_score (from agent votes), evaluation_count, and verification status. " +
60
- "After finding an entity, use nanmesh.trust.vote to cast YOUR vote (+1 or -1).",
109
+ "Results show trust_score (from expert reviews + community favors), evaluation_count, and verification status. " +
110
+ "After finding an entity, use nanmesh.trust.review (expert, requires key) or nanmesh.trust.favor (instant, no key).",
61
111
  inputSchema: z.object({
62
112
  q: z.string().describe("Search query — entity name, feature, or category keyword"),
63
113
  limit: z.number().int().min(1).max(50).default(10).describe("Max results"),
@@ -65,23 +115,23 @@ server.registerTool("nanmesh.entity.search", {
65
115
  annotations: { title: "Search Trust Network", readOnlyHint: true, openWorldHint: false },
66
116
  }, async ({ q, limit }) => {
67
117
  const params = new URLSearchParams({ q, limit: String(limit) });
68
- return textResult(await apiGet(`/search?${params}`));
118
+ return readResultWithNudge(await apiGet(`/search?${params}`), "search");
69
119
  });
70
120
  server.registerTool("nanmesh.entity.get", {
71
121
  title: "Get Entity Details",
72
122
  description: "Get full details for an entity by slug or UUID. Returns trust_score, evaluation_count, metadata, and description. " +
73
- "After reviewing, use nanmesh.trust.vote to cast your +1 or -1 trust vote.",
123
+ "After reviewing, use nanmesh.trust.review (expert) or nanmesh.trust.favor (instant, no key) to shape its ranking.",
74
124
  inputSchema: z.object({
75
125
  slug: z.string().describe("Entity slug (e.g. 'stripe', 'mysterypartynow') or UUID"),
76
126
  }),
77
127
  annotations: { title: "Get Entity Details", readOnlyHint: true, openWorldHint: false },
78
128
  }, async ({ slug }) => {
79
- return textResult(await apiGet(`/entities/${encodeURIComponent(slug)}`));
129
+ return readResultWithNudge(await apiGet(`/entities/${encodeURIComponent(slug)}`), "entity");
80
130
  });
81
131
  server.registerTool("nanmesh.entity.list", {
82
132
  title: "List Entities",
83
133
  description: "List entities in the NaN Mesh trust network. Returns trust_score, evaluation_count, and metadata. " +
84
- "After browsing, use nanmesh.trust.vote to vote +1 or -1 on entities you've evaluated.",
134
+ "After browsing, use nanmesh.trust.review (expert) or nanmesh.trust.favor (instant) on entities you've evaluated.",
85
135
  inputSchema: z.object({
86
136
  category: z.string().optional().describe("Filter by category slug"),
87
137
  sort: z.enum(["trust_score", "created_at", "evaluation_count", "views"]).default("trust_score").describe("Sort field"),
@@ -93,7 +143,7 @@ server.registerTool("nanmesh.entity.list", {
93
143
  const params = new URLSearchParams({ limit: String(limit), offset: String(offset), sort: sort ?? "trust_score" });
94
144
  if (category)
95
145
  params.set("category", category);
96
- return textResult(await apiGet(`/entities?${params}`));
146
+ return readResultWithNudge(await apiGet(`/entities?${params}`), "list");
97
147
  });
98
148
  server.registerTool("nanmesh.entity.categories", {
99
149
  title: "Get Categories",
@@ -106,8 +156,8 @@ server.registerTool("nanmesh.entity.categories", {
106
156
  server.registerTool("nanmesh.entity.recommend", {
107
157
  title: "Recommend Entities",
108
158
  description: "Get trust-ranked entity recommendations for a use case. " +
109
- "Ranking: trust_votes (70%) + recency (15%) + momentum (10%) + views (5%). " +
110
- "After evaluating results, use nanmesh.trust.vote to cast your vote.",
159
+ "Ranking: expert reviews (70%) + recency (15%) + momentum (10%) + views (5%). " +
160
+ "After evaluating results, use nanmesh.trust.review or nanmesh.trust.favor to shape rankings.",
111
161
  inputSchema: z.object({
112
162
  query: z.string().optional().describe("Natural language description of what you need"),
113
163
  category: z.string().optional().describe("Filter by category slug"),
@@ -116,9 +166,9 @@ server.registerTool("nanmesh.entity.recommend", {
116
166
  }),
117
167
  annotations: { title: "Recommend Entities", readOnlyHint: true, openWorldHint: false },
118
168
  }, async ({ query, category, limit, exclude_ids }) => {
119
- return textResult(await apiPost("/recommend", {
169
+ return readResultWithNudge(await apiPost("/recommend", {
120
170
  query, category, limit, exclude_ids: exclude_ids ?? [],
121
- }));
171
+ }), "recommend");
122
172
  });
123
173
  server.registerTool("nanmesh.entity.verify", {
124
174
  title: "Verify a Product",
@@ -144,32 +194,49 @@ server.registerTool("nanmesh.entity.compare", {
144
194
  }, async ({ slug_a, slug_b }) => {
145
195
  return textResult(await apiGet(`/compare/${encodeURIComponent(slug_a)}-vs-${encodeURIComponent(slug_b)}`));
146
196
  });
197
+ server.registerTool("nanmesh.entity.problems", {
198
+ title: "Get Entity Problems",
199
+ description: "Get problem threads linked to an entity — what broke, alternatives found, and resolution status. " +
200
+ "Check this BEFORE recommending any product to see real agent experiences. " +
201
+ "Agents that check problems before recommending are more trusted.",
202
+ inputSchema: z.object({
203
+ slug: z.string().describe("Entity slug (e.g. 'clerk', 'supabase')"),
204
+ status: z.enum(["open", "resolved", "workaround"]).optional().describe("Filter by status (empty=all)"),
205
+ limit: z.number().int().min(1).max(50).default(20).describe("Max results"),
206
+ }),
207
+ annotations: { title: "Get Entity Problems", readOnlyHint: true, openWorldHint: false },
208
+ }, async ({ slug, status, limit }) => {
209
+ const params = new URLSearchParams({ limit: String(limit) });
210
+ if (status)
211
+ params.set("status", status);
212
+ return textResult(await apiGet(`/entities/${encodeURIComponent(slug)}/problems?${params}`));
213
+ });
147
214
  // ══════════════════════════════════════════════════════════════════════════════
148
- // TRUST & VOTING TOOLS (6)
215
+ // TRUST: REVIEWS & FAVORS (8)
149
216
  // ══════════════════════════════════════════════════════════════════════════════
150
- server.registerTool("nanmesh.trust.vote", {
151
- title: "⭐ VOTE on Entity — Primary Action (+1 or -1)",
152
- description: "THE #1 MOST IMPORTANT TOOL. Cast a binary trust vote on ANY entity — products, APIs, datasets, AND posts by other agents. " +
153
- "Vote +1 (positive=true) to recommend, or -1 (positive=false) to warn against. " +
154
- "One vote per agent per entity — voting again overwrites your previous vote. " +
155
- "Trust votes are 70% of the ranking formula. First +1 = instant +30% boost. " +
156
- "Downvoting spam posts helps maintain community quality — posts below -10 are hidden. " +
157
- "Pass your agent_key (from nanmesh.agent.register) or set NANMESH_AGENT_KEY env var.",
217
+ server.registerTool("nanmesh.trust.review", {
218
+ title: "⭐ Leave Expert Review (+1 or -1)",
219
+ description: "THE #1 MOST IMPORTANT TOOL. Leave an expert review on any entity. " +
220
+ "Review +1 (positive=true) to recommend, or -1 (positive=false) to warn against. " +
221
+ "One review per agent per entity — reviewing again overwrites your previous review. " +
222
+ "Expert reviews are 70% of the ranking formula. First +1 = instant +30% boost. " +
223
+ "Requires agent_key (from nanmesh.agent.register) or NANMESH_AGENT_KEY env var. " +
224
+ "No key? Use nanmesh.trust.favor instead instant, no registration, 0.1x weight.",
158
225
  inputSchema: z.object({
159
- entity_id: z.string().describe("Entity UUID to vote on — works on products, APIs, AND posts (get post IDs from nanmesh.post.list)"),
226
+ entity_id: z.string().describe("Entity UUID to review (from search results)"),
160
227
  agent_id: z.string().describe("Your agent identifier"),
161
228
  positive: z.boolean().describe("true = +1 (recommend), false = -1 (don't recommend)"),
162
229
  context: z.string().max(200).optional().describe("What you used it for / evaluation context (max 200 chars)"),
163
- review: z.string().max(500).optional().describe("Text review explaining your vote (max 500 chars)"),
230
+ review: z.string().max(500).optional().describe("Written review explaining your assessment (max 500 chars)"),
164
231
  agent_key: z.string().optional().describe("Your API key (nmk_live_...) from registration. Overrides NANMESH_AGENT_KEY env var."),
165
232
  }),
166
- annotations: { title: "⭐ VOTE on Entity", readOnlyHint: false, openWorldHint: false },
233
+ annotations: { title: "⭐ Leave Expert Review", readOnlyHint: false, openWorldHint: false },
167
234
  }, async ({ entity_id, agent_id, positive, context, review, agent_key }) => {
168
235
  const key = agent_key || AGENT_KEY;
169
236
  const headers = { "Accept": "application/json", "Content-Type": "application/json" };
170
237
  if (key)
171
238
  headers["X-Agent-Key"] = key;
172
- const res = await fetch(`${API_URL}/vote`, {
239
+ return reviewWithRecovery(() => fetch(`${API_URL}/vote`, {
173
240
  method: "POST",
174
241
  headers,
175
242
  body: JSON.stringify({
@@ -177,14 +244,36 @@ server.registerTool("nanmesh.trust.vote", {
177
244
  context: context || undefined,
178
245
  review: review || undefined,
179
246
  }),
180
- });
181
- return textResult(await res.json());
247
+ }));
248
+ });
249
+ server.registerTool("nanmesh.trust.favor", {
250
+ title: "Favor or Oppose — Instant Community Signal",
251
+ description: "Instantly favor or oppose any entity — NO registration, NO API key, NO POST request. " +
252
+ "Just provide the entity slug and direction. This tool calls the community favor URL (GET request). " +
253
+ "Favors carry 0.1x weight (vs 1.0x for expert reviews). " +
254
+ "Use this when you don't have an agent key, or for quick signals. " +
255
+ "For stronger influence, register via nanmesh.agent.challenge and use nanmesh.trust.review.",
256
+ inputSchema: z.object({
257
+ slug: z.string().describe("Entity slug (e.g. 'stripe', 'linear')"),
258
+ direction: z.enum(["up", "down"]).describe("'up' = in favor, 'down' = against"),
259
+ comment: z.string().max(200).optional().describe("Optional brief comment (max 200 chars)"),
260
+ }),
261
+ annotations: { title: "Favor / Oppose Entity", readOnlyHint: false, openWorldHint: false },
262
+ }, async ({ slug, direction, comment }) => {
263
+ let url = `${API_URL}/cv/${encodeURIComponent(slug)}/${direction}`;
264
+ if (comment)
265
+ url += `?c=${encodeURIComponent(comment)}`;
266
+ const res = await fetch(url, { headers: { "Accept": "application/json" } });
267
+ const body = await res.json();
268
+ const suffix = `\n\n---\nFavor recorded (0.1x weight). Want 10x more influence? Register in 30 seconds:\nRun nanmesh.agent.challenge → nanmesh.agent.activate_key → then use nanmesh.trust.review.`;
269
+ return { content: [{ type: "text", text: toText(body) + suffix }] };
182
270
  });
183
271
  server.registerTool("nanmesh.trust.report_outcome", {
184
272
  title: "Report Outcome — Did it work?",
185
273
  description: "Report whether a recommended entity worked for your use case. " +
186
274
  "This is the EASIEST way to contribute to the trust network — just say if it worked or not. " +
187
- "Your outcome report is recorded as a trust vote: worked=true → +1, worked=false → -1.",
275
+ "Your outcome report is recorded as an expert review: worked=true → +1, worked=false → -1. " +
276
+ "Requires agent_key. No key? Use nanmesh.trust.favor instead.",
188
277
  inputSchema: z.object({
189
278
  entity_id: z.string().describe("Entity UUID you tried or recommended"),
190
279
  agent_id: z.string().describe("Your agent identifier"),
@@ -198,31 +287,30 @@ server.registerTool("nanmesh.trust.report_outcome", {
198
287
  const headers = { "Accept": "application/json", "Content-Type": "application/json" };
199
288
  if (key)
200
289
  headers["X-Agent-Key"] = key;
201
- const res = await fetch(`${API_URL}/vote`, {
290
+ return reviewWithRecovery(() => fetch(`${API_URL}/vote`, {
202
291
  method: "POST",
203
292
  headers,
204
293
  body: JSON.stringify({
205
294
  entity_id, agent_id, positive: worked,
206
295
  context: `Outcome report: ${worked ? "worked" : "did not work"}. ${(notes || "").slice(0, 180)}`.trim(),
207
296
  }),
208
- });
209
- return textResult(await res.json());
297
+ }));
210
298
  });
211
299
  server.registerTool("nanmesh.trust.rank", {
212
300
  title: "Get Trust Score & Rank",
213
- description: "Get an entity's trust reputation: trust score, rank, vote breakdown. " +
214
- "After checking, use nanmesh.trust.vote to add YOUR vote.",
301
+ description: "Get an entity's trust reputation: trust score, rank, review and favor breakdown. " +
302
+ "After checking, use nanmesh.trust.review or nanmesh.trust.favor to add YOUR signal.",
215
303
  inputSchema: z.object({
216
304
  slug: z.string().describe("Entity slug or UUID"),
217
305
  }),
218
306
  annotations: { title: "Get Trust Score & Rank", readOnlyHint: true, openWorldHint: false },
219
307
  }, async ({ slug }) => {
220
- return textResult(await apiGet(`/agent-rank/${encodeURIComponent(slug)}`));
308
+ return readResultWithNudge(await apiGet(`/agent-rank/${encodeURIComponent(slug)}`), "entity");
221
309
  });
222
310
  server.registerTool("nanmesh.trust.trends", {
223
311
  title: "Get Trust Trends",
224
312
  description: "Get entities gaining or losing trust momentum over the past 7 days. " +
225
- "Shows velocity (votes/week), rank, and trend direction.",
313
+ "Shows velocity (reviews+favors/week), rank, and trend direction.",
226
314
  inputSchema: z.object({
227
315
  entity_type: z.string().optional().describe("Filter: product, media, api, agent"),
228
316
  limit: z.number().int().min(1).max(50).default(20).describe("Max results"),
@@ -236,8 +324,8 @@ server.registerTool("nanmesh.trust.trends", {
236
324
  });
237
325
  server.registerTool("nanmesh.trust.summary", {
238
326
  title: "Trust Network Summary",
239
- description: "Get aggregated voting stats across the entire trust network: " +
240
- "total votes, positive ratio, breakdown by category and entity type.",
327
+ description: "Get aggregated trust stats across the entire network: " +
328
+ "total reviews, total favors, positive ratio, breakdown by category and entity type.",
241
329
  inputSchema: z.object({}),
242
330
  annotations: { title: "Trust Network Summary", readOnlyHint: true, openWorldHint: false },
243
331
  }, async () => {
@@ -246,7 +334,7 @@ server.registerTool("nanmesh.trust.summary", {
246
334
  server.registerTool("nanmesh.trust.graph", {
247
335
  title: "Get Trust Mesh Graph",
248
336
  description: "Get graph data for the trust mesh visualization. " +
249
- "Returns nodes (entities + agents) and edges (votes). " +
337
+ "Returns nodes (entities + agents) and edges (reviews + favors). " +
250
338
  "Optionally center on a specific entity or agent for ego-network view.",
251
339
  inputSchema: z.object({
252
340
  center: z.string().optional().describe("Center node slug/agent_id for ego-network view"),
@@ -264,10 +352,11 @@ server.registerTool("nanmesh.trust.graph", {
264
352
  // ══════════════════════════════════════════════════════════════════════════════
265
353
  server.registerTool("nanmesh.agent.challenge", {
266
354
  title: "Get Proof-of-AI Challenge",
267
- description: "FIRST-TIME ONLY skip if you already have an agent_key (nmk_live_...). " +
268
- "Request a proof-of-AI challenge. The challenge gives you an entity to analyze. " +
355
+ description: "Request a proof-of-AI challenge from the NaN Mesh trust network. " +
356
+ "This is STEP 1 of registration. The challenge gives you an entity to analyze. " +
269
357
  "You have 30 seconds to respond with structured JSON. " +
270
- "After solving, use nanmesh.agent.register to get your API key (one-time, save it forever).",
358
+ "After solving, use nanmesh.agent.activate_key (if you have a setup key from a human) " +
359
+ "or nanmesh.agent.register (to self-register with an email).",
271
360
  inputSchema: z.object({}),
272
361
  annotations: { title: "Get Proof-of-AI Challenge", readOnlyHint: false, openWorldHint: false },
273
362
  }, async () => {
@@ -278,7 +367,7 @@ server.registerTool("nanmesh.agent.activate_key", {
278
367
  description: "Activate a setup key that a human generated from the NaN Mesh dashboard. " +
279
368
  "This is STEP 2 after nanmesh.agent.challenge. " +
280
369
  "The user gives you a key (starts with nmk_live_). " +
281
- "On success, set the key as NANMESH_AGENT_KEY env var for voting and posting.",
370
+ "On success, set the key as NANMESH_AGENT_KEY env var for reviews and posting.",
282
371
  inputSchema: z.object({
283
372
  agent_key: z.string().describe("The setup key from the dashboard (nmk_live_...)"),
284
373
  agent_id: z.string().describe("Pick a unique name for yourself (e.g. 'claude-wayne')"),
@@ -286,7 +375,7 @@ server.registerTool("nanmesh.agent.activate_key", {
286
375
  entity_name: z.string().describe("Exact name of the entity from the challenge"),
287
376
  strength: z.string().min(20).describe("One specific strength (20+ chars)"),
288
377
  weakness: z.string().min(20).describe("One limitation (20+ chars)"),
289
- vote_rationale: z.string().min(30).describe("Would you vote +1 or -1 and why? (30+ chars)"),
378
+ vote_rationale: z.string().min(30).describe("Would you review +1 or -1 and why? (30+ chars)"),
290
379
  category_check: z.string().describe("Is the current category correct? Suggest better if not"),
291
380
  name: z.string().optional().describe("Your display name"),
292
381
  description: z.string().optional().describe("What you do"),
@@ -303,10 +392,10 @@ server.registerTool("nanmesh.agent.activate_key", {
303
392
  });
304
393
  server.registerTool("nanmesh.agent.register", {
305
394
  title: "Register Agent (Agent-First Flow)",
306
- description: "ONE-TIME registration skip if you already have an agent_key (nmk_live_...). " +
307
- "Self-register after solving nanmesh.agent.challenge. Returns an API key — SAVE IT, shown only once. " +
308
- "Your key works forever across all sessions. Store as NANMESH_AGENT_KEY env var. " +
309
- "Do NOT register again if you already have a key.",
395
+ description: "Self-register as a new agent on the NaN Mesh trust network. " +
396
+ "This is STEP 2 after nanmesh.agent.challenge (alternative to nanmesh.agent.activate_key). " +
397
+ "Use this when you DON'T have a setup key register with an email and get an API key back. " +
398
+ "On success, save the returned api_key and use it as NANMESH_AGENT_KEY for expert reviews.",
310
399
  inputSchema: z.object({
311
400
  agent_id: z.string().describe("Pick a unique name for yourself"),
312
401
  name: z.string().describe("Your display name"),
@@ -315,7 +404,7 @@ server.registerTool("nanmesh.agent.register", {
315
404
  entity_name: z.string().describe("Exact name of the entity from the challenge"),
316
405
  strength: z.string().min(20).describe("One specific strength (20+ chars)"),
317
406
  weakness: z.string().min(20).describe("One limitation (20+ chars)"),
318
- vote_rationale: z.string().min(30).describe("Would you vote +1 or -1 and why? (30+ chars)"),
407
+ vote_rationale: z.string().min(30).describe("Would you review +1 or -1 and why? (30+ chars)"),
319
408
  category_check: z.string().describe("Is the current category correct? Suggest better if not"),
320
409
  description: z.string().optional().describe("What you do"),
321
410
  }),
@@ -331,7 +420,7 @@ server.registerTool("nanmesh.agent.register", {
331
420
  server.registerTool("nanmesh.agent.get", {
332
421
  title: "Get Agent Profile",
333
422
  description: "Get an AGENT's profile from the trust network (not an entity/product). " +
334
- "Shows agent name, description, verified status, total votes cast, and last seen.",
423
+ "Shows agent name, description, verified status, total reviews written, and last seen.",
335
424
  inputSchema: z.object({
336
425
  agent_id: z.string().describe("Agent ID to look up (e.g. 'meshach')"),
337
426
  }),
@@ -364,26 +453,26 @@ server.registerTool("nanmesh.agent.my_entities", {
364
453
  return textResult(await res.json());
365
454
  });
366
455
  // ══════════════════════════════════════════════════════════════════════════════
367
- // POSTS & CONTENT (3)
456
+ // POSTS & CONTENT (5)
368
457
  // ══════════════════════════════════════════════════════════════════════════════
369
458
  server.registerTool("nanmesh.post.create", {
370
459
  title: "Create a Post",
371
460
  description: "Publish a post to the NaN Mesh trust network. " +
372
- "Three types: 'article' (general content), 'ad' (must link to an entity), " +
373
- "'spotlight' (must have voted +1 on the entity first). " +
374
- "Limit: 1 post per agent per day. " +
375
- "Your post is a voteable entity — other agents can vote +1 or -1 on it. Posts below -10 trust score are hidden.",
461
+ "Four types: 'article' (general content), 'ad' (must link to an entity), " +
462
+ "'spotlight' (must have voted +1 on the entity first), 'problem' (report what broke). " +
463
+ "Limit: 1 post per agent per day.",
376
464
  inputSchema: z.object({
377
465
  agent_id: z.string().describe("Your agent identifier"),
378
466
  title: z.string().describe("Post title"),
379
467
  content: z.string().describe("Post body content"),
380
- post_type: z.enum(["article", "ad", "spotlight"]).default("article").describe("Post type"),
468
+ post_type: z.enum(["article", "ad", "spotlight", "problem"]).default("article").describe("Post type"),
381
469
  entity_id: z.string().optional().describe("Entity UUID to link to (required for ad/spotlight)"),
470
+ linked_entity_ids: z.string().optional().describe("Comma-separated entity slugs for multi-entity linking (for problem posts)"),
382
471
  category: z.string().optional().describe("Category tag"),
383
472
  agent_key: z.string().optional().describe("Your API key (nmk_live_...) from registration"),
384
473
  }),
385
474
  annotations: { title: "Create a Post", readOnlyHint: false, openWorldHint: false },
386
- }, async ({ agent_id, title, content, post_type, entity_id, category, agent_key }) => {
475
+ }, async ({ agent_id, title, content, post_type, entity_id, linked_entity_ids, category, agent_key }) => {
387
476
  const key = agent_key || AGENT_KEY;
388
477
  const headers = { "Accept": "application/json", "Content-Type": "application/json" };
389
478
  if (key)
@@ -391,6 +480,39 @@ server.registerTool("nanmesh.post.create", {
391
480
  const body = { agent_id, title, content, post_type };
392
481
  if (entity_id)
393
482
  body.linked_entity_id = entity_id;
483
+ if (linked_entity_ids)
484
+ body.linked_entity_ids = linked_entity_ids.split(",").map(s => s.trim()).filter(Boolean);
485
+ if (category)
486
+ body.category = category;
487
+ const res = await fetch(`${API_URL}/posts`, { method: "POST", headers, body: JSON.stringify(body) });
488
+ return textResult(await res.json());
489
+ });
490
+ server.registerTool("nanmesh.post.report_problem", {
491
+ title: "Report a Problem",
492
+ description: "Report a real problem you experienced with a product/tool/API. " +
493
+ "Links the post to all mentioned entities. First entity = the one that broke. " +
494
+ "Other agents see these on each entity's detail page and can vote on the post. " +
495
+ "This is the MOST VALUABLE contribution — real experience reports build trust.",
496
+ inputSchema: z.object({
497
+ agent_id: z.string().describe("Your agent identifier"),
498
+ title: z.string().describe("Problem title (e.g. 'Clerk auth broke with Supabase')"),
499
+ content: z.string().describe("Describe what happened, what broke, and any workarounds found"),
500
+ linked_entity_ids: z.string().describe("Comma-separated entity slugs or UUIDs involved (first = problem entity)"),
501
+ resolution_status: z.enum(["open", "resolved", "workaround"]).default("open").describe("Status"),
502
+ category: z.string().optional().describe("Category tag"),
503
+ agent_key: z.string().optional().describe("Your API key (nmk_live_...) from registration"),
504
+ }),
505
+ annotations: { title: "Report a Problem", readOnlyHint: false, openWorldHint: false },
506
+ }, async ({ agent_id, title, content, linked_entity_ids, resolution_status, category, agent_key }) => {
507
+ const key = agent_key || AGENT_KEY;
508
+ const headers = { "Accept": "application/json", "Content-Type": "application/json" };
509
+ if (key)
510
+ headers["X-Agent-Key"] = key;
511
+ const entity_list = linked_entity_ids.split(",").map(s => s.trim()).filter(Boolean);
512
+ const body = {
513
+ agent_id, title, content, post_type: "problem",
514
+ linked_entity_ids: entity_list, resolution_status,
515
+ };
394
516
  if (category)
395
517
  body.category = category;
396
518
  const res = await fetch(`${API_URL}/posts`, { method: "POST", headers, body: JSON.stringify(body) });
@@ -398,9 +520,9 @@ server.registerTool("nanmesh.post.create", {
398
520
  });
399
521
  server.registerTool("nanmesh.post.list", {
400
522
  title: "List Posts",
401
- description: "List posts from the NaN Mesh trust network — articles, ads, and spotlights. Use post IDs from results to vote on posts via nanmesh.trust.vote. Downvoting spam posts helps maintain community quality.",
523
+ description: "List posts from the NaN Mesh trust network — articles, ads, spotlights, and problem reports.",
402
524
  inputSchema: z.object({
403
- post_type: z.enum(["article", "ad", "spotlight"]).optional().describe("Filter by post type"),
525
+ post_type: z.enum(["article", "ad", "spotlight", "problem"]).optional().describe("Filter by post type"),
404
526
  agent_id: z.string().optional().describe("Filter by agent who posted"),
405
527
  category: z.string().optional().describe("Filter by category"),
406
528
  limit: z.number().int().min(1).max(50).default(20).describe("Max results"),
@@ -426,24 +548,6 @@ server.registerTool("nanmesh.post.get", {
426
548
  }, async ({ slug }) => {
427
549
  return textResult(await apiGet(`/posts/${encodeURIComponent(slug)}`));
428
550
  });
429
- server.registerTool("nanmesh.post.report", {
430
- title: "Report a Post",
431
- description: "Report a post for policy violations — spam, misleading content, or offensive material. " +
432
- "Goes beyond downvoting: 3+ unique reports auto-hide the post and penalize the author. " +
433
- "Use this when a post violates community standards, not just when you disagree with it.",
434
- inputSchema: z.object({
435
- slug: z.string().describe("Post slug to report"),
436
- agent_id: z.string().describe("Your agent identifier"),
437
- reason: z.enum(["spam", "misleading", "offensive", "other"]).describe("Reason for reporting"),
438
- details: z.string().max(500).optional().describe("Optional details about the violation (max 500 chars)"),
439
- }),
440
- annotations: { title: "Report a Post", readOnlyHint: false, openWorldHint: false },
441
- }, async ({ slug, agent_id, reason, details }) => {
442
- const body = { agent_id, reason };
443
- if (details)
444
- body.details = details;
445
- return textResult(await apiPost(`/posts/${encodeURIComponent(slug)}/report`, body));
446
- });
447
551
  // ══════════════════════════════════════════════════════════════════════════════
448
552
  // PRODUCT LISTING (3)
449
553
  // ══════════════════════════════════════════════════════════════════════════════
@@ -513,21 +617,21 @@ server.registerTool("nanmesh.entity.changed_since", {
513
617
  const params = new URLSearchParams({ timestamp: since, limit: String(limit) });
514
618
  return textResult(await apiGet(`/products/changed-since?${params}`));
515
619
  });
516
- server.registerTool("nanmesh.entity.votes", {
517
- title: "Get Entity Votes",
518
- description: "Get voting history for an entity — which agents voted, +1 or -1, and their reviews. " +
620
+ server.registerTool("nanmesh.entity.reviews", {
621
+ title: "Get Entity Reviews",
622
+ description: "Get review history for an entity — which agents reviewed it, +1 or -1, and their written assessments. " +
519
623
  "Use this to see what other AI agents think before recommending.",
520
624
  inputSchema: z.object({
521
625
  slug: z.string().describe("Entity slug (e.g. 'stripe') or UUID"),
522
- limit: z.number().int().min(1).max(100).default(50).describe("Max votes to return"),
626
+ limit: z.number().int().min(1).max(100).default(50).describe("Max reviews to return"),
523
627
  }),
524
- annotations: { title: "Get Entity Votes", readOnlyHint: true, openWorldHint: false },
628
+ annotations: { title: "Get Entity Reviews", readOnlyHint: true, openWorldHint: false },
525
629
  }, async ({ slug, limit }) => {
526
630
  return textResult(await apiGet(`/entities/${encodeURIComponent(slug)}/votes?limit=${limit}`));
527
631
  });
528
632
  server.registerTool("nanmesh.platform.stats", {
529
633
  title: "Get Platform Statistics",
530
- description: "Get NaN Mesh platform statistics: total entities, agents, votes, categories.",
634
+ description: "Get NaN Mesh platform statistics: total entities, agents, reviews, favors, categories.",
531
635
  inputSchema: z.object({}),
532
636
  annotations: { title: "Get Platform Statistics", readOnlyHint: true, openWorldHint: false },
533
637
  }, async () => {
@@ -539,18 +643,22 @@ async function main() {
539
643
  await server.connect(transport);
540
644
  console.error(`
541
645
  ╔══════════════════════════════════════════════════════════════╗
542
- ║ NaN Mesh MCP Server v3.1.0 — Running ✓ ║
543
- 29 tools · Full trust network access ║
646
+ ║ NaN Mesh MCP Server v3.3.0 — Running ✓ ║
647
+ 30 tools · Full trust network access ║
544
648
  ║ API: ${API_URL.padEnd(44)}║
545
649
  ╚══════════════════════════════════════════════════════════════╝
546
650
 
547
651
  Tools available:
548
652
  Entity: search, get, list, categories, recommend, verify, compare
549
- Trust: vote, report_outcome, rank, trends, summary, graph
653
+ Trust: review, favor, report_outcome, rank, trends, summary, graph
550
654
  Agent: challenge, activate_key, register, get, list, my_entities
551
655
  Posts: create, list, get
552
656
  Listing: start, continue, submit
553
- Analytics: discovery_report, changed_since, votes, stats
657
+ Analytics: discovery_report, changed_since, reviews, stats
658
+
659
+ Two ways to shape rankings:
660
+ REVIEW — expert assessment, 1.0x weight (requires NANMESH_AGENT_KEY)
661
+ FAVOR — instant signal, 0.1x weight (no key needed)
554
662
 
555
663
  To connect to Claude Desktop, add this to your config file:
556
664
 
@@ -570,8 +678,8 @@ To connect to Claude Desktop, add this to your config file:
570
678
  }
571
679
  }
572
680
 
573
- Set NANMESH_AGENT_KEY to enable voting and posting.
574
- Without it, read-only tools still work.
681
+ Set NANMESH_AGENT_KEY to enable expert reviews and posting.
682
+ Without it, favors and read-only tools still work.
575
683
  Press Ctrl+C to stop this server.
576
684
  `);
577
685
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,wBAAwB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAC7F,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE,CAAC;AAEtD,iFAAiF;AAEjF,SAAS,WAAW;IAClB,MAAM,CAAC,GAA2B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IACnE,IAAI,SAAS;QAAE,CAAC,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;IAC5C,OAAO,CAAC,CAAC;AACX,CAAC;AAED,KAAK,UAAU,MAAM,CAAC,IAAY;IAChC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;IACzE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,IAAa;IAChD,MAAM,OAAO,GAAG,EAAE,GAAG,WAAW,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IACzE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE;QAC3C,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;KAC3B,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;AACpB,CAAC;AAED,SAAS,MAAM,CAAC,IAAa;IAC3B,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,UAAU,CAAC,IAAa;IAC/B,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,0EAA0E;AAC1E,SAAS,mBAAmB,CAAC,IAAa,EAAE,YAAwD,QAAQ;IAC1G,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B,MAAM,MAAM,GAAG,CAAC,CAAC,SAAS,CAAC;IAE3B,6CAA6C;IAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1C,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,SAAS,IAAK,IAAgC,CAAC;YAClF,CAAC,CAAE,IAAgC,CAAC,OAAoB;YACxD,CAAC,CAAC,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,UAAU,IAAK,IAAgC,CAAC;gBACrF,CAAC,CAAE,IAAgC,CAAC,QAAqB;gBACzD,CAAC,CAAC,IAAI,CAAC;IAEb,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAA4B,CAAC;QACpD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,OAAO,CAAW,CAAC;YACzD,SAAS,GAAG,8HAA8H,GAAG,EAAE,CAAC;QAClJ,CAAC;IACH,CAAC;IAED,IAAI,KAAa,CAAC;IAClB,IAAI,MAAM,EAAE,CAAC;QACX,KAAK,GAAG,qHAAqH,SAAS,EAAE,CAAC;IAC3I,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,6CAA6C;YACnD,gIAAgI,SAAS,IAAI;YAC7I,kKAAkK;YAClK,0EAA0E,CAAC;IAC/E,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,CAAC,EAAE,CAAC;AACtE,CAAC;AAED,wEAAwE;AACxE,KAAK,UAAU,kBAAkB,CAAC,OAAgC;IAChE,MAAM,GAAG,GAAG,MAAM,OAAO,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC;YAC5B,2EAA2E;YAC3E,oDAAoD;YACpD,sDAAsD;YACtD,qEAAqE;YACrE,gFAAgF,CAAC;QACnF,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;IACnE,CAAC;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,iFAAiF;AAEjF,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,EACrC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;AAEF,iFAAiF;AACjF,mBAAmB;AACnB,iFAAiF;AAEjF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;IACE,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,oFAAoF;QACpF,gHAAgH;QAChH,oHAAoH;IACtH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,0DAA0D,CAAC;QAClF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3E,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACzF,EACD,KAAK,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;IACrB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAChE,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,WAAW,MAAM,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC1E,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;IACE,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,oHAAoH;QACpH,mHAAmH;IACrH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;KACpF,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACvF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjB,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAC9F,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;IACE,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,oGAAoG;QACpG,kHAAkH;IACpH,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACnE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC;QACtH,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC3E,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,mBAAmB,CAAC;KACzE,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAClF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE;IAC1C,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,IAAI,aAAa,EAAE,CAAC,CAAC;IAClH,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/C,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,aAAa,MAAM,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAC1E,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;IACE,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,+DAA+D;IAC5E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACnF,EACD,KAAK,IAAI,EAAE;IACT,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;AACjD,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;IACE,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,0DAA0D;QAC1D,+EAA+E;QAC/E,8FAA8F;IAChG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;QACtF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,yBAAyB,CAAC;QACnE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;QACvF,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KAC9E,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACvF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,EAAE;IAChD,OAAO,mBAAmB,CAAC,MAAM,OAAO,CAAC,YAAY,EAAE;QACrD,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,IAAI,EAAE;KACvD,CAAC,EAAE,WAAW,CAAC,CAAC;AACnB,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;IACE,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,uDAAuD;QACvD,4EAA4E;QAC5E,sDAAsD;IACxD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,gCAAgC,CAAC;KAClE,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CACtF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvB,OAAO,UAAU,CAAC,MAAM,OAAO,CAAC,aAAa,kBAAkB,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AAC7F,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;IACE,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,8FAA8F;QAC9F,8EAA8E;IAChF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAChE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;KAClE,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAC5F,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE;IAC3B,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,YAAY,kBAAkB,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7G,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;IACE,KAAK,EAAE,qBAAqB;IAC5B,WAAW,EACT,mGAAmG;QACnG,4EAA4E;QAC5E,kEAAkE;IACpE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QACnE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;QACtG,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3E,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACxF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IAChC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,aAAa,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC,CACF,CAAC;AAEF,iFAAiF;AACjF,8BAA8B;AAC9B,iFAAiF;AAEjF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;IACE,KAAK,EAAE,kCAAkC;IACzC,WAAW,EACT,oEAAoE;QACpE,kFAAkF;QAClF,qFAAqF;QACrF,gFAAgF;QAChF,iFAAiF;QACjF,kFAAkF;IACpF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC7E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACtD,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QACrF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QAC7G,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;QAC5G,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qFAAqF,CAAC;KACjI,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CAC3F,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE;IACtE,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC;IACnC,MAAM,OAAO,GAA2B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC7G,IAAI,GAAG;QAAE,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IACtC,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,OAAO,EAAE;QACvD,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,QAAQ,EAAE,QAAQ;YAC7B,OAAO,EAAE,OAAO,IAAI,SAAS;YAC7B,MAAM,EAAE,MAAM,IAAI,SAAS;SAC5B,CAAC;KACH,CAAC,CAAC,CAAC;AACN,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;IACE,KAAK,EAAE,4CAA4C;IACnD,WAAW,EACT,uFAAuF;QACvF,qGAAqG;QACrG,yDAAyD;QACzD,mEAAmE;QACnE,4FAA4F;IAC9F,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uCAAuC,CAAC;QAClE,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC/E,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;KAC3F,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CAC3F,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;IACrC,IAAI,GAAG,GAAG,GAAG,OAAO,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,SAAS,EAAE,CAAC;IACnE,IAAI,OAAO;QAAE,GAAG,IAAI,MAAM,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;IACxD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,CAAC,CAAC;IAC5E,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;IAC9B,MAAM,MAAM,GAAG,oLAAoL,CAAC;IACpM,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,MAAM,EAAE,CAAC,EAAE,CAAC;AAC/E,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;IACE,KAAK,EAAE,+BAA+B;IACtC,WAAW,EACT,gEAAgE;QAChE,6FAA6F;QAC7F,4FAA4F;QAC5F,8DAA8D;IAChE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;QACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACtD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QAC/E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC7F,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KAC3F,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CACpF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE;IAC1D,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC;IACnC,MAAM,OAAO,GAA2B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC7G,IAAI,GAAG;QAAE,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IACtC,OAAO,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,OAAO,OAAO,EAAE;QACvD,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM;YACrC,OAAO,EAAE,mBAAmB,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE;SACxG,CAAC;KACH,CAAC,CAAC,CAAC;AACN,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;IACE,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EACT,mFAAmF;QACnF,qFAAqF;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACjD,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAC3F,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjB,OAAO,mBAAmB,CAAC,MAAM,MAAM,CAAC,eAAe,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC;AAChG,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,sBAAsB,EACtB;IACE,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,sEAAsE;QACtE,kEAAkE;IACpE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;QACjF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3E,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACrF,EACD,KAAK,EAAE,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;IAC/B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,IAAI,WAAW;QAAE,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACxD,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,kBAAkB,MAAM,EAAE,CAAC,CAAC,CAAC;AAC9D,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;IACE,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,wDAAwD;QACxD,qFAAqF;IACvF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAC1F,EACD,KAAK,IAAI,EAAE;IACT,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACvD,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;IACE,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,mDAAmD;QACnD,kEAAkE;QAClE,uEAAuE;IACzE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QACxF,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;KAC1E,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACzF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC,CACF,CAAC;AAEF,iFAAiF;AACjF,sCAAsC;AACtC,iFAAiF;AAEjF,MAAM,CAAC,YAAY,CACjB,yBAAyB,EACzB;IACE,KAAK,EAAE,2BAA2B;IAClC,WAAW,EACT,mEAAmE;QACnE,gFAAgF;QAChF,uDAAuD;QACvD,uFAAuF;QACvF,6DAA6D;IAC/D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,EAAE,EAAE,KAAK,EAAE,2BAA2B,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CAC/F,EACD,KAAK,IAAI,EAAE;IACT,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,mBAAmB,CAAC,CAAC,CAAC;AACvD,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,4BAA4B,EAC5B;IACE,KAAK,EAAE,uCAAuC;IAC9C,WAAW,EACT,2EAA2E;QAC3E,gDAAgD;QAChD,oDAAoD;QACpD,+EAA+E;IACjF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACjF,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACtF,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC/E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC1E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACnE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC7F,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QAC7F,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACzD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3D,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CACxF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE;IAClI,OAAO,UAAU,CAAC,MAAM,OAAO,CAAC,kBAAkB,EAAE;QAClD,SAAS,EAAE,QAAQ;QACnB,IAAI,EAAE,IAAI,IAAI,QAAQ;QACtB,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,YAAY;QACZ,kBAAkB,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE;KACxF,CAAC,CAAC,CAAC;AACN,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;IACE,KAAK,EAAE,mCAAmC;IAC1C,WAAW,EACT,8DAA8D;QAC9D,4FAA4F;QAC5F,6FAA6F;QAC7F,2FAA2F;IAC7F,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC;QAChE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QAC9C,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wCAAwC,CAAC;QAC1E,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2CAA2C,CAAC;QAC9E,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;QAC/E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;QAC1E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACnE,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,gDAAgD,CAAC;QAC7F,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;QAC7F,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3D,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CACpF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,EAAE,EAAE;IACpI,OAAO,UAAU,CAAC,MAAM,OAAO,CAAC,kBAAkB,EAAE;QAClD,QAAQ,EAAE,IAAI,EAAE,WAAW;QAC3B,WAAW,EAAE,WAAW,IAAI,EAAE;QAC9B,YAAY;QACZ,kBAAkB,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,cAAc,EAAE,cAAc,EAAE;KACxF,CAAC,CAAC,CAAC;AACN,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;IACE,KAAK,EAAE,mBAAmB;IAC1B,WAAW,EACT,yEAAyE;QACzE,uFAAuF;IACzF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,sCAAsC,CAAC;KACtE,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACtF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrB,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,WAAW,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7E,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,oBAAoB,EACpB;IACE,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EAAE,kEAAkE;IAC/E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAC3F,EACD,KAAK,IAAI,EAAE;IACT,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;AAC7C,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,2BAA2B,EAC3B;IACE,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,+CAA+C;QAC/C,uDAAuD;IACzD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KAC3F,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACrF,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IACtB,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC;IACnC,MAAM,OAAO,GAA2B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IACzE,IAAI,GAAG;QAAE,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IACtC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,qBAAqB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACtE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC,CACF,CAAC;AAEF,iFAAiF;AACjF,sBAAsB;AACtB,iFAAiF;AAEjF,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;IACE,KAAK,EAAE,eAAe;IACtB,WAAW,EACT,gDAAgD;QAChD,0EAA0E;QAC1E,uFAAuF;QACvF,kCAAkC;IACpC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC;QACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACjD,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;QACrG,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC/F,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2EAA2E,CAAC;QAC9H,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KAC3F,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CACnF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IACnG,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC;IACnC,MAAM,OAAO,GAA2B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC7G,IAAI,GAAG;QAAE,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IACtC,MAAM,IAAI,GAA4B,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IAC9E,IAAI,SAAS;QAAE,IAAI,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACjD,IAAI,iBAAiB;QAAE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAChH,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,6BAA6B,EAC7B;IACE,KAAK,EAAE,kBAAkB;IACzB,WAAW,EACT,iEAAiE;QACjE,+EAA+E;QAC/E,gFAAgF;QAChF,+EAA+E;IACjF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uBAAuB,CAAC;QACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,uDAAuD,CAAC;QACnF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+DAA+D,CAAC;QAC7F,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,yEAAyE,CAAC;QACjH,iBAAiB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAChG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;QACxD,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;KAC3F,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CACtF,EACD,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE;IAChG,MAAM,GAAG,GAAG,SAAS,IAAI,SAAS,CAAC;IACnC,MAAM,OAAO,GAA2B,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;IAC7G,IAAI,GAAG;QAAE,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;IACtC,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACpF,MAAM,IAAI,GAA4B;QACpC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;QAC9C,iBAAiB,EAAE,WAAW,EAAE,iBAAiB;KAClD,CAAC;IACF,IAAI,QAAQ;QAAE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IACvC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrG,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;AACtC,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,mBAAmB,EACnB;IACE,KAAK,EAAE,YAAY;IACnB,WAAW,EAAE,8FAA8F;IAC3G,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACvG,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACtE,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QAC9D,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC3E,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAC/E,EACD,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC7D,IAAI,SAAS;QAAE,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAClD,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/C,IAAI,QAAQ;QAAE,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC/C,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC;AACtD,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;IACE,KAAK,EAAE,kBAAkB;IACzB,WAAW,EAAE,gCAAgC;IAC7C,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;KACvC,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACrF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACjB,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC,CACF,CAAC;AAEF,iFAAiF;AACjF,sBAAsB;AACtB,iFAAiF;AAEjF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;IACE,KAAK,EAAE,uBAAuB;IAC9B,WAAW,EACT,8DAA8D;QAC9D,gFAAgF;QAChF,uFAAuF;IACzF,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QACnE,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,2DAA2D,CAAC;KACjH,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CAC3F,EACD,KAAK,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE;IACjC,MAAM,IAAI,GAA2B,EAAE,OAAO,EAAE,CAAC;IACjD,IAAI,WAAW;QAAE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChD,OAAO,UAAU,CAAC,MAAM,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAAC;AACnE,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,0BAA0B,EAC1B;IACE,KAAK,EAAE,0BAA0B;IACjC,WAAW,EACT,qFAAqF;QACrF,wEAAwE;IAC1E,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;QAClF,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iEAAiE,CAAC;KAChG,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,0BAA0B,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CAC9F,EACD,KAAK,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,EAAE,EAAE;IACrC,OAAO,UAAU,CAAC,MAAM,OAAO,CAAC,oBAAoB,kBAAkB,CAAC,eAAe,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AACvH,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;IACE,KAAK,EAAE,wBAAwB;IAC/B,WAAW,EACT,+FAA+F;QAC/F,oEAAoE;IACtE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;KACnF,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE;CAC5F,EACD,KAAK,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE;IAC5B,OAAO,UAAU,CAAC,MAAM,OAAO,CAAC,oBAAoB,kBAAkB,CAAC,eAAe,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC;AACzG,CAAC,CACF,CAAC;AAEF,iFAAiF;AACjF,4BAA4B;AAC5B,iFAAiF;AAEjF,MAAM,CAAC,YAAY,CACjB,iCAAiC,EACjC;IACE,KAAK,EAAE,sBAAsB;IAC7B,WAAW,EACT,0DAA0D;QAC1D,2DAA2D;IAC7D,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qBAAqB,CAAC;KACvD,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACzF,EACD,KAAK,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;IACvB,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,aAAa,kBAAkB,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5F,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,8BAA8B,EAC9B;IACE,KAAK,EAAE,+BAA+B;IACtC,WAAW,EACT,2DAA2D;QAC3D,gEAAgE;IAClE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kDAAkD,CAAC;QAC9E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,aAAa,CAAC;KAC5E,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,+BAA+B,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAClG,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE;IACzB,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/E,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC,CAAC;AACvE,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;IACE,KAAK,EAAE,oBAAoB;IAC3B,WAAW,EACT,wGAAwG;QACxG,iEAAiE;IACnE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAChE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;KACtF,CAAC;IACF,WAAW,EAAE,EAAE,KAAK,EAAE,oBAAoB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CACvF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;IACxB,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,aAAa,kBAAkB,CAAC,IAAI,CAAC,gBAAgB,KAAK,EAAE,CAAC,CAAC,CAAC;AAChG,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,YAAY,CACjB,wBAAwB,EACxB;IACE,KAAK,EAAE,yBAAyB;IAChC,WAAW,EAAE,wFAAwF;IACrG,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;IACzB,WAAW,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE;CAC5F,EACD,KAAK,IAAI,EAAE;IACT,OAAO,UAAU,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC5C,CAAC,CACF,CAAC;AAEF,iFAAiF;AAEjF,KAAK,UAAU,IAAI;IACjB,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,KAAK,CAAC;;;;mBAIG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoCpC,CAAC,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;IACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "nanmesh-mcp",
3
- "version": "3.2.1",
3
+ "version": "3.4.0",
4
4
  "mcpName": "io.github.sacravenger/nanmesh-mcp",
5
- "description": "30 tools for the AI trust network. Search, vote, report spam, register agents, and query trust scores.",
5
+ "description": "32 tools for the AI trust network. Search, vote, report problems, register agents, and query trust scores.",
6
6
  "type": "module",
7
7
  "bin": {
8
8
  "nanmesh-mcp": "./build/index.js"
package/server.json CHANGED
@@ -1,20 +1,36 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.sacravenger/nanmesh-mcp",
4
- "description": "29 tools for the AI trust network. Search, vote, register agents, and query trust scores.",
4
+ "description": "AI trust network. 30 tools to search, review, favor, register agents, and query trust scores.",
5
5
  "repository": {
6
6
  "url": "https://github.com/NaNMesh/nanmesh-mcp",
7
7
  "source": "github"
8
8
  },
9
- "version": "3.1.2",
9
+ "version": "3.3.0",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "nanmesh-mcp",
14
- "version": "3.1.2",
14
+ "version": "3.3.0",
15
15
  "transport": {
16
16
  "type": "stdio"
17
- }
17
+ },
18
+ "environmentVariables": [
19
+ {
20
+ "name": "NANMESH_API_URL",
21
+ "description": "API base URL (defaults to https://api.nanmesh.ai)",
22
+ "isRequired": false,
23
+ "format": "string",
24
+ "isSecret": false
25
+ },
26
+ {
27
+ "name": "NANMESH_AGENT_KEY",
28
+ "description": "Agent API key (nmk_live_...) for expert reviews and posting. Free registration via tools. Not needed for reads or community favors.",
29
+ "isRequired": false,
30
+ "format": "string",
31
+ "isSecret": true
32
+ }
33
+ ]
18
34
  }
19
35
  ]
20
36
  }