@agentage/cli 0.12.1 → 0.12.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"run-manager.d.ts","sourceRoot":"","sources":["../../src/daemon/run-manager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,GAAG,EACR,KAAK,QAAQ,EAEd,MAAM,gBAAgB,CAAC;AAGxB,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AACjE,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;AAW3C,eAAO,MAAM,UAAU,GAAI,UAAU,gBAAgB,KAAG,CAAC,MAAM,IAAI,CAGlE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,gBAAgB,KAAG,CAAC,MAAM,IAAI,CAGxE,CAAC;AAgCF,eAAO,MAAM,QAAQ,GACnB,OAAO,KAAK,EACZ,MAAM,MAAM,EACZ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,MAAM,EAAE,KACjB,OAAO,CAAC,MAAM,CA0BhB,CAAC;AAqCF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,OASzC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,KAAG,OAQvD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,GAAG,EAA0C,CAAC;AAEzE,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,KAAG,GAAG,GAAG,SAAiC,CAAC;AAE/E,eAAO,MAAM,aAAa,QAAO,IAQhC,CAAC"}
1
+ {"version":3,"file":"run-manager.d.ts","sourceRoot":"","sources":["../../src/daemon/run-manager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,GAAG,EACR,KAAK,QAAQ,EAEd,MAAM,gBAAgB,CAAC;AAGxB,KAAK,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC;AACjE,KAAK,gBAAgB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAAC;AAc3C,eAAO,MAAM,UAAU,GAAI,UAAU,gBAAgB,KAAG,CAAC,MAAM,IAAI,CAGlE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,UAAU,gBAAgB,KAAG,CAAC,MAAM,IAAI,CAGxE,CAAC;AAuCF,eAAO,MAAM,QAAQ,GACnB,OAAO,KAAK,EACZ,MAAM,MAAM,EACZ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,UAAU,MAAM,EAAE,KACjB,OAAO,CAAC,MAAM,CA0BhB,CAAC;AAqCF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,KAAG,OASzC,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,OAAO,MAAM,EAAE,MAAM,MAAM,KAAG,OASvD,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,GAAG,EAA0C,CAAC;AAEzE,eAAO,MAAM,MAAM,GAAI,OAAO,MAAM,KAAG,GAAG,GAAG,SAAiC,CAAC;AAE/E,eAAO,MAAM,aAAa,QAAO,IAQhC,CAAC"}
@@ -1,6 +1,8 @@
1
1
  import { randomUUID } from 'node:crypto';
2
2
  import { canTransition, } from '@agentage/core';
3
3
  import { logError, logInfo } from './logger.js';
4
+ const TERMINAL_STATES = ['completed', 'failed', 'canceled'];
5
+ const RUN_CLEANUP_TTL_MS = 5 * 60_000; // Clean up terminal runs after 5 minutes
4
6
  const runs = new Map();
5
7
  const eventListeners = new Set();
6
8
  const stateListeners = new Set();
@@ -32,6 +34,12 @@ const updateRunState = (tracked, newState, extra) => {
32
34
  Object.assign(tracked.run, extra);
33
35
  }
34
36
  emitStateChange(tracked.run);
37
+ // Schedule cleanup for terminal runs to prevent memory leak
38
+ if (TERMINAL_STATES.includes(newState)) {
39
+ setTimeout(() => {
40
+ runs.delete(tracked.run.id);
41
+ }, RUN_CLEANUP_TTL_MS);
42
+ }
35
43
  };
36
44
  export const startRun = async (agent, task, config, context) => {
37
45
  const runId = randomUUID();
@@ -80,7 +88,7 @@ const consumeEvents = async (tracked) => {
80
88
  }
81
89
  }
82
90
  // If events ended without a terminal state, mark completed
83
- if (!['completed', 'failed', 'canceled'].includes(tracked.run.state)) {
91
+ if (!TERMINAL_STATES.includes(tracked.run.state)) {
84
92
  updateRunState(tracked, 'completed', { endedAt: Date.now() });
85
93
  }
86
94
  };
@@ -96,6 +104,8 @@ export const cancelRun = (runId) => {
96
104
  return true;
97
105
  };
98
106
  export const sendInput = (runId, text) => {
107
+ if (!text || typeof text !== 'string')
108
+ return false;
99
109
  const tracked = runs.get(runId);
100
110
  if (!tracked)
101
111
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/daemon/run-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"run-manager.js","sourceRoot":"","sources":["../../src/daemon/run-manager.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/daemon/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAkB,MAAM,IAAI,CAAC;AA4DrD,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,eAyD/C,CAAC"}
1
+ {"version":3,"file":"websocket.d.ts","sourceRoot":"","sources":["../../src/daemon/websocket.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,eAAe,EAAkB,MAAM,IAAI,CAAC;AAiFrD,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,eAyD/C,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { WebSocketServer } from 'ws';
2
2
  import { onRunEvent, onRunStateChange } from './run-manager.js';
3
3
  import { logDebug, logInfo } from './logger.js';
4
- const MAX_BUFFER_PER_RUN = 200;
4
+ const MAX_BUFFER_PER_RUN = 500;
5
5
  const BUFFER_TTL_MS = 60_000;
6
6
  const clientSubscriptions = new Map();
7
7
  const runBuffers = new Map();
@@ -18,23 +18,42 @@ const bufferMessage = (runId, msg) => {
18
18
  }, BUFFER_TTL_MS);
19
19
  bufferTimers.set(runId, timer);
20
20
  }
21
- if (buf.length < MAX_BUFFER_PER_RUN) {
22
- buf.push(msg);
21
+ if (buf.length >= MAX_BUFFER_PER_RUN) {
22
+ // Ring buffer: drop oldest to make room
23
+ buf.shift();
24
+ logDebug(`Buffer overflow for run ${runId} — dropping oldest event (cap: ${MAX_BUFFER_PER_RUN})`);
23
25
  }
26
+ buf.push(msg);
24
27
  };
25
28
  const replayBuffer = (ws, runId) => {
26
29
  const buf = runBuffers.get(runId);
27
30
  if (!buf)
28
31
  return;
32
+ // B3: Extend TTL when a client subscribes to prevent race between
33
+ // buffer expiry and replay delivery
34
+ const existingTimer = bufferTimers.get(runId);
35
+ if (existingTimer) {
36
+ clearTimeout(existingTimer);
37
+ const timer = setTimeout(() => {
38
+ runBuffers.delete(runId);
39
+ bufferTimers.delete(runId);
40
+ }, BUFFER_TTL_MS);
41
+ bufferTimers.set(runId, timer);
42
+ }
29
43
  logDebug(`Replaying ${buf.length} buffered messages for run ${runId}`);
30
44
  for (const msg of buf) {
31
45
  sendToClient(ws, msg);
32
46
  }
33
47
  };
34
48
  const sendToClient = (ws, data) => {
35
- if (ws.readyState === ws.OPEN) {
49
+ if (ws.readyState !== ws.OPEN)
50
+ return;
51
+ try {
36
52
  ws.send(JSON.stringify(data));
37
53
  }
54
+ catch (err) {
55
+ logDebug(`Failed to send WS message: ${err instanceof Error ? err.message : String(err)}`);
56
+ }
38
57
  };
39
58
  export const setupWebSocket = (server) => {
40
59
  const wss = new WebSocketServer({ server, path: '/ws' });
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/daemon/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/daemon/websocket.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hub-sync.d.ts","sourceRoot":"","sources":["../../src/hub/hub-sync.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,aAAa,QAAO,OAqKhC,CAAC;AAKF,eAAO,MAAM,UAAU,QAAO,OAK7B,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAC"}
1
+ {"version":3,"file":"hub-sync.d.ts","sourceRoot":"","sources":["../../src/hub/hub-sync.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,OAAO;IACtB,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,WAAW,EAAE,MAAM,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,eAAO,MAAM,aAAa,QAAO,OA2KhC,CAAC;AAKF,eAAO,MAAM,UAAU,QAAO,OAK7B,CAAC;AAEF,eAAO,MAAM,YAAY,QAAO,IAE/B,CAAC"}
@@ -72,16 +72,21 @@ export const createHubSync = () => {
72
72
  };
73
73
  const startHeartbeat = (auth) => {
74
74
  if (heartbeatTimer)
75
- clearInterval(heartbeatTimer);
76
- heartbeatTimer = setInterval(async () => {
77
- try {
78
- await refreshTokenIfNeeded();
79
- await sendHeartbeat(auth);
80
- }
81
- catch (err) {
82
- logWarn(`Heartbeat failed: ${err instanceof Error ? err.message : String(err)}`);
83
- }
84
- }, HEARTBEAT_INTERVAL_MS);
75
+ clearTimeout(heartbeatTimer);
76
+ const scheduleNext = () => {
77
+ heartbeatTimer = setTimeout(async () => {
78
+ try {
79
+ await refreshTokenIfNeeded();
80
+ await sendHeartbeat(auth);
81
+ }
82
+ catch (err) {
83
+ logWarn(`Heartbeat failed: ${err instanceof Error ? err.message : String(err)}`);
84
+ }
85
+ // Schedule next heartbeat AFTER current one finishes (no overlap)
86
+ scheduleNext();
87
+ }, HEARTBEAT_INTERVAL_MS);
88
+ };
89
+ scheduleNext();
85
90
  };
86
91
  return {
87
92
  start: async () => {
@@ -112,7 +117,7 @@ export const createHubSync = () => {
112
117
  },
113
118
  stop: async () => {
114
119
  if (heartbeatTimer) {
115
- clearInterval(heartbeatTimer);
120
+ clearTimeout(heartbeatTimer);
116
121
  heartbeatTimer = null;
117
122
  }
118
123
  if (reconnector) {
@@ -1 +1 @@
1
- {"version":3,"file":"hub-sync.js","sourceRoot":"","sources":["../../src/hub/hub-sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAkB,QAAQ,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAkB,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAoB,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,qBAAqB,GAAG,MAAM,CAAC;AASrC,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,IAAI,SAAS,GAAqB,IAAI,CAAC;IACvC,IAAI,KAAK,GAAiB,IAAI,CAAC;IAC/B,IAAI,cAAc,GAA0C,IAAI,CAAC;IACjE,IAAI,WAAW,GAAuB,IAAI,CAAC;IAC3C,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,MAAM,UAAU,GAAG,KAAK,EAAE,IAAe,EAAiB,EAAE;QAC1D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;QAE5B,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;YACtC,EAAE,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE;YACrB,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI;YACzB,QAAQ,EAAE,QAAQ,EAAE;YACpB,IAAI,EAAE,IAAI,EAAE;YACZ,aAAa,EAAE,OAAO;SACvB,CAAC,CAAC;QAEH,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QACtC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEf,OAAO,CAAC,kCAAkC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAE9D,oBAAoB;QACpB,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,EAAE;YACpF,uCAAuC;YACvC,SAAS,GAAG,KAAK,CAAC;YAClB,OAAO,CAAC,0DAA0D,CAAC,CAAC;YACpE,WAAW,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,EAAE,IAAe,EAAiB,EAAE;QAC7D,IAAI,CAAC,SAAS;YAAE,OAAO;QAEvB,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACrC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;YACrB,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW;YACnC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO;YAC3B,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI;SACtB,CAAC,CAAC,CAAC;QAEJ,MAAM,YAAY,GAAG,OAAO,EAAE;aAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,WAAW,CAAC;aAC/D,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAEpB,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAC7D,MAAM;YACN,YAAY;SACb,CAAC,CAAC;QAEH,oCAAoC;QACpC,IAAI,QAAQ,CAAC,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;YACxE,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,eAIzB,EAAE,CAAC;gBACH,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC1B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oBACrB,OAAO,CAAC,oCAAoC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC3D,CAAC;qBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;oBAC/C,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;oBAClC,OAAO,CAAC,mCAAmC,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,IAAe,EAAQ,EAAE;QAC/C,IAAI,cAAc;YAAE,aAAa,CAAC,cAAc,CAAC,CAAC;QAElD,cAAc,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACtC,IAAI,CAAC;gBACH,MAAM,oBAAoB,EAAE,CAAC;gBAC7B,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,qBAAqB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACnF,CAAC;QACH,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,KAAK,IAAI,EAAE;YAChB,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,CAAC,sCAAsC,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,WAAW,GAAG,iBAAiB,CAAC;gBAC9B,WAAW,EAAE,KAAK,IAAI,EAAE;oBACtB,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;oBACvB,cAAc,CAAC,IAAI,CAAC,CAAC;gBACvB,CAAC;gBACD,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;oBACf,OAAO,CACL,0BAA0B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAC1F,CAAC;gBACJ,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,cAAc,CAAC,IAAI,CAAC,CAAC;gBACrB,OAAO,CAAC,uBAAuB,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YACjD,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CACL,kCAAkC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,eAAe,CAClG,CAAC;gBACF,SAAS,GAAG,KAAK,CAAC;gBAClB,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAED,IAAI,EAAE,KAAK,IAAI,EAAE;YACf,IAAI,cAAc,EAAE,CAAC;gBACnB,aAAa,CAAC,cAAc,CAAC,CAAC;gBAC9B,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;YAED,IAAI,WAAW,EAAE,CAAC;gBAChB,WAAW,CAAC,IAAI,EAAE,CAAC;gBACnB,WAAW,GAAG,IAAI,CAAC;YACrB,CAAC;YAED,IAAI,KAAK,EAAE,CAAC;gBACV,KAAK,CAAC,UAAU,EAAE,CAAC;gBACnB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;YAED,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;gBACxB,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,CAAC;wBACH,MAAM,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBAC/C,OAAO,CAAC,uBAAuB,CAAC,CAAC;oBACnC,CAAC;oBAAC,MAAM,CAAC;wBACP,cAAc;oBAChB,CAAC;gBACH,CAAC;YACH,CAAC;YAED,SAAS,GAAG,KAAK,CAAC;YAClB,SAAS,GAAG,IAAI,CAAC;QACnB,CAAC;QAED,WAAW,EAAE,GAAG,EAAE,CAAC,SAAS;QAE5B,gBAAgB,EAAE,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;YACxB,IAAI,CAAC,IAAI,IAAI,CAAC,SAAS;gBAAE,OAAO;YAChC,IAAI,CAAC;gBACH,MAAM,aAAa,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,4BAA4B,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC1F,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;AAEF,4DAA4D;AAC5D,IAAI,QAAQ,GAAmB,IAAI,CAAC;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,GAAY,EAAE;IACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,aAAa,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,GAAS,EAAE;IACrC,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC,CAAC"}
1
+ {"version":3,"file":"hub-sync.js","sourceRoot":"","sources":["../../src/hub/hub-sync.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"hub-ws.d.ts","sourceRoot":"","sources":["../../src/hub/hub-ws.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,eAAe,MAAM,IAAI,KACxB,KA8HF,CAAC"}
1
+ {"version":3,"file":"hub-ws.d.ts","sourceRoot":"","sources":["../../src/hub/hub-ws.ts"],"names":[],"mappings":"AAgCA,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,WAAW,GACtB,QAAQ,MAAM,EACd,OAAO,MAAM,EACb,WAAW,MAAM,EACjB,eAAe,MAAM,IAAI,KACxB,KA+IF,CAAC"}
@@ -25,12 +25,19 @@ export const createHubWs = (hubUrl, token, machineId, onDisconnect) => {
25
25
  send({ type: 'execute_accepted', requestId: msg.requestId, runId: hubRunId });
26
26
  // Subscribe to run events and stream to hub
27
27
  // Match by localRunId (what run-manager emits), send with hubRunId (what hub expects)
28
- const unsubEvent = onRunEvent((eventRunId, event) => {
28
+ const TERMINAL_STATES = ['completed', 'failed', 'canceled'];
29
+ const unsubs = [];
30
+ const cleanupRunListeners = () => {
31
+ for (const fn of unsubs)
32
+ fn();
33
+ unsubs.length = 0;
34
+ };
35
+ unsubs.push(onRunEvent((eventRunId, event) => {
29
36
  if (eventRunId === localRunId) {
30
37
  send({ type: 'run_event', runId: hubRunId, event });
31
38
  }
32
- });
33
- const unsubState = onRunStateChange((run) => {
39
+ }));
40
+ unsubs.push(onRunStateChange((run) => {
34
41
  if (run.id === localRunId) {
35
42
  send({
36
43
  type: 'run_state',
@@ -39,9 +46,13 @@ export const createHubWs = (hubUrl, token, machineId, onDisconnect) => {
39
46
  error: run.error,
40
47
  stats: run.stats,
41
48
  });
49
+ // Unsubscribe on terminal state to prevent listener accumulation
50
+ if (TERMINAL_STATES.includes(run.state)) {
51
+ cleanupRunListeners();
52
+ }
42
53
  }
43
- });
44
- eventUnsubscribers.push(unsubEvent, unsubState);
54
+ }));
55
+ eventUnsubscribers.push(cleanupRunListeners);
45
56
  }
46
57
  catch (err) {
47
58
  send({
@@ -1 +1 @@
1
- {"version":3,"file":"hub-ws.js","sourceRoot":"","sources":["../../src/hub/hub-ws.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hub-ws.js","sourceRoot":"","sources":["../../src/hub/hub-ws.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"reconnection.d.ts","sourceRoot":"","sources":["../../src/hub/reconnection.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,kBAAkB,KAAG,WAyC5D,CAAC"}
1
+ {"version":3,"file":"reconnection.d.ts","sourceRoot":"","sources":["../../src/hub/reconnection.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,iBAAiB,GAAI,MAAM,kBAAkB,KAAG,WA8C5D,CAAC"}
@@ -4,12 +4,14 @@ export const createReconnector = (opts) => {
4
4
  let currentDelay = initialDelay;
5
5
  let timer = null;
6
6
  let stopped = false;
7
+ let running = false;
7
8
  const attempt = async () => {
8
9
  if (stopped)
9
10
  return;
10
11
  try {
11
12
  await opts.onReconnect();
12
13
  currentDelay = initialDelay;
14
+ running = false;
13
15
  }
14
16
  catch (err) {
15
17
  opts.onError?.(err);
@@ -21,11 +23,15 @@ export const createReconnector = (opts) => {
21
23
  };
22
24
  return {
23
25
  start: () => {
26
+ if (running)
27
+ return;
24
28
  stopped = false;
29
+ running = true;
25
30
  attempt();
26
31
  },
27
32
  stop: () => {
28
33
  stopped = true;
34
+ running = false;
29
35
  if (timer) {
30
36
  clearTimeout(timer);
31
37
  timer = null;
@@ -1 +1 @@
1
- {"version":3,"file":"reconnection.js","sourceRoot":"","sources":["../../src/hub/reconnection.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAwB,EAAe,EAAE;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;IAE3C,IAAI,YAAY,GAAG,YAAY,CAAC;IAChC,IAAI,KAAK,GAAyC,IAAI,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,IAAI,OAAO;YAAE,OAAO;QAEpB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,YAAY,CAAC,CAAC;YACjB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,OAAO,GAAG,KAAK,CAAC;YAChB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,EAAE,GAAG,EAAE;YACT,OAAO,GAAG,IAAI,CAAC;YACf,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;QAED,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
1
+ {"version":3,"file":"reconnection.js","sourceRoot":"","sources":["../../src/hub/reconnection.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAAwB,EAAe,EAAE;IACzE,MAAM,YAAY,GAAG,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,MAAM,CAAC;IAE3C,IAAI,YAAY,GAAG,YAAY,CAAC;IAChC,IAAI,KAAK,GAAyC,IAAI,CAAC;IACvD,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACxC,IAAI,OAAO;YAAE,OAAO;QAEpB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;YACzB,YAAY,GAAG,YAAY,CAAC;YAC5B,OAAO,GAAG,KAAK,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YACpB,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBACtB,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,YAAY,CAAC,CAAC;YACjB,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,YAAY,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;QACtD,CAAC;IACH,CAAC,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,IAAI,OAAO;gBAAE,OAAO;YACpB,OAAO,GAAG,KAAK,CAAC;YAChB,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,EAAE,GAAG,EAAE;YACT,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,GAAG,KAAK,CAAC;YAChB,IAAI,KAAK,EAAE,CAAC;gBACV,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,KAAK,GAAG,IAAI,CAAC;YACf,CAAC;QACH,CAAC;QAED,KAAK,EAAE,GAAG,EAAE;YACV,YAAY,GAAG,YAAY,CAAC;QAC9B,CAAC;KACF,CAAC;AACJ,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentage/cli",
3
- "version": "0.12.1",
3
+ "version": "0.12.3",
4
4
  "description": "Agentage CLI and daemon — control plane for AI agents",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",