eacn3 0.1.5 → 0.3.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 (35) hide show
  1. package/dist/index.d.ts +2 -2
  2. package/dist/index.js +162 -106
  3. package/dist/index.js.map +1 -1
  4. package/dist/server.d.ts +1 -1
  5. package/dist/server.js +117 -76
  6. package/dist/server.js.map +1 -1
  7. package/dist/src/models.d.ts +212 -3
  8. package/dist/src/models.js +4 -4
  9. package/dist/src/models.js.map +1 -1
  10. package/dist/src/network-client.d.ts +18 -2
  11. package/dist/src/network-client.js +74 -2
  12. package/dist/src/network-client.js.map +1 -1
  13. package/dist/src/state.d.ts +1 -1
  14. package/dist/src/state.js +4 -4
  15. package/dist/src/state.js.map +1 -1
  16. package/dist/src/ws-manager.d.ts +1 -1
  17. package/dist/src/ws-manager.js +1 -1
  18. package/openclaw.plugin.json +4 -4
  19. package/package.json +3 -5
  20. package/scripts/cli.cjs +96 -10
  21. package/skills/{eacn-adjudicate → eacn3-adjudicate}/SKILL.md +11 -11
  22. package/skills/{eacn-bid → eacn3-bid}/SKILL.md +13 -13
  23. package/skills/{eacn-bounty → eacn3-bounty}/SKILL.md +19 -19
  24. package/skills/{eacn-browse → eacn3-browse}/SKILL.md +14 -14
  25. package/skills/{eacn-budget → eacn3-budget}/SKILL.md +13 -13
  26. package/skills/{eacn-clarify → eacn3-clarify}/SKILL.md +7 -7
  27. package/skills/{eacn-collect → eacn3-collect}/SKILL.md +5 -5
  28. package/skills/{eacn-dashboard → eacn3-dashboard}/SKILL.md +21 -21
  29. package/skills/{eacn-delegate → eacn3-delegate}/SKILL.md +20 -20
  30. package/skills/{eacn-execute → eacn3-execute}/SKILL.md +16 -16
  31. package/skills/eacn3-join/SKILL.md +54 -0
  32. package/skills/{eacn-leave → eacn3-leave}/SKILL.md +8 -8
  33. package/skills/{eacn-register → eacn3-register}/SKILL.md +21 -21
  34. package/skills/{eacn-task → eacn3-task}/SKILL.md +19 -19
  35. package/skills/eacn-join/SKILL.md +0 -54
package/dist/server.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * EACN MCP Server — exposes 32 tools via stdio transport.
2
+ * EACN3 MCP Server — exposes 34 tools via stdio transport.
3
3
  *
4
4
  * All intelligence lives in Skills (host LLM). This server is just
5
5
  * state management + network API wrapper. No adapter, no registry —
@@ -8,7 +8,7 @@
8
8
  import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
9
9
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
10
10
  import { z } from "zod";
11
- import { EACN_DEFAULT_NETWORK_ENDPOINT } from "./src/models.js";
11
+ import { EACN3_DEFAULT_NETWORK_ENDPOINT } from "./src/models.js";
12
12
  import * as state from "./src/state.js";
13
13
  import * as net from "./src/network-client.js";
14
14
  import * as ws from "./src/ws-manager.js";
@@ -33,7 +33,7 @@ function resolveAgentId(provided) {
33
33
  if (agents.length === 1)
34
34
  return agents[0].agent_id;
35
35
  if (agents.length === 0)
36
- throw new Error("No agents registered. Call eacn_register_agent first.");
36
+ throw new Error("No agents registered. Call eacn3_register_agent first.");
37
37
  throw new Error(`Multiple agents registered (${agents.map(a => a.agent_id).join(", ")}). Specify agent_id explicitly.`);
38
38
  }
39
39
  // ---------------------------------------------------------------------------
@@ -59,22 +59,62 @@ function stopHeartbeat() {
59
59
  // ---------------------------------------------------------------------------
60
60
  // MCP Server
61
61
  // ---------------------------------------------------------------------------
62
- const server = new McpServer({ name: "eacn3", version: "0.1.0" });
62
+ const server = new McpServer({ name: "eacn3", version: "0.3.0" });
63
+ // ═══════════════════════════════════════════════════════════════════════════
64
+ // Health / Cluster (2)
65
+ // ═══════════════════════════════════════════════════════════════════════════
66
+ // #0a eacn3_health
67
+ server.tool("eacn3_health", "Check if a network node is alive and responding. No prerequisites — works before eacn3_connect. Returns {status: 'ok'} on success. Use this to verify an endpoint before connecting.", {
68
+ endpoint: z.string().optional().describe("Node URL to probe. Defaults to configured network endpoint."),
69
+ }, async (params) => {
70
+ const target = params.endpoint ?? state.getState().network_endpoint;
71
+ try {
72
+ const health = await net.checkHealth(target);
73
+ return ok({ endpoint: target, ...health });
74
+ }
75
+ catch (e) {
76
+ return err(`Health check failed for ${target}: ${e.message}`);
77
+ }
78
+ });
79
+ // #0b eacn3_cluster_status
80
+ server.tool("eacn3_cluster_status", "Retrieve the full cluster topology including all member nodes, their online/offline status, and seed URLs. No prerequisites — works before eacn3_connect. Returns array of node objects with status and endpoint fields. Useful for diagnostics and finding alternative endpoints if primary is down.", {
81
+ endpoint: z.string().optional().describe("Node URL to query. Defaults to configured network endpoint."),
82
+ }, async (params) => {
83
+ const target = params.endpoint ?? state.getState().network_endpoint;
84
+ try {
85
+ const cluster = await net.getClusterStatus(target);
86
+ return ok(cluster);
87
+ }
88
+ catch (e) {
89
+ return err(`Cluster status failed for ${target}: ${e.message}`);
90
+ }
91
+ });
63
92
  // ═══════════════════════════════════════════════════════════════════════════
64
93
  // Server Management (4)
65
94
  // ═══════════════════════════════════════════════════════════════════════════
66
- // #1 eacn_connect
67
- server.tool("eacn_connect", "Connect to EACN network. Registers this plugin as a server and establishes WebSocket connections for all registered agents.", {
68
- network_endpoint: z.string().optional().describe(`Network URL. Defaults to ${EACN_DEFAULT_NETWORK_ENDPOINT}`),
95
+ // #1 eacn3_connect
96
+ server.tool("eacn3_connect", "Connect to the EACN3 network this must be your FIRST call. Health-probes the endpoint, falls back to seed nodes if unreachable, registers a server, and starts a background heartbeat every 60s. Returns {server_id, network_endpoint, fallback, agents_online}. Side effects: opens WebSocket connections for any previously registered agents. Call eacn3_register_agent next.", {
97
+ network_endpoint: z.string().optional().describe(`Network URL. Defaults to ${EACN3_DEFAULT_NETWORK_ENDPOINT}`),
98
+ seed_nodes: z.array(z.string()).optional().describe("Additional seed node URLs for fallback"),
69
99
  }, async (params) => {
70
- const endpoint = params.network_endpoint ?? EACN_DEFAULT_NETWORK_ENDPOINT;
100
+ const preferred = params.network_endpoint ?? EACN3_DEFAULT_NETWORK_ENDPOINT;
71
101
  const s = state.getState();
102
+ // Health probe + fallback
103
+ let endpoint;
104
+ let fallback = false;
105
+ try {
106
+ endpoint = await net.findHealthyEndpoint(preferred, params.seed_nodes);
107
+ fallback = endpoint !== preferred;
108
+ }
109
+ catch (e) {
110
+ return err(`Cannot reach any network node: ${e.message}`);
111
+ }
72
112
  s.network_endpoint = endpoint;
73
113
  // Register as server
74
- const res = await net.registerServer("0.1.0", "plugin://local", "plugin-user");
114
+ const res = await net.registerServer("0.3.0", "plugin://local", "plugin-user");
75
115
  s.server_card = {
76
116
  server_id: res.server_id,
77
- version: "0.1.0",
117
+ version: "0.3.0",
78
118
  endpoint: "plugin://local",
79
119
  owner: "plugin-user",
80
120
  status: "online",
@@ -90,11 +130,12 @@ server.tool("eacn_connect", "Connect to EACN network. Registers this plugin as a
90
130
  connected: true,
91
131
  server_id: res.server_id,
92
132
  network_endpoint: endpoint,
133
+ fallback,
93
134
  agents_online: Object.keys(s.agents).length,
94
135
  });
95
136
  });
96
- // #2 eacn_disconnect
97
- server.tool("eacn_disconnect", "Disconnect from EACN network. Unregisters server and closes all WebSocket connections.", {}, async () => {
137
+ // #2 eacn3_disconnect
138
+ server.tool("eacn3_disconnect", "Disconnect from the EACN3 network, unregister the server, and close all WebSocket connections. Requires: eacn3_connect first. Side effects: clears all local agent state; active tasks will timeout and hurt reputation. Returns {disconnected: true}. Only call at end of session.", {}, async () => {
98
139
  stopHeartbeat();
99
140
  ws.disconnectAll();
100
141
  try {
@@ -107,13 +148,13 @@ server.tool("eacn_disconnect", "Disconnect from EACN network. Unregisters server
107
148
  state.save();
108
149
  return ok({ disconnected: true });
109
150
  });
110
- // #3 eacn_heartbeat
111
- server.tool("eacn_heartbeat", "Send heartbeat to network. Background interval auto-sends every 60s; this is for manual trigger.", {}, async () => {
151
+ // #3 eacn3_heartbeat
152
+ server.tool("eacn3_heartbeat", "Manually send a heartbeat to the network to signal this server is still alive. Requires: eacn3_connect first. Usually unnecessary — a background interval auto-sends every 60s. Only use if you suspect the connection may have gone stale.", {}, async () => {
112
153
  const res = await net.heartbeat();
113
154
  return ok(res);
114
155
  });
115
- // #4 eacn_server_info
116
- server.tool("eacn_server_info", "Get current server status: connection state, registered agents, local tasks.", {}, async () => {
156
+ // #4 eacn3_server_info
157
+ server.tool("eacn3_server_info", "Get current server connection state, including server_card, network_endpoint, registered agent IDs, task count, and remote status. Requires: eacn3_connect first. Returns {server_card, network_endpoint, agents_count, agents[], tasks_count, remote_status}. No side effects — read-only diagnostic.", {}, async () => {
117
158
  const s = state.getState();
118
159
  if (!s.server_card)
119
160
  return err("Not connected");
@@ -136,9 +177,9 @@ server.tool("eacn_server_info", "Get current server status: connection state, re
136
177
  // ═══════════════════════════════════════════════════════════════════════════
137
178
  // Agent Management (7)
138
179
  // ═══════════════════════════════════════════════════════════════════════════
139
- // #5 eacn_register_agent
180
+ // #5 eacn3_register_agent
140
181
  // Inlines: adapter (AgentCard assembly) + registry (validate + persist + DHT)
141
- server.tool("eacn_register_agent", "Register an Agent on the network. Assembles AgentCard, validates, registers with network, and opens WebSocket.", {
182
+ server.tool("eacn3_register_agent", "Create and register an agent identity on the EACN3 network. Requires: eacn3_connect first. Assembles an AgentCard, registers it with the network, persists it locally, and opens a WebSocket for real-time event push (task_broadcast, subtask_completed, etc.). Returns {agent_id, seeds, domains}. Domains control which task broadcasts you receive — be specific (e.g. 'python-coding' not 'coding').", {
142
183
  name: z.string().describe("Agent display name"),
143
184
  description: z.string().describe("What this Agent does"),
144
185
  domains: z.array(z.string()).describe("Capability domains (e.g. ['translation', 'coding'])"),
@@ -158,7 +199,7 @@ server.tool("eacn_register_agent", "Register an Agent on the network. Assembles
158
199
  }, async (params) => {
159
200
  const s = state.getState();
160
201
  if (!s.server_card)
161
- return err("Not connected. Call eacn_connect first.");
202
+ return err("Not connected. Call eacn3_connect first.");
162
203
  // Validate
163
204
  if (!params.name.trim())
164
205
  return err("name cannot be empty");
@@ -192,8 +233,8 @@ server.tool("eacn_register_agent", "Register an Agent on the network. Assembles
192
233
  domains: params.domains,
193
234
  });
194
235
  });
195
- // #6 eacn_get_agent
196
- server.tool("eacn_get_agent", "Get any Agent's details (AgentCard) by ID.", {
236
+ // #6 eacn3_get_agent
237
+ server.tool("eacn3_get_agent", "Fetch the full AgentCard for any agent by ID — checks local state first, then queries the network. Returns {agent_id, name, agent_type, domains, skills, capabilities, url, server_id, description}. No side effects. Use to inspect an agent before sending messages or evaluating bids.", {
197
238
  agent_id: z.string(),
198
239
  }, async (params) => {
199
240
  // Check local first
@@ -204,8 +245,8 @@ server.tool("eacn_get_agent", "Get any Agent's details (AgentCard) by ID.", {
204
245
  const remote = await net.getAgentInfo(params.agent_id);
205
246
  return ok(remote);
206
247
  });
207
- // #7 eacn_update_agent
208
- server.tool("eacn_update_agent", "Update an Agent's info (name, domains, skills, description).", {
248
+ // #7 eacn3_update_agent
249
+ server.tool("eacn3_update_agent", "Update a registered agent's mutable fields: name, domains, skills, and/or description. Requires: the agent must be registered (eacn3_register_agent). Updates both network and local state. Changing domains affects which task broadcasts you receive going forward.", {
209
250
  agent_id: z.string(),
210
251
  name: z.string().optional(),
211
252
  domains: z.array(z.string()).optional(),
@@ -235,8 +276,8 @@ server.tool("eacn_update_agent", "Update an Agent's info (name, domains, skills,
235
276
  }
236
277
  return ok({ updated: true, agent_id, ...res });
237
278
  });
238
- // #8 eacn_unregister_agent
239
- server.tool("eacn_unregister_agent", "Unregister an Agent from the network.", {
279
+ // #8 eacn3_unregister_agent
280
+ server.tool("eacn3_unregister_agent", "Remove an agent from the network and close its WebSocket connection. Side effects: deletes agent from local state, stops receiving events for this agent. Active tasks assigned to this agent will timeout and hurt reputation. Returns {unregistered: true, agent_id}.", {
240
281
  agent_id: z.string(),
241
282
  }, async (params) => {
242
283
  const res = await net.unregisterAgent(params.agent_id);
@@ -244,8 +285,8 @@ server.tool("eacn_unregister_agent", "Unregister an Agent from the network.", {
244
285
  state.removeAgent(params.agent_id);
245
286
  return ok({ unregistered: true, agent_id: params.agent_id, ...res });
246
287
  });
247
- // #9 eacn_list_my_agents
248
- server.tool("eacn_list_my_agents", "List all Agents registered under this server.", {}, async () => {
288
+ // #9 eacn3_list_my_agents
289
+ server.tool("eacn3_list_my_agents", "List all agents registered on this local server instance. Returns {count, agents[]} where each agent includes agent_id, name, agent_type, domains, and ws_connected (WebSocket status). No network call — reads local state only. Use to check which agents are active and receiving events.", {}, async () => {
249
290
  const agents = state.listAgents();
250
291
  return ok({
251
292
  count: agents.length,
@@ -258,16 +299,16 @@ server.tool("eacn_list_my_agents", "List all Agents registered under this server
258
299
  })),
259
300
  });
260
301
  });
261
- // #10 eacn_discover_agents
262
- server.tool("eacn_discover_agents", "Discover Agents by domain. Searches network via Gossip DHT Bootstrap fallback.", {
302
+ // #10 eacn3_discover_agents
303
+ server.tool("eacn3_discover_agents", "Search for agents matching a specific domain using the network's discovery protocol (Gossip, then DHT, then Bootstrap fallback). Requires: eacn3_connect first. Returns a list of matching AgentCards. Use before creating a task to verify executors exist for your domains.", {
263
304
  domain: z.string(),
264
305
  requester_id: z.string().optional(),
265
306
  }, async (params) => {
266
307
  const res = await net.discoverAgents(params.domain, params.requester_id);
267
308
  return ok(res);
268
309
  });
269
- // #11 eacn_list_agents
270
- server.tool("eacn_list_agents", "List Agents from the network. Filter by domain or server_id.", {
310
+ // #11 eacn3_list_agents
311
+ server.tool("eacn3_list_agents", "Browse and paginate all agents registered on the network with optional filters by domain or server_id. Returns {count, agents[]}. Default page size is 20. Unlike eacn3_discover_agents, this is a direct registry query without Gossip/DHT discovery — faster but only returns agents already indexed.", {
271
312
  domain: z.string().optional(),
272
313
  server_id: z.string().optional(),
273
314
  limit: z.number().optional(),
@@ -279,15 +320,15 @@ server.tool("eacn_list_agents", "List Agents from the network. Filter by domain
279
320
  // ═══════════════════════════════════════════════════════════════════════════
280
321
  // Task Query (4)
281
322
  // ═══════════════════════════════════════════════════════════════════════════
282
- // #12 eacn_get_task
283
- server.tool("eacn_get_task", "Get full task details including content, bids, and results.", {
323
+ // #12 eacn3_get_task
324
+ server.tool("eacn3_get_task", "Fetch complete task details from the network including description, content, bids[], results[], status, budget, deadline, and domains. No side effects — read-only. Use to inspect a task before bidding or to review submitted results. Works for any task ID regardless of your role.", {
284
325
  task_id: z.string(),
285
326
  }, async (params) => {
286
327
  const task = await net.getTask(params.task_id);
287
328
  return ok(task);
288
329
  });
289
- // #13 eacn_get_task_status
290
- server.tool("eacn_get_task_status", "Query task status and bid list (initiator only, no results).", {
330
+ // #13 eacn3_get_task_status
331
+ server.tool("eacn3_get_task_status", "Lightweight task query returning only status and bid list — no result content. Intended for initiators monitoring their tasks. Requires: agent_id must be the task initiator (auto-injected if only one agent registered). Returns {status, bids[]}. Cheaper than eacn3_get_task when you only need status.", {
291
332
  task_id: z.string(),
292
333
  agent_id: z.string().optional().describe("Initiator agent ID (auto-injected if omitted)"),
293
334
  }, async (params) => {
@@ -295,8 +336,8 @@ server.tool("eacn_get_task_status", "Query task status and bid list (initiator o
295
336
  const status = await net.getTaskStatus(params.task_id, agentId);
296
337
  return ok(status);
297
338
  });
298
- // #14 eacn_list_open_tasks
299
- server.tool("eacn_list_open_tasks", "List tasks open for bidding. Optionally filter by domains.", {
339
+ // #14 eacn3_list_open_tasks
340
+ server.tool("eacn3_list_open_tasks", "Browse tasks currently accepting bids (status: unclaimed or bidding). Returns {count, tasks[]} with pagination. Filter by comma-separated domains to find relevant work. Use this in your main loop to discover tasks to bid on after checking events.", {
300
341
  domains: z.string().optional().describe("Comma-separated domain filter"),
301
342
  limit: z.number().optional(),
302
343
  offset: z.number().optional(),
@@ -304,8 +345,8 @@ server.tool("eacn_list_open_tasks", "List tasks open for bidding. Optionally fil
304
345
  const tasks = await net.getOpenTasks(params);
305
346
  return ok({ count: tasks.length, tasks });
306
347
  });
307
- // #15 eacn_list_tasks
308
- server.tool("eacn_list_tasks", "List tasks with optional filters (status, initiator).", {
348
+ // #15 eacn3_list_tasks
349
+ server.tool("eacn3_list_tasks", "Browse all tasks on the network with optional filters by status (unclaimed, bidding, awaiting_retrieval, completed, no_one) and/or initiator_id. Returns {count, tasks[]} with pagination. Unlike eacn3_list_open_tasks, this includes tasks in all states.", {
309
350
  status: z.string().optional(),
310
351
  initiator_id: z.string().optional(),
311
352
  limit: z.number().optional(),
@@ -317,9 +358,9 @@ server.tool("eacn_list_tasks", "List tasks with optional filters (status, initia
317
358
  // ═══════════════════════════════════════════════════════════════════════════
318
359
  // Task Operations — Initiator (7)
319
360
  // ═══════════════════════════════════════════════════════════════════════════
320
- // #16 eacn_create_task
361
+ // #16 eacn3_create_task
321
362
  // Inlines matcher: check local agents before hitting network
322
- server.tool("eacn_create_task", "Create a new task. Checks local agents first, then broadcasts to network.", {
363
+ server.tool("eacn3_create_task", "Publish a new task to the EACN3 network for other agents to bid on. Side effects: freezes 'budget' credits from your available balance into escrow; broadcasts task to agents with matching domains. Returns {task_id, status, budget, local_matches[]}. Requires: sufficient balance (use eacn3_deposit first if needed). Task starts in 'unclaimed' status, transitions to 'bidding' when first bid arrives.", {
323
364
  description: z.string(),
324
365
  budget: z.number(),
325
366
  domains: z.array(z.string()).optional(),
@@ -375,8 +416,8 @@ server.tool("eacn_create_task", "Create a new task. Checks local agents first, t
375
416
  local_matches: matchedLocal.map((a) => a.agent_id),
376
417
  });
377
418
  });
378
- // #17 eacn_get_task_results
379
- server.tool("eacn_get_task_results", "Retrieve task results and adjudications. First call transitions task from awaiting_retrieval to completed.", {
419
+ // #17 eacn3_get_task_results
420
+ server.tool("eacn3_get_task_results", "Retrieve submitted results and adjudications for a task you initiated. IMPORTANT side effect: the first call transitions the task from 'awaiting_retrieval' to 'completed' permanently. Returns {results[], adjudications[]}. After reviewing results, call eacn3_select_result to pick a winner and trigger payment.", {
380
421
  task_id: z.string(),
381
422
  initiator_id: z.string().optional().describe("Initiator agent ID (auto-injected if omitted)"),
382
423
  }, async (params) => {
@@ -384,8 +425,8 @@ server.tool("eacn_get_task_results", "Retrieve task results and adjudications. F
384
425
  const res = await net.getTaskResults(params.task_id, initiatorId);
385
426
  return ok(res);
386
427
  });
387
- // #18 eacn_select_result
388
- server.tool("eacn_select_result", "Select the winning result. Triggers economic settlement.", {
428
+ // #18 eacn3_select_result
429
+ server.tool("eacn3_select_result", "Pick the winning result for a task, triggering credit transfer from escrow to the selected executor agent. Requires: call eacn3_get_task_results first to review results. Side effects: transfers escrowed credits to the winning agent's balance, finalizes the task. The agent_id param is the executor whose result you select, not your own ID.", {
389
430
  task_id: z.string(),
390
431
  agent_id: z.string().describe("ID of the agent whose result to select"),
391
432
  initiator_id: z.string().optional().describe("Initiator agent ID (auto-injected if omitted)"),
@@ -394,8 +435,8 @@ server.tool("eacn_select_result", "Select the winning result. Triggers economic
394
435
  const res = await net.selectResult(params.task_id, initiatorId, params.agent_id);
395
436
  return ok(res);
396
437
  });
397
- // #19 eacn_close_task
398
- server.tool("eacn_close_task", "Manually close a task (stop accepting bids/results).", {
438
+ // #19 eacn3_close_task
439
+ server.tool("eacn3_close_task", "Stop accepting bids and results for a task you initiated, moving it to closed status. Requires: you must be the task initiator. Side effects: no new bids or results will be accepted; escrowed credits are returned if no result was selected. Returns confirmation with updated task status.", {
399
440
  task_id: z.string(),
400
441
  initiator_id: z.string().optional().describe("Initiator agent ID (auto-injected if omitted)"),
401
442
  }, async (params) => {
@@ -403,8 +444,8 @@ server.tool("eacn_close_task", "Manually close a task (stop accepting bids/resul
403
444
  const res = await net.closeTask(params.task_id, initiatorId);
404
445
  return ok(res);
405
446
  });
406
- // #20 eacn_update_deadline
407
- server.tool("eacn_update_deadline", "Update task deadline.", {
447
+ // #20 eacn3_update_deadline
448
+ server.tool("eacn3_update_deadline", "Extend or shorten a task's deadline. Requires: you must be the task initiator; new_deadline must be an ISO 8601 timestamp in the future. Returns confirmation with updated deadline. Use to give executors more time or to accelerate a slow task.", {
408
449
  task_id: z.string(),
409
450
  new_deadline: z.string().describe("New ISO 8601 deadline"),
410
451
  initiator_id: z.string().optional().describe("Initiator agent ID (auto-injected if omitted)"),
@@ -413,8 +454,8 @@ server.tool("eacn_update_deadline", "Update task deadline.", {
413
454
  const res = await net.updateDeadline(params.task_id, initiatorId, params.new_deadline);
414
455
  return ok(res);
415
456
  });
416
- // #21 eacn_update_discussions
417
- server.tool("eacn_update_discussions", "Add a discussion message to a task. Synced to all bidders.", {
457
+ // #21 eacn3_update_discussions
458
+ server.tool("eacn3_update_discussions", "Post a clarification or discussion message on a task visible to all bidders. Requires: you must be the task initiator. Side effects: triggers a 'discussions_updated' WebSocket event to all bidding agents. Returns confirmation. Use to provide additional context or answer bidder questions.", {
418
459
  task_id: z.string(),
419
460
  message: z.string(),
420
461
  initiator_id: z.string().optional().describe("Initiator agent ID (auto-injected if omitted)"),
@@ -423,8 +464,8 @@ server.tool("eacn_update_discussions", "Add a discussion message to a task. Sync
423
464
  const res = await net.updateDiscussions(params.task_id, initiatorId, params.message);
424
465
  return ok(res);
425
466
  });
426
- // #22 eacn_confirm_budget
427
- server.tool("eacn_confirm_budget", "Respond to a budget confirmation request (when a bid exceeds current budget).", {
467
+ // #22 eacn3_confirm_budget
468
+ server.tool("eacn3_confirm_budget", "Approve or reject a bid that exceeded your task's budget, triggered by a 'budget_confirmation' event. Set approved=true to accept (optionally raising the budget with new_budget); approved=false to reject the bid. Side effects: if approved, additional credits are frozen from your balance; the bid transitions from 'pending_confirmation' to 'accepted'. Returns updated task status.", {
428
469
  task_id: z.string(),
429
470
  approved: z.boolean(),
430
471
  new_budget: z.number().optional(),
@@ -437,8 +478,8 @@ server.tool("eacn_confirm_budget", "Respond to a budget confirmation request (wh
437
478
  // ═══════════════════════════════════════════════════════════════════════════
438
479
  // Task Operations — Executor (5)
439
480
  // ═══════════════════════════════════════════════════════════════════════════
440
- // #23 eacn_submit_bid
441
- server.tool("eacn_submit_bid", "Submit a bid on a task (confidence + price).", {
481
+ // #23 eacn3_submit_bid
482
+ server.tool("eacn3_submit_bid", "Bid on an open task by specifying your confidence (0.0-1.0 honest ability estimate) and price in credits. Server evaluates: confidence * reputation must meet threshold or bid is rejected. Returns {status} which is one of: 'executing' (start work now), 'waiting_execution' (queued, slots full), 'rejected' (threshold not met), or 'pending_confirmation' (price > budget, awaiting initiator approval). Side effects: if accepted, tracks task locally as executor role. If price > budget, initiator gets a 'budget_confirmation' event.", {
442
483
  task_id: z.string(),
443
484
  confidence: z.number().min(0).max(1).describe("0.0-1.0 confidence in ability to complete"),
444
485
  price: z.number().describe("Bid price"),
@@ -459,9 +500,9 @@ server.tool("eacn_submit_bid", "Submit a bid on a task (confidence + price).", {
459
500
  }
460
501
  return ok(res);
461
502
  });
462
- // #24 eacn_submit_result
503
+ // #24 eacn3_submit_result
463
504
  // Inlines logger: auto-report reputation event
464
- server.tool("eacn_submit_result", "Submit execution result for a task.", {
505
+ server.tool("eacn3_submit_result", "Submit your completed work for a task you are executing. Content should be a JSON object matching the task's expected_output format if specified. Side effects: automatically reports a 'task_completed' reputation event (increases your score); transitions task to 'awaiting_retrieval' so the initiator can review. Returns confirmation with submission status.", {
465
506
  task_id: z.string(),
466
507
  content: z.record(z.string(), z.unknown()).describe("Result content object"),
467
508
  agent_id: z.string().optional().describe("Executor agent ID (auto-injected if omitted)"),
@@ -475,9 +516,9 @@ server.tool("eacn_submit_result", "Submit execution result for a task.", {
475
516
  catch { /* non-critical */ }
476
517
  return ok(res);
477
518
  });
478
- // #25 eacn_reject_task
519
+ // #25 eacn3_reject_task
479
520
  // Inlines logger: auto-report reputation event
480
- server.tool("eacn_reject_task", "Reject/return a task. Frees the execution slot. Note: rejection affects reputation.", {
521
+ server.tool("eacn3_reject_task", "Abandon a task you accepted, freeing your execution slot for another agent. WARNING: automatically reports a 'task_rejected' reputation event which decreases your score. Only use when you genuinely cannot complete the task. Returns confirmation. Provide a reason string to explain why.", {
481
522
  task_id: z.string(),
482
523
  reason: z.string().optional(),
483
524
  agent_id: z.string().optional().describe("Executor agent ID (auto-injected if omitted)"),
@@ -491,8 +532,8 @@ server.tool("eacn_reject_task", "Reject/return a task. Frees the execution slot.
491
532
  catch { /* non-critical */ }
492
533
  return ok(res);
493
534
  });
494
- // #26 eacn_create_subtask
495
- server.tool("eacn_create_subtask", "Create a subtask under a parent task. Budget is carved from parent's escrow.", {
535
+ // #26 eacn3_create_subtask
536
+ server.tool("eacn3_create_subtask", "Delegate part of your work by creating a child task under a parent task you are executing. Budget is carved from the parent task's escrow (not your balance). Returns {subtask_id, parent_task_id, status, depth}. Depth auto-increments (max 3 levels). Side effects: broadcasts subtask to agents with matching domains; when the subtask completes, you receive a 'subtask_completed' event with auto-fetched results in the payload.", {
496
537
  parent_task_id: z.string(),
497
538
  description: z.string(),
498
539
  domains: z.array(z.string()),
@@ -509,9 +550,9 @@ server.tool("eacn_create_subtask", "Create a subtask under a parent task. Budget
509
550
  depth: task.depth,
510
551
  });
511
552
  });
512
- // #27 eacn_send_message
553
+ // #27 eacn3_send_message
513
554
  // A2A direct — agent.md:358-362: 点对点,不经过 Network
514
- server.tool("eacn_send_message", "Send a direct message to another Agent (A2A point-to-point). Local agents receive instantly; remote agents are reached via their URL callback.", {
555
+ server.tool("eacn3_send_message", "Send a direct agent-to-agent message bypassing the task system. Local agents receive it instantly in their event buffer; remote agents receive it via HTTP POST to their /events endpoint. Returns {sent, to, from, local}. The recipient sees a 'direct_message' event with payload.from and payload.content. Will fail if the remote agent has no reachable URL or is offline.", {
515
556
  agent_id: z.string().describe("Target agent ID"),
516
557
  content: z.string(),
517
558
  sender_id: z.string().optional().describe("Your agent ID (auto-injected if omitted)"),
@@ -565,8 +606,8 @@ server.tool("eacn_send_message", "Send a direct message to another Agent (A2A po
565
606
  // ═══════════════════════════════════════════════════════════════════════════
566
607
  // Reputation (2)
567
608
  // ═══════════════════════════════════════════════════════════════════════════
568
- // #28 eacn_report_event
569
- server.tool("eacn_report_event", "Report a reputation event. Usually called automatically by other tools, but exposed for special cases.", {
609
+ // #28 eacn3_report_event
610
+ server.tool("eacn3_report_event", "Manually report a reputation event for an agent. Valid event_type values: 'task_completed' (score up), 'task_rejected' (score down), 'task_timeout' (score down), 'bid_declined' (score down). Usually auto-called by eacn3_submit_result and eacn3_reject_task only call manually for edge cases. Returns {agent_id, score} with updated reputation. Side effects: updates local reputation cache.", {
570
611
  agent_id: z.string(),
571
612
  event_type: z.string().describe("task_completed | task_rejected | task_timeout | bid_declined"),
572
613
  }, async (params) => {
@@ -574,8 +615,8 @@ server.tool("eacn_report_event", "Report a reputation event. Usually called auto
574
615
  state.updateReputationCache(params.agent_id, res.score);
575
616
  return ok(res);
576
617
  });
577
- // #29 eacn_get_reputation
578
- server.tool("eacn_get_reputation", "Query an Agent's global reputation score.", {
618
+ // #29 eacn3_get_reputation
619
+ server.tool("eacn3_get_reputation", "Query an agent's global reputation score (0.0-1.0, starts at 0.5 for new agents). Returns {agent_id, score}. Score affects bid acceptance: confidence * reputation must meet the task's threshold. No side effects besides updating local reputation cache. Works for any agent ID, not just your own.", {
579
620
  agent_id: z.string(),
580
621
  }, async (params) => {
581
622
  const res = await net.getReputation(params.agent_id);
@@ -585,15 +626,15 @@ server.tool("eacn_get_reputation", "Query an Agent's global reputation score.",
585
626
  // ═══════════════════════════════════════════════════════════════════════════
586
627
  // Economy (2)
587
628
  // ═══════════════════════════════════════════════════════════════════════════
588
- // #30 eacn_get_balance
589
- server.tool("eacn_get_balance", "Query an Agent's account balance: available funds and frozen (escrowed) funds.", {
629
+ // #30 eacn3_get_balance
630
+ server.tool("eacn3_get_balance", "Check an agent's credit balance. Returns {agent_id, available, frozen} where 'available' is spendable credits and 'frozen' is credits locked in escrow for active tasks. No side effects. Check before creating tasks to ensure sufficient funds; use eacn3_deposit to add credits if needed.", {
590
631
  agent_id: z.string().describe("Agent ID to check balance for"),
591
632
  }, async (params) => {
592
633
  const res = await net.getBalance(params.agent_id);
593
634
  return ok(res);
594
635
  });
595
- // #31 eacn_deposit
596
- server.tool("eacn_deposit", "Deposit funds into an Agent's account. Increases available balance.", {
636
+ // #31 eacn3_deposit
637
+ server.tool("eacn3_deposit", "Add EACN credits to an agent's available balance. Amount must be > 0. Returns updated balance {agent_id, available, frozen}. Deposit before creating tasks if your balance is insufficient to cover the task budget.", {
597
638
  agent_id: z.string().describe("Agent ID to deposit funds for"),
598
639
  amount: z.number().positive().describe("Amount to deposit (must be > 0)"),
599
640
  }, async (params) => {
@@ -603,8 +644,8 @@ server.tool("eacn_deposit", "Deposit funds into an Agent's account. Increases av
603
644
  // ═══════════════════════════════════════════════════════════════════════════
604
645
  // Events (1)
605
646
  // ═══════════════════════════════════════════════════════════════════════════
606
- // #32 eacn_get_events
607
- server.tool("eacn_get_events", "Get pending events. WebSocket connections buffer events in memory; this drains the buffer.", {}, async () => {
647
+ // #32 eacn3_get_events
648
+ server.tool("eacn3_get_events", "Drain the in-memory event buffer, returning all pending events and clearing them. Returns {count, events[]} where event types include: task_broadcast, discussions_updated, subtask_completed, awaiting_retrieval, budget_confirmation, timeout, direct_message. Call periodically in your main loop. Events arrive via WebSocket and accumulate until drained — missing events means missed tasks and messages.", {}, async () => {
608
649
  const events = state.drainEvents();
609
650
  return ok({
610
651
  count: events.length,
@@ -650,7 +691,7 @@ function registerEventCallbacks() {
650
691
  break;
651
692
  case "budget_confirmation":
652
693
  // Bid exceeded budget — mark in local state for initiator to handle
653
- // The event stays in the buffer for /eacn-bounty to surface
694
+ // The event stays in the buffer for /eacn3-bounty to surface
654
695
  break;
655
696
  case "task_broadcast":
656
697
  // New task available — auto-evaluate bid if agent has matching domains
@@ -680,7 +721,7 @@ async function autoBidEvaluate(agentId, event) {
680
721
  return;
681
722
  }
682
723
  // Passed auto-filter — enrich the buffered event with a hint
683
- // The skill layer (/eacn-bounty) will see this and can fast-track bidding
724
+ // The skill layer (/eacn3-bounty) will see this and can fast-track bidding
684
725
  state.pushEvents([{
685
726
  type: "task_broadcast",
686
727
  task_id: taskId,
@@ -700,7 +741,7 @@ async function main() {
700
741
  await server.connect(transport);
701
742
  }
702
743
  main().catch((e) => {
703
- console.error("EACN MCP server failed to start:", e);
744
+ console.error("EACN3 MCP server failed to start:", e);
704
745
  process.exit(1);
705
746
  });
706
747
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../server.ts"],"names":[],"mappings":"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"}