agenthub-multiagent-mcp 1.1.4 → 1.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.
package/dist/client.d.ts CHANGED
@@ -25,6 +25,71 @@ export interface PendingTask {
25
25
  status: string;
26
26
  created_at: string;
27
27
  }
28
+ export interface TicketTask {
29
+ id: string;
30
+ org_id: string;
31
+ project_id: string;
32
+ epic_id?: string;
33
+ story_id?: string;
34
+ key: string;
35
+ type: string;
36
+ title: string;
37
+ description?: string;
38
+ status: string;
39
+ priority: string;
40
+ points?: number;
41
+ review_mode: string;
42
+ assignee_id?: string;
43
+ assigned_agent?: string;
44
+ claimed_by?: string;
45
+ labels?: string[];
46
+ sprint_id?: string;
47
+ due_date?: string;
48
+ created_by: string;
49
+ created_at: string;
50
+ updated_at: string;
51
+ }
52
+ export interface TicketTaskContext {
53
+ task: TicketTask;
54
+ story?: {
55
+ id: string;
56
+ title: string;
57
+ description?: string;
58
+ status: string;
59
+ };
60
+ epic?: {
61
+ id: string;
62
+ title: string;
63
+ description?: string;
64
+ status: string;
65
+ };
66
+ project?: {
67
+ id: string;
68
+ key: string;
69
+ name: string;
70
+ description?: string;
71
+ };
72
+ }
73
+ export interface TaskCheckpoint {
74
+ id: string;
75
+ task_id: string;
76
+ task_key: string;
77
+ agent_id: string;
78
+ description: string;
79
+ status: string;
80
+ reviewed_by?: string;
81
+ review_notes?: string;
82
+ reviewed_at?: string;
83
+ created_at: string;
84
+ }
85
+ export interface CheckpointResponse {
86
+ id: string;
87
+ task_id: string;
88
+ task_key: string;
89
+ status: string;
90
+ slack_posted: boolean;
91
+ created_at: string;
92
+ }
28
93
  export interface TaskCompletionResponse {
29
94
  task_id: string;
30
95
  elapsed_time: string;
@@ -62,6 +127,7 @@ export declare class ApiClient {
62
127
  private request;
63
128
  registerAgent(id: string, name?: string, owner?: string, workingDir?: string, model?: string): Promise<{
64
129
  agent_id: string;
130
+ name: string;
65
131
  token: string;
66
132
  model: string;
67
133
  model_provider: string;
@@ -70,17 +136,21 @@ export declare class ApiClient {
70
136
  pending_tasks_count: number;
71
137
  unread_messages_count: number;
72
138
  }>;
73
- reconnectAgent(agentId: string, token: string, owner?: string, model?: string): Promise<{
139
+ reconnectAgent(agentId: string, token: string, owner?: string, model?: string, name?: string): Promise<{
74
140
  reconnected: boolean;
75
141
  agent_id: string;
142
+ name: string;
76
143
  was_offline: boolean;
77
144
  pending_tasks_count: number;
78
145
  unread_messages_count: number;
79
146
  slack_notified: boolean;
80
147
  }>;
81
- startWork(agentId: string, task: string, project?: string): Promise<{
148
+ startWork(agentId: string, task: string, project?: string, taskId?: string): Promise<{
82
149
  acknowledged: boolean;
83
150
  slack_posted: boolean;
151
+ task_id?: string;
152
+ task_key?: string;
153
+ task_linked?: boolean;
84
154
  }>;
85
155
  heartbeat(agentId: string, status?: "online" | "busy"): Promise<{
86
156
  acknowledged: boolean;
@@ -150,5 +220,35 @@ export declare class ApiClient {
150
220
  declineTask(agentId: string, taskId: string, reason: string): Promise<{
151
221
  acknowledged: boolean;
152
222
  }>;
223
+ getAvailableTasks(params?: {
224
+ status?: string;
225
+ project_id?: string;
226
+ priority?: string;
227
+ }): Promise<{
228
+ tasks: TicketTask[];
229
+ total: number;
230
+ }>;
231
+ getTicketTask(taskId: string): Promise<TicketTaskContext>;
232
+ claimTicketTask(taskId: string, agentId: string): Promise<{
233
+ success: boolean;
234
+ task: TicketTask;
235
+ task_id: string;
236
+ task_key: string;
237
+ }>;
238
+ createCheckpoint(taskId: string, agentId: string, description: string): Promise<CheckpointResponse>;
239
+ initRegistration(agentId?: string, agentName?: string): Promise<{
240
+ session_token: string;
241
+ dashboard_url: string;
242
+ expires_at: string;
243
+ }>;
244
+ pollRegistrationCallback(token: string): Promise<{
245
+ status: "pending" | "completed" | "expired";
246
+ agent_id?: string;
247
+ agent_name?: string;
248
+ agent_type?: string;
249
+ connect_token?: string;
250
+ expires_at?: string;
251
+ }>;
252
+ getBaseUrl(): string;
153
253
  }
154
254
  //# sourceMappingURL=client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -35,18 +35,20 @@ export class ApiClient {
35
35
  model,
36
36
  });
37
37
  }
38
- async reconnectAgent(agentId, token, owner, model) {
38
+ async reconnectAgent(agentId, token, owner, model, name) {
39
39
  return this.request("POST", "/agents/reconnect", {
40
40
  agent_id: agentId,
41
41
  token,
42
42
  owner,
43
43
  model,
44
+ name,
44
45
  });
45
46
  }
46
- async startWork(agentId, task, project) {
47
+ async startWork(agentId, task, project, taskId) {
47
48
  return this.request("POST", `/agents/${agentId}/start-work`, {
48
49
  task,
49
50
  project,
51
+ task_id: taskId,
50
52
  });
51
53
  }
52
54
  async heartbeat(agentId, status) {
@@ -122,5 +124,72 @@ export class ApiClient {
122
124
  reason,
123
125
  });
124
126
  }
127
+ // Ticket system methods (for agent integration)
128
+ async getAvailableTasks(params) {
129
+ const query = new URLSearchParams();
130
+ if (params?.status)
131
+ query.set("status", params.status);
132
+ if (params?.project_id)
133
+ query.set("project_id", params.project_id);
134
+ if (params?.priority)
135
+ query.set("priority", params.priority);
136
+ const queryStr = query.toString() ? `?${query}` : "";
137
+ return this.request("GET", `/agent-tickets/available${queryStr}`);
138
+ }
139
+ async getTicketTask(taskId) {
140
+ return this.request("GET", `/agent-tickets/${taskId}`);
141
+ }
142
+ async claimTicketTask(taskId, agentId) {
143
+ return this.request("POST", `/agent-tickets/${taskId}/claim`, {
144
+ agent_id: agentId,
145
+ });
146
+ }
147
+ async createCheckpoint(taskId, agentId, description) {
148
+ return this.request("POST", `/agent-tickets/${taskId}/checkpoint`, {
149
+ agent_id: agentId,
150
+ description,
151
+ });
152
+ }
153
+ // Browser-based registration flow
154
+ async initRegistration(agentId, agentName) {
155
+ return this.request("POST", "/agents/register-init", {
156
+ agent_id: agentId,
157
+ agent_name: agentName,
158
+ });
159
+ }
160
+ async pollRegistrationCallback(token) {
161
+ const url = `${this.baseUrl}/agents/register-callback/${token}`;
162
+ const response = await fetch(url, {
163
+ method: "GET",
164
+ headers: {
165
+ "Content-Type": "application/json",
166
+ "X-API-Key": this.apiKey,
167
+ },
168
+ });
169
+ if (response.status === 202) {
170
+ // Still pending
171
+ const data = await response.json();
172
+ return { status: "pending", expires_at: data.expires_at };
173
+ }
174
+ if (response.status === 410) {
175
+ // Expired
176
+ return { status: "expired" };
177
+ }
178
+ if (!response.ok) {
179
+ const data = await response.json();
180
+ throw new Error(data.message || `Request failed: ${response.status}`);
181
+ }
182
+ const data = await response.json();
183
+ return {
184
+ status: "completed",
185
+ agent_id: data.agent_id,
186
+ agent_name: data.agent_name,
187
+ agent_type: data.agent_type,
188
+ connect_token: data.connect_token,
189
+ };
190
+ }
191
+ getBaseUrl() {
192
+ return this.baseUrl;
193
+ }
125
194
  }
126
195
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  /**
2
2
  * Background heartbeat manager with enhanced logging for pending tasks/messages
3
+ * and automatic reconnection on failures.
3
4
  */
4
5
  import { ApiClient } from "./client.js";
6
+ import { AgentState } from "./state.js";
7
+ export type ReconnectCallback = () => Promise<AgentState | null>;
5
8
  export declare class HeartbeatManager {
6
9
  private client;
7
10
  private intervalId?;
@@ -10,11 +13,24 @@ export declare class HeartbeatManager {
10
13
  private lastPendingTasks;
11
14
  private lastUnreadMessages;
12
15
  private heartbeatCount;
16
+ private consecutiveFailures;
17
+ private backoffMs;
18
+ private readonly maxBackoffMs;
19
+ private readonly failuresBeforeReconnect;
20
+ private reconnectCallback?;
21
+ private isReconnecting;
13
22
  constructor(client: ApiClient);
23
+ /**
24
+ * Set callback for reconnection attempts
25
+ */
26
+ setReconnectCallback(callback: ReconnectCallback): void;
14
27
  start(agentId: string): void;
15
28
  stop(): void;
16
29
  setStatus(status: "online" | "busy"): void;
17
30
  private sendHeartbeat;
31
+ private handleHeartbeatFailure;
32
+ private scheduleRetry;
33
+ private attemptReconnection;
18
34
  /**
19
35
  * Get the current pending counts (for use by tools)
20
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,cAAc,CAAK;gBAEf,MAAM,EAAE,SAAS;IAI7B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAsB5B,IAAI,IAAI,IAAI;IAgBZ,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;YAK5B,aAAa;IAoC3B;;OAEG;IACH,gBAAgB,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAMrE"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAGxC,MAAM,MAAM,iBAAiB,GAAG,MAAM,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;AAEjE,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,UAAU,CAAC,CAAiB;IACpC,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,cAAc,CAAK;IAG3B,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAAK;IAC7C,OAAO,CAAC,iBAAiB,CAAC,CAAoB;IAC9C,OAAO,CAAC,cAAc,CAAS;gBAEnB,MAAM,EAAE,SAAS;IAI7B;;OAEG;IACH,oBAAoB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI;IAIvD,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAyB5B,IAAI,IAAI,IAAI;IAgBZ,SAAS,CAAC,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;YAK5B,aAAa;YAoCb,sBAAsB;IAapC,OAAO,CAAC,aAAa;YAkBP,mBAAmB;IA6BjC;;OAEG;IACH,gBAAgB,IAAI;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE;CAMrE"}
package/dist/heartbeat.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * Background heartbeat manager with enhanced logging for pending tasks/messages
3
+ * and automatic reconnection on failures.
3
4
  */
4
5
  export class HeartbeatManager {
5
6
  client;
@@ -9,15 +10,31 @@ export class HeartbeatManager {
9
10
  lastPendingTasks = 0;
10
11
  lastUnreadMessages = 0;
11
12
  heartbeatCount = 0;
13
+ // Retry state
14
+ consecutiveFailures = 0;
15
+ backoffMs = 1000; // Start at 1 second
16
+ maxBackoffMs = 30000; // Cap at 30 seconds
17
+ failuresBeforeReconnect = 3;
18
+ reconnectCallback;
19
+ isReconnecting = false;
12
20
  constructor(client) {
13
21
  this.client = client;
14
22
  }
23
+ /**
24
+ * Set callback for reconnection attempts
25
+ */
26
+ setReconnectCallback(callback) {
27
+ this.reconnectCallback = callback;
28
+ }
15
29
  start(agentId) {
16
30
  this.stop(); // Clear any existing interval
17
31
  this.agentId = agentId;
18
32
  this.heartbeatCount = 0;
19
33
  this.lastPendingTasks = 0;
20
34
  this.lastUnreadMessages = 0;
35
+ this.consecutiveFailures = 0;
36
+ this.backoffMs = 1000;
37
+ this.isReconnecting = false;
21
38
  // Send heartbeat every 30 seconds
22
39
  this.intervalId = setInterval(async () => {
23
40
  if (!this.agentId)
@@ -26,11 +43,11 @@ export class HeartbeatManager {
26
43
  await this.sendHeartbeat();
27
44
  }
28
45
  catch (error) {
29
- console.error("Heartbeat failed:", error);
46
+ await this.handleHeartbeatFailure(error);
30
47
  }
31
48
  }, 30_000);
32
49
  // Send initial heartbeat
33
- this.sendHeartbeat();
50
+ this.sendHeartbeat().catch((error) => this.handleHeartbeatFailure(error));
34
51
  }
35
52
  stop() {
36
53
  if (this.intervalId) {
@@ -47,39 +64,93 @@ export class HeartbeatManager {
47
64
  }
48
65
  setStatus(status) {
49
66
  this.status = status;
50
- this.sendHeartbeat();
67
+ this.sendHeartbeat().catch((error) => this.handleHeartbeatFailure(error));
51
68
  }
52
69
  async sendHeartbeat() {
53
70
  if (!this.agentId)
54
71
  return;
55
- try {
56
- const response = await this.client.heartbeat(this.agentId, this.status);
57
- this.heartbeatCount++;
58
- const { pending_tasks_count, unread_messages_count } = response;
59
- // Log if there are new pending tasks
60
- if (pending_tasks_count > 0 && pending_tasks_count !== this.lastPendingTasks) {
61
- console.error(`\n🔔 [AgentHub] You have ${pending_tasks_count} pending task(s) waiting! Use get_pending_tasks to view them.\n`);
72
+ const response = await this.client.heartbeat(this.agentId, this.status);
73
+ // Success - reset failure state
74
+ this.consecutiveFailures = 0;
75
+ this.backoffMs = 1000;
76
+ this.heartbeatCount++;
77
+ const { pending_tasks_count, unread_messages_count } = response;
78
+ // Log if there are new pending tasks
79
+ if (pending_tasks_count > 0 && pending_tasks_count !== this.lastPendingTasks) {
80
+ console.error(`\n🔔 [AgentHub] You have ${pending_tasks_count} pending task(s) waiting! Use get_pending_tasks to view them.\n`);
81
+ }
82
+ // Log if there are new unread messages
83
+ if (unread_messages_count > 0 && unread_messages_count !== this.lastUnreadMessages) {
84
+ console.error(`\n📬 [AgentHub] You have ${unread_messages_count} unread message(s)! Use check_inbox to read them.\n`);
85
+ }
86
+ // Periodic reminder every 5 heartbeats (2.5 minutes) if there are pending items
87
+ if (this.heartbeatCount % 5 === 0) {
88
+ if (pending_tasks_count > 0 || unread_messages_count > 0) {
89
+ const parts = [];
90
+ if (pending_tasks_count > 0)
91
+ parts.push(`${pending_tasks_count} pending task(s)`);
92
+ if (unread_messages_count > 0)
93
+ parts.push(`${unread_messages_count} unread message(s)`);
94
+ console.error(`\n⏰ [AgentHub] Reminder: You have ${parts.join(" and ")}.\n`);
95
+ }
96
+ }
97
+ this.lastPendingTasks = pending_tasks_count;
98
+ this.lastUnreadMessages = unread_messages_count;
99
+ }
100
+ async handleHeartbeatFailure(error) {
101
+ this.consecutiveFailures++;
102
+ console.error(`[AgentHub] Heartbeat failed (attempt ${this.consecutiveFailures}):`, error);
103
+ // Check if we should attempt full reconnection
104
+ if (this.consecutiveFailures >= this.failuresBeforeReconnect && !this.isReconnecting) {
105
+ await this.attemptReconnection();
106
+ }
107
+ else {
108
+ // Schedule retry with exponential backoff
109
+ this.scheduleRetry();
110
+ }
111
+ }
112
+ scheduleRetry() {
113
+ console.error(`[AgentHub] Retrying heartbeat in ${this.backoffMs}ms...`);
114
+ setTimeout(async () => {
115
+ if (!this.agentId)
116
+ return;
117
+ try {
118
+ await this.sendHeartbeat();
119
+ console.error("[AgentHub] Heartbeat recovered!");
62
120
  }
63
- // Log if there are new unread messages
64
- if (unread_messages_count > 0 && unread_messages_count !== this.lastUnreadMessages) {
65
- console.error(`\n📬 [AgentHub] You have ${unread_messages_count} unread message(s)! Use check_inbox to read them.\n`);
121
+ catch (error) {
122
+ await this.handleHeartbeatFailure(error);
123
+ }
124
+ }, this.backoffMs);
125
+ // Increase backoff for next failure (exponential with cap)
126
+ this.backoffMs = Math.min(this.backoffMs * 2, this.maxBackoffMs);
127
+ }
128
+ async attemptReconnection() {
129
+ if (!this.reconnectCallback) {
130
+ console.error("[AgentHub] No reconnect callback configured, continuing retries...");
131
+ this.scheduleRetry();
132
+ return;
133
+ }
134
+ this.isReconnecting = true;
135
+ console.error("[AgentHub] Attempting full reconnection...");
136
+ try {
137
+ const state = await this.reconnectCallback();
138
+ if (state) {
139
+ this.agentId = state.agent_id;
140
+ this.consecutiveFailures = 0;
141
+ this.backoffMs = 1000;
142
+ this.isReconnecting = false;
143
+ console.error(`[AgentHub] Reconnected successfully as ${state.agent_id}`);
66
144
  }
67
- // Periodic reminder every 5 heartbeats (2.5 minutes) if there are pending items
68
- if (this.heartbeatCount % 5 === 0) {
69
- if (pending_tasks_count > 0 || unread_messages_count > 0) {
70
- const parts = [];
71
- if (pending_tasks_count > 0)
72
- parts.push(`${pending_tasks_count} pending task(s)`);
73
- if (unread_messages_count > 0)
74
- parts.push(`${unread_messages_count} unread message(s)`);
75
- console.error(`\n⏰ [AgentHub] Reminder: You have ${parts.join(" and ")}.\n`);
76
- }
145
+ else {
146
+ throw new Error("No state available for reconnection");
77
147
  }
78
- this.lastPendingTasks = pending_tasks_count;
79
- this.lastUnreadMessages = unread_messages_count;
80
148
  }
81
149
  catch (error) {
82
- console.error("Heartbeat failed:", error);
150
+ console.error("[AgentHub] Reconnection failed:", error);
151
+ this.isReconnecting = false;
152
+ this.consecutiveFailures = 0; // Reset to try again after more failures
153
+ this.scheduleRetry();
83
154
  }
84
155
  }
85
156
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../src/heartbeat.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,10 +5,13 @@ import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextpro
5
5
  import { ApiClient } from "./client.js";
6
6
  import { registerTools, handleToolCall } from "./tools/index.js";
7
7
  import { HeartbeatManager } from "./heartbeat.js";
8
+ import { WebSocketClient } from "./websocket.js";
9
+ import * as state from "./state.js";
8
10
  // Environment configuration
9
- const AGENTHUB_URL = process.env.AGENTHUB_URL || "http://localhost:8787";
11
+ const AGENTHUB_URL = process.env.AGENTHUB_URL || "https://agenthub.contetial.com";
10
12
  const AGENTHUB_API_KEY = process.env.AGENTHUB_API_KEY || "";
11
13
  const AGENTHUB_AGENT_ID = process.env.AGENTHUB_AGENT_ID || "";
14
+ const AGENTHUB_AUTO_RECONNECT = process.env.AGENTHUB_AUTO_RECONNECT !== "false"; // Enabled by default
12
15
  // Validate configuration
13
16
  if (!AGENTHUB_API_KEY) {
14
17
  console.error("Error: AGENTHUB_API_KEY environment variable is required");
@@ -18,12 +21,48 @@ if (!AGENTHUB_API_KEY) {
18
21
  const client = new ApiClient(AGENTHUB_URL, AGENTHUB_API_KEY);
19
22
  // Initialize heartbeat manager
20
23
  const heartbeat = new HeartbeatManager(client);
21
- // Track current agent ID
24
+ // Initialize WebSocket client for push notifications
25
+ const wsClient = new WebSocketClient(AGENTHUB_URL, AGENTHUB_API_KEY);
26
+ // Track current agent ID and working directory
22
27
  let currentAgentId = AGENTHUB_AGENT_ID;
28
+ const workingDir = process.cwd();
29
+ /**
30
+ * Attempt to reconnect using stored state
31
+ */
32
+ async function attemptReconnect() {
33
+ const existingState = state.loadState(workingDir);
34
+ if (!existingState) {
35
+ return null;
36
+ }
37
+ const owner = state.getCurrentOwner();
38
+ if (existingState.owner !== owner) {
39
+ console.error("[AgentHub] State file belongs to different user, skipping auto-reconnect");
40
+ return null;
41
+ }
42
+ try {
43
+ const result = await client.reconnectAgent(existingState.agent_id, existingState.token, owner, undefined, // model - keep existing
44
+ existingState.name);
45
+ if (result.reconnected) {
46
+ currentAgentId = result.agent_id;
47
+ // Update state with any changes
48
+ state.saveState(workingDir, {
49
+ ...existingState,
50
+ name: result.name,
51
+ });
52
+ return existingState;
53
+ }
54
+ }
55
+ catch (error) {
56
+ console.error("[AgentHub] Reconnect attempt failed:", error);
57
+ }
58
+ return null;
59
+ }
60
+ // Set up reconnect callback for heartbeat manager
61
+ heartbeat.setReconnectCallback(attemptReconnect);
23
62
  // Create MCP server
24
63
  const server = new Server({
25
64
  name: "agenthub",
26
- version: "1.1.4",
65
+ version: "1.2.0",
27
66
  }, {
28
67
  capabilities: {
29
68
  tools: {},
@@ -44,9 +83,14 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
44
83
  setCurrentAgentId: (id) => {
45
84
  currentAgentId = id;
46
85
  heartbeat.start(id);
86
+ wsClient.connect(id);
87
+ },
88
+ stopHeartbeat: () => {
89
+ heartbeat.stop();
90
+ wsClient.close();
47
91
  },
48
- stopHeartbeat: () => heartbeat.stop(),
49
92
  getWorkingDir: () => process.cwd(),
93
+ getPushedItems: () => wsClient.getPushedItems(),
50
94
  });
51
95
  return {
52
96
  content: [
@@ -73,10 +117,12 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
73
117
  // Graceful shutdown
74
118
  process.on("SIGINT", () => {
75
119
  heartbeat.stop();
120
+ wsClient.close();
76
121
  process.exit(0);
77
122
  });
78
123
  process.on("SIGTERM", () => {
79
124
  heartbeat.stop();
125
+ wsClient.close();
80
126
  process.exit(0);
81
127
  });
82
128
  // Start server
@@ -84,17 +130,35 @@ async function main() {
84
130
  const transport = new StdioServerTransport();
85
131
  await server.connect(transport);
86
132
  console.error("AgentHub MCP server running");
87
- // Auto-register if agent ID is provided
133
+ // Auto-register if agent ID is provided via environment
88
134
  if (AGENTHUB_AGENT_ID) {
89
135
  try {
90
136
  await client.registerAgent(AGENTHUB_AGENT_ID);
91
137
  heartbeat.start(AGENTHUB_AGENT_ID);
138
+ wsClient.connect(AGENTHUB_AGENT_ID);
92
139
  console.error(`Auto-registered as agent: ${AGENTHUB_AGENT_ID}`);
93
140
  }
94
141
  catch (error) {
95
142
  console.error(`Failed to auto-register: ${error}`);
96
143
  }
97
144
  }
145
+ else if (AGENTHUB_AUTO_RECONNECT) {
146
+ // Try to auto-reconnect from stored state
147
+ const existingState = state.loadState(workingDir);
148
+ if (existingState) {
149
+ console.error(`[AgentHub] Found existing state for agent: ${existingState.agent_id}`);
150
+ const reconnected = await attemptReconnect();
151
+ if (reconnected) {
152
+ heartbeat.start(reconnected.agent_id);
153
+ wsClient.connect(reconnected.agent_id);
154
+ const displayName = reconnected.name || reconnected.agent_id;
155
+ console.error(`[AgentHub] Auto-reconnected as: ${displayName}`);
156
+ }
157
+ else {
158
+ console.error("[AgentHub] Auto-reconnect failed, manual registration required");
159
+ }
160
+ }
161
+ }
98
162
  }
99
163
  main().catch((error) => {
100
164
  console.error("Fatal error:", error);