agent-relay 1.0.8 → 1.0.9

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 (113) hide show
  1. package/README.md +158 -0
  2. package/dist/bridge/config.d.ts +41 -0
  3. package/dist/bridge/config.d.ts.map +1 -0
  4. package/dist/bridge/config.js +143 -0
  5. package/dist/bridge/config.js.map +1 -0
  6. package/dist/bridge/index.d.ts +10 -0
  7. package/dist/bridge/index.d.ts.map +1 -0
  8. package/dist/bridge/index.js +10 -0
  9. package/dist/bridge/index.js.map +1 -0
  10. package/dist/bridge/multi-project-client.d.ts +99 -0
  11. package/dist/bridge/multi-project-client.d.ts.map +1 -0
  12. package/dist/bridge/multi-project-client.js +386 -0
  13. package/dist/bridge/multi-project-client.js.map +1 -0
  14. package/dist/bridge/spawner.d.ts +46 -0
  15. package/dist/bridge/spawner.d.ts.map +1 -0
  16. package/dist/bridge/spawner.js +223 -0
  17. package/dist/bridge/spawner.js.map +1 -0
  18. package/dist/bridge/types.d.ts +55 -0
  19. package/dist/bridge/types.d.ts.map +1 -0
  20. package/dist/bridge/types.js +6 -0
  21. package/dist/bridge/types.js.map +1 -0
  22. package/dist/bridge/utils.d.ts +30 -0
  23. package/dist/bridge/utils.d.ts.map +1 -0
  24. package/dist/bridge/utils.js +54 -0
  25. package/dist/bridge/utils.js.map +1 -0
  26. package/dist/cli/index.js +564 -5
  27. package/dist/cli/index.js.map +1 -1
  28. package/dist/daemon/agent-registry.d.ts.map +1 -1
  29. package/dist/daemon/agent-registry.js +6 -1
  30. package/dist/daemon/agent-registry.js.map +1 -1
  31. package/dist/daemon/connection.d.ts +22 -0
  32. package/dist/daemon/connection.d.ts.map +1 -1
  33. package/dist/daemon/connection.js +59 -13
  34. package/dist/daemon/connection.js.map +1 -1
  35. package/dist/daemon/router.d.ts +27 -0
  36. package/dist/daemon/router.d.ts.map +1 -1
  37. package/dist/daemon/router.js +108 -3
  38. package/dist/daemon/router.js.map +1 -1
  39. package/dist/daemon/server.d.ts +8 -0
  40. package/dist/daemon/server.d.ts.map +1 -1
  41. package/dist/daemon/server.js +95 -23
  42. package/dist/daemon/server.js.map +1 -1
  43. package/dist/dashboard/metrics.d.ts +105 -0
  44. package/dist/dashboard/metrics.d.ts.map +1 -0
  45. package/dist/dashboard/metrics.js +192 -0
  46. package/dist/dashboard/metrics.js.map +1 -0
  47. package/dist/dashboard/needs-attention.d.ts +24 -0
  48. package/dist/dashboard/needs-attention.d.ts.map +1 -0
  49. package/dist/dashboard/needs-attention.js +78 -0
  50. package/dist/dashboard/needs-attention.js.map +1 -0
  51. package/dist/dashboard/public/bridge.html +1272 -0
  52. package/dist/dashboard/public/index.html +2017 -879
  53. package/dist/dashboard/public/js/app.js +184 -0
  54. package/dist/dashboard/public/js/app.js.map +7 -0
  55. package/dist/dashboard/public/metrics.html +999 -0
  56. package/dist/dashboard/server.d.ts +13 -0
  57. package/dist/dashboard/server.d.ts.map +1 -1
  58. package/dist/dashboard/server.js +568 -13
  59. package/dist/dashboard/server.js.map +1 -1
  60. package/dist/dashboard/start.js +1 -1
  61. package/dist/dashboard/start.js.map +1 -1
  62. package/dist/dashboard-v2/index.d.ts +10 -0
  63. package/dist/dashboard-v2/index.d.ts.map +1 -0
  64. package/dist/dashboard-v2/index.js +54 -0
  65. package/dist/dashboard-v2/index.js.map +1 -0
  66. package/dist/dashboard-v2/lib/api.d.ts +95 -0
  67. package/dist/dashboard-v2/lib/api.d.ts.map +1 -0
  68. package/dist/dashboard-v2/lib/api.js +270 -0
  69. package/dist/dashboard-v2/lib/api.js.map +1 -0
  70. package/dist/dashboard-v2/lib/colors.d.ts +61 -0
  71. package/dist/dashboard-v2/lib/colors.d.ts.map +1 -0
  72. package/dist/dashboard-v2/lib/colors.js +198 -0
  73. package/dist/dashboard-v2/lib/colors.js.map +1 -0
  74. package/dist/dashboard-v2/lib/hierarchy.d.ts +74 -0
  75. package/dist/dashboard-v2/lib/hierarchy.d.ts.map +1 -0
  76. package/dist/dashboard-v2/lib/hierarchy.js +196 -0
  77. package/dist/dashboard-v2/lib/hierarchy.js.map +1 -0
  78. package/dist/dashboard-v2/types/index.d.ts +154 -0
  79. package/dist/dashboard-v2/types/index.d.ts.map +1 -0
  80. package/dist/dashboard-v2/types/index.js +6 -0
  81. package/dist/dashboard-v2/types/index.js.map +1 -0
  82. package/dist/storage/adapter.d.ts +21 -1
  83. package/dist/storage/adapter.d.ts.map +1 -1
  84. package/dist/storage/adapter.js +36 -0
  85. package/dist/storage/adapter.js.map +1 -1
  86. package/dist/storage/sqlite-adapter.d.ts +34 -0
  87. package/dist/storage/sqlite-adapter.d.ts.map +1 -1
  88. package/dist/storage/sqlite-adapter.js +253 -12
  89. package/dist/storage/sqlite-adapter.js.map +1 -1
  90. package/dist/utils/agent-config.d.ts +45 -0
  91. package/dist/utils/agent-config.d.ts.map +1 -0
  92. package/dist/utils/agent-config.js +118 -0
  93. package/dist/utils/agent-config.js.map +1 -0
  94. package/dist/wrapper/client.d.ts +8 -0
  95. package/dist/wrapper/client.d.ts.map +1 -1
  96. package/dist/wrapper/client.js +26 -0
  97. package/dist/wrapper/client.js.map +1 -1
  98. package/dist/wrapper/parser.d.ts +17 -0
  99. package/dist/wrapper/parser.d.ts.map +1 -1
  100. package/dist/wrapper/parser.js +334 -10
  101. package/dist/wrapper/parser.js.map +1 -1
  102. package/dist/wrapper/tmux-wrapper.d.ts +37 -2
  103. package/dist/wrapper/tmux-wrapper.d.ts.map +1 -1
  104. package/dist/wrapper/tmux-wrapper.js +178 -18
  105. package/dist/wrapper/tmux-wrapper.js.map +1 -1
  106. package/docs/AGENTS.md +105 -0
  107. package/docs/ARCHITECTURE_DECISIONS.md +175 -0
  108. package/docs/COMPETITIVE_ANALYSIS.md +897 -0
  109. package/docs/DESIGN_BRIDGE_STAFFING.md +878 -0
  110. package/docs/MONETIZATION.md +1679 -0
  111. package/docs/agent-relay-snippet.md +61 -0
  112. package/docs/dashboard-v2-plan.md +179 -0
  113. package/package.json +5 -2
@@ -15,8 +15,11 @@ export class Router {
15
15
  agents = new Map(); // agentName -> Connection
16
16
  subscriptions = new Map(); // topic -> Set<agentName>
17
17
  pendingDeliveries = new Map(); // deliverId -> pending
18
+ processingAgents = new Map(); // agentName -> processing state
18
19
  deliveryOptions;
19
20
  registry;
21
+ /** Default timeout for processing indicator (30 seconds) */
22
+ static PROCESSING_TIMEOUT_MS = 30_000;
20
23
  constructor(options = {}) {
21
24
  this.storage = options.storage;
22
25
  this.deliveryOptions = { ...DEFAULT_DELIVERY_OPTIONS, ...options.delivery };
@@ -59,6 +62,8 @@ export class Router {
59
62
  for (const subscribers of this.subscriptions.values()) {
60
63
  subscribers.delete(connection.agentName);
61
64
  }
65
+ // Clear processing state
66
+ this.clearProcessing(connection.agentName);
62
67
  }
63
68
  this.clearPendingForConnection(connection.id);
64
69
  }
@@ -94,10 +99,12 @@ export class Router {
94
99
  console.log(`[router] Dropping message - sender has no name`);
95
100
  return;
96
101
  }
102
+ // Agent is responding - clear their processing state
103
+ this.clearProcessing(senderName);
97
104
  this.registry?.recordSend(senderName);
98
105
  const to = envelope.to;
99
106
  const topic = envelope.topic;
100
- console.log(`[router] ${senderName} -> ${to}: ${envelope.payload.body?.substring(0, 50)}...`);
107
+ console.log(`[router] ${senderName} -> ${to}:${envelope.payload.body?.substring(0, 50)}...`);
101
108
  if (to === '*') {
102
109
  // Broadcast to all (except sender)
103
110
  this.broadcast(senderName, envelope, topic);
@@ -123,6 +130,8 @@ export class Router {
123
130
  if (sent) {
124
131
  this.trackDelivery(target, deliver);
125
132
  this.registry?.recordReceive(to);
133
+ // Mark recipient as processing
134
+ this.setProcessing(to, deliver.id);
126
135
  }
127
136
  return sent;
128
137
  }
@@ -140,10 +149,12 @@ export class Router {
140
149
  if (target) {
141
150
  const deliver = this.createDeliverEnvelope(from, agentName, envelope, target);
142
151
  const sent = target.send(deliver);
143
- this.persistDeliverEnvelope(deliver);
152
+ this.persistDeliverEnvelope(deliver, true); // Mark as broadcast
144
153
  if (sent) {
145
154
  this.trackDelivery(target, deliver);
146
155
  this.registry?.recordReceive(agentName);
156
+ // Mark recipient as processing
157
+ this.setProcessing(agentName, deliver.id);
147
158
  }
148
159
  }
149
160
  }
@@ -171,7 +182,7 @@ export class Router {
171
182
  /**
172
183
  * Persist a delivered message if storage is configured.
173
184
  */
174
- persistDeliverEnvelope(envelope) {
185
+ persistDeliverEnvelope(envelope, isBroadcast = false) {
175
186
  if (!this.storage)
176
187
  return;
177
188
  this.storage.saveMessage({
@@ -183,11 +194,14 @@ export class Router {
183
194
  kind: envelope.payload.kind,
184
195
  body: envelope.payload.body,
185
196
  data: envelope.payload.data,
197
+ payloadMeta: envelope.payload_meta,
198
+ thread: envelope.payload.thread,
186
199
  deliverySeq: envelope.delivery.seq,
187
200
  deliverySessionId: envelope.delivery.session_id,
188
201
  sessionId: envelope.delivery.session_id,
189
202
  status: 'unread',
190
203
  is_urgent: false,
204
+ is_broadcast: isBroadcast || envelope.to === '*',
191
205
  }).catch((err) => {
192
206
  console.error('[router] Failed to persist message', err);
193
207
  });
@@ -213,6 +227,53 @@ export class Router {
213
227
  get pendingDeliveryCount() {
214
228
  return this.pendingDeliveries.size;
215
229
  }
230
+ /**
231
+ * Get list of agents currently processing (thinking).
232
+ * Returns an object with agent names as keys and processing info as values.
233
+ */
234
+ getProcessingAgents() {
235
+ const result = {};
236
+ for (const [name, state] of this.processingAgents.entries()) {
237
+ result[name] = { startedAt: state.startedAt, messageId: state.messageId };
238
+ }
239
+ return result;
240
+ }
241
+ /**
242
+ * Check if a specific agent is processing.
243
+ */
244
+ isAgentProcessing(agentName) {
245
+ return this.processingAgents.has(agentName);
246
+ }
247
+ /**
248
+ * Mark an agent as processing (called when they receive a message).
249
+ */
250
+ setProcessing(agentName, messageId) {
251
+ // Clear any existing processing state
252
+ this.clearProcessing(agentName);
253
+ const timer = setTimeout(() => {
254
+ this.clearProcessing(agentName);
255
+ console.log(`[router] Processing timeout for ${agentName}`);
256
+ }, Router.PROCESSING_TIMEOUT_MS);
257
+ this.processingAgents.set(agentName, {
258
+ startedAt: Date.now(),
259
+ messageId,
260
+ timer,
261
+ });
262
+ console.log(`[router] ${agentName} started processing (message: ${messageId})`);
263
+ }
264
+ /**
265
+ * Clear processing state for an agent (called when they send a message).
266
+ */
267
+ clearProcessing(agentName) {
268
+ const state = this.processingAgents.get(agentName);
269
+ if (state) {
270
+ if (state.timer) {
271
+ clearTimeout(state.timer);
272
+ }
273
+ this.processingAgents.delete(agentName);
274
+ console.log(`[router] ${agentName} finished processing`);
275
+ }
276
+ }
216
277
  /**
217
278
  * Handle ACK for previously delivered messages.
218
279
  */
@@ -228,6 +289,12 @@ export class Router {
228
289
  clearTimeout(pending.timer);
229
290
  }
230
291
  this.pendingDeliveries.delete(ackId);
292
+ const statusUpdate = this.storage?.updateMessageStatus?.(ackId, 'acked');
293
+ if (statusUpdate instanceof Promise) {
294
+ statusUpdate.catch(err => {
295
+ console.error('[router] Failed to record ACK status', err);
296
+ });
297
+ }
231
298
  console.log(`[router] ACK received for ${ackId}`);
232
299
  }
233
300
  /**
@@ -289,5 +356,43 @@ export class Router {
289
356
  pending.timer = this.scheduleRetry(deliverId);
290
357
  }, this.deliveryOptions.ackTimeoutMs);
291
358
  }
359
+ /**
360
+ * Replay any pending (unacked) messages for a resumed session.
361
+ */
362
+ async replayPending(connection) {
363
+ if (!this.storage?.getPendingMessagesForSession || !connection.agentName) {
364
+ return;
365
+ }
366
+ const pending = await this.storage.getPendingMessagesForSession(connection.agentName, connection.sessionId);
367
+ if (!pending.length)
368
+ return;
369
+ console.log(`[router] Replaying ${pending.length} messages to ${connection.agentName}`);
370
+ for (const msg of pending) {
371
+ const deliver = {
372
+ v: PROTOCOL_VERSION,
373
+ type: 'DELIVER',
374
+ id: msg.id,
375
+ ts: msg.ts,
376
+ from: msg.from,
377
+ to: msg.to,
378
+ topic: msg.topic,
379
+ payload: {
380
+ kind: msg.kind,
381
+ body: msg.body,
382
+ data: msg.data,
383
+ thread: msg.thread,
384
+ },
385
+ payload_meta: msg.payloadMeta,
386
+ delivery: {
387
+ seq: msg.deliverySeq ?? connection.getNextSeq(msg.topic ?? 'default', msg.from),
388
+ session_id: msg.deliverySessionId ?? connection.sessionId,
389
+ },
390
+ };
391
+ const sent = connection.send(deliver);
392
+ if (sent) {
393
+ this.trackDelivery(connection, deliver);
394
+ }
395
+ }
396
+ }
292
397
  }
293
398
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/daemon/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/daemon/router.ts"],"names":[],"mappings":"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"}
@@ -25,11 +25,19 @@ export declare class Daemon {
25
25
  private storage?;
26
26
  private storageInitialized;
27
27
  private registry?;
28
+ private processingStateInterval?;
29
+ /** Interval for writing processing state file (500ms for responsive UI) */
30
+ private static readonly PROCESSING_STATE_INTERVAL_MS;
28
31
  constructor(config?: Partial<DaemonConfig>);
29
32
  /**
30
33
  * Write current agents to agents.json for dashboard consumption.
31
34
  */
32
35
  private writeAgentsFile;
36
+ /**
37
+ * Write processing state to processing-state.json for dashboard consumption.
38
+ * This file contains agents currently processing/thinking after receiving a message.
39
+ */
40
+ private writeProcessingStateFile;
33
41
  /**
34
42
  * Initialize storage adapter (called during start).
35
43
  */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAc,KAAK,gBAAgB,EAAkB,MAAM,iBAAiB,CAAC;AAGpF,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtG,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAgB;gBAErB,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAgB9C;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;YACW,WAAW;IAiBzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAsFxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAc,KAAK,gBAAgB,EAAkB,MAAM,iBAAiB,CAAC;AAGpF,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAKtG,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,eAAO,MAAM,qBAAqB,EAAE,YAInC,CAAC;AAEF,qBAAa,MAAM;IACjB,OAAO,CAAC,MAAM,CAAa;IAC3B,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAA8B;IACjD,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAgB;IACjC,OAAO,CAAC,uBAAuB,CAAC,CAAiB;IAEjD,2EAA2E;IAC3E,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,4BAA4B,CAAO;gBAE/C,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM;IAgB9C;;OAEG;IACH,OAAO,CAAC,eAAe;IAiBvB;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAahC;;OAEG;YACW,WAAW;IAiBzB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA0C5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqC3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAgIxB;;OAEG;IACH,OAAO,CAAC,aAAa;IAoBrB;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,IAAI,eAAe,IAAI,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;CACF"}
@@ -26,6 +26,9 @@ export class Daemon {
26
26
  storage;
27
27
  storageInitialized = false;
28
28
  registry;
29
+ processingStateInterval;
30
+ /** Interval for writing processing state file (500ms for responsive UI) */
31
+ static PROCESSING_STATE_INTERVAL_MS = 500;
29
32
  constructor(config = {}) {
30
33
  this.config = { ...DEFAULT_DAEMON_CONFIG, ...config };
31
34
  if (config.socketPath && !config.pidFilePath) {
@@ -50,12 +53,35 @@ export class Daemon {
50
53
  // The registry persists on every update; this is a no-op helper for symmetry.
51
54
  const agents = this.registry.getAgents();
52
55
  try {
53
- fs.writeFileSync(path.join(this.config.teamDir ?? path.dirname(this.config.socketPath), 'agents.json'), JSON.stringify({ agents }, null, 2), 'utf-8');
56
+ const targetPath = path.join(this.config.teamDir ?? path.dirname(this.config.socketPath), 'agents.json');
57
+ const data = JSON.stringify({ agents }, null, 2);
58
+ // Write atomically: write to temp file first, then rename
59
+ // This prevents race conditions where readers see partial/empty data
60
+ const tempPath = `${targetPath}.tmp`;
61
+ fs.writeFileSync(tempPath, data, 'utf-8');
62
+ fs.renameSync(tempPath, targetPath);
54
63
  }
55
64
  catch (err) {
56
65
  console.error('[daemon] Failed to write agents.json:', err);
57
66
  }
58
67
  }
68
+ /**
69
+ * Write processing state to processing-state.json for dashboard consumption.
70
+ * This file contains agents currently processing/thinking after receiving a message.
71
+ */
72
+ writeProcessingStateFile() {
73
+ try {
74
+ const processingAgents = this.router.getProcessingAgents();
75
+ const targetPath = path.join(this.config.teamDir ?? path.dirname(this.config.socketPath), 'processing-state.json');
76
+ const data = JSON.stringify({ processingAgents, updatedAt: Date.now() }, null, 2);
77
+ const tempPath = `${targetPath}.tmp`;
78
+ fs.writeFileSync(tempPath, data, 'utf-8');
79
+ fs.renameSync(tempPath, targetPath);
80
+ }
81
+ catch (err) {
82
+ console.error('[daemon] Failed to write processing-state.json:', err);
83
+ }
84
+ }
59
85
  /**
60
86
  * Initialize storage adapter (called during start).
61
87
  */
@@ -103,6 +129,10 @@ export class Daemon {
103
129
  // Set restrictive permissions
104
130
  fs.chmodSync(this.config.socketPath, 0o600);
105
131
  fs.writeFileSync(this.config.pidFilePath, `${process.pid}\n`, 'utf-8');
132
+ // Start periodic processing state updates for dashboard
133
+ this.processingStateInterval = setInterval(() => {
134
+ this.writeProcessingStateFile();
135
+ }, Daemon.PROCESSING_STATE_INTERVAL_MS);
106
136
  console.log(`[daemon] Listening on ${this.config.socketPath}`);
107
137
  resolve();
108
138
  });
@@ -114,6 +144,11 @@ export class Daemon {
114
144
  async stop() {
115
145
  if (!this.running)
116
146
  return;
147
+ // Stop processing state updates
148
+ if (this.processingStateInterval) {
149
+ clearInterval(this.processingStateInterval);
150
+ this.processingStateInterval = undefined;
151
+ }
117
152
  // Close all active connections
118
153
  for (const connection of this.connections) {
119
154
  connection.close();
@@ -145,7 +180,28 @@ export class Daemon {
145
180
  */
146
181
  handleConnection(socket) {
147
182
  console.log('[daemon] New connection');
148
- const connection = new Connection(socket, this.config);
183
+ const resumeHandler = this.storage?.getSessionByResumeToken
184
+ ? async ({ agent, resumeToken }) => {
185
+ const session = await this.storage.getSessionByResumeToken(resumeToken);
186
+ if (!session || session.agentName !== agent)
187
+ return null;
188
+ let seedSequences;
189
+ if (this.storage?.getMaxSeqByStream) {
190
+ const streams = await this.storage.getMaxSeqByStream(agent, session.id);
191
+ seedSequences = streams.map(s => ({
192
+ topic: s.topic ?? 'default',
193
+ peer: s.peer,
194
+ seq: s.maxSeq,
195
+ }));
196
+ }
197
+ return {
198
+ sessionId: session.id,
199
+ resumeToken: session.resumeToken ?? resumeToken,
200
+ seedSequences,
201
+ };
202
+ }
203
+ : undefined;
204
+ const connection = new Connection(socket, { ...this.config, resumeHandler });
149
205
  this.connections.add(connection);
150
206
  connection.onMessage = (envelope) => {
151
207
  this.handleMessage(connection, envelope);
@@ -164,39 +220,55 @@ export class Daemon {
164
220
  if (connection.agentName) {
165
221
  this.router.register(connection);
166
222
  console.log(`[daemon] Agent registered: ${connection.agentName}`);
167
- if (connection.agentName) {
168
- this.registry?.registerOrUpdate({
169
- name: connection.agentName,
170
- cli: connection.cli,
171
- program: connection.program,
172
- model: connection.model,
173
- task: connection.task,
174
- workingDirectory: connection.workingDirectory,
175
- });
176
- this.writeAgentsFile();
177
- }
223
+ // Registry handles persistence internally via save()
224
+ this.registry?.registerOrUpdate({
225
+ name: connection.agentName,
226
+ cli: connection.cli,
227
+ program: connection.program,
228
+ model: connection.model,
229
+ task: connection.task,
230
+ workingDirectory: connection.workingDirectory,
231
+ });
178
232
  // Record session start
179
233
  if (this.storage instanceof SqliteStorageAdapter) {
180
234
  const projectPaths = getProjectPaths();
181
- this.storage.startSession({
182
- id: connection.sessionId,
183
- agentName: connection.agentName,
184
- cli: connection.cli,
185
- projectId: projectPaths.projectId,
186
- projectRoot: projectPaths.projectRoot,
187
- startedAt: Date.now(),
188
- }).catch(err => console.error('[daemon] Failed to record session start:', err));
235
+ const storage = this.storage;
236
+ const persistSession = async () => {
237
+ let startedAt = Date.now();
238
+ if (connection.isResumed && storage.getSessionByResumeToken) {
239
+ const existing = await storage.getSessionByResumeToken(connection.resumeToken);
240
+ if (existing?.startedAt) {
241
+ startedAt = existing.startedAt;
242
+ }
243
+ }
244
+ await storage.startSession({
245
+ id: connection.sessionId,
246
+ agentName: connection.agentName,
247
+ cli: connection.cli,
248
+ projectId: projectPaths.projectId,
249
+ projectRoot: projectPaths.projectRoot,
250
+ startedAt,
251
+ resumeToken: connection.resumeToken,
252
+ });
253
+ };
254
+ persistSession().catch(err => console.error('[daemon] Failed to record session start:', err));
189
255
  }
190
256
  }
257
+ // Replay pending deliveries for resumed sessions
258
+ if (connection.isResumed) {
259
+ this.router.replayPending(connection).catch(err => {
260
+ console.error('[daemon] Failed to replay pending messages', err);
261
+ });
262
+ }
191
263
  };
192
264
  connection.onClose = () => {
193
265
  console.log(`[daemon] Connection closed: ${connection.agentName ?? connection.id}`);
194
266
  this.connections.delete(connection);
195
267
  this.router.unregister(connection);
268
+ // Registry handles persistence internally via touch() -> save()
196
269
  if (connection.agentName) {
197
270
  this.registry?.touch(connection.agentName);
198
271
  }
199
- this.writeAgentsFile();
200
272
  // Record session end (disconnect - agent may still mark it closed explicitly)
201
273
  if (this.storage instanceof SqliteStorageAdapter) {
202
274
  this.storage.endSession(connection.sessionId, { closedBy: 'disconnect' })
@@ -207,10 +279,10 @@ export class Daemon {
207
279
  console.error(`[daemon] Connection error: ${error.message}`);
208
280
  this.connections.delete(connection);
209
281
  this.router.unregister(connection);
282
+ // Registry handles persistence internally via touch() -> save()
210
283
  if (connection.agentName) {
211
284
  this.registry?.touch(connection.agentName);
212
285
  }
213
- this.writeAgentsFile();
214
286
  // Record session end on error
215
287
  if (this.storage instanceof SqliteStorageAdapter) {
216
288
  this.storage.endSession(connection.sessionId, { closedBy: 'error' })
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAyB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAA2C,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAapD,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,GAAG,cAAc;IACjB,UAAU,EAAE,mBAAmB;IAC/B,WAAW,EAAE,GAAG,mBAAmB,MAAM;CAC1C,CAAC;AAEF,MAAM,OAAO,MAAM;IACT,MAAM,CAAa;IACnB,MAAM,CAAU;IAChB,MAAM,CAAe;IACrB,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAoB,IAAI,GAAG,EAAE,CAAC;IACzC,OAAO,CAAkB;IACzB,kBAAkB,GAAG,KAAK,CAAC;IAC3B,QAAQ,CAAiB;IAEjC,YAAY,SAAgC,EAAE;QAC5C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,MAAM,CAAC,UAAU,MAAM,CAAC;QACvD,CAAC;QACD,8CAA8C;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,iFAAiF;QACjF,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,8EAA8E;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,EACrF,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EACnC,OAAO,CACR,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,kCAAkC;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;gBACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,qBAAqB;QACrB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzB,yDAAyD;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAC7D,CAAC;YACJ,CAAC;YACD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,0BAA0B;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,8BAA8B;gBAC9B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC5C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;gBACvE,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,+BAA+B;QAC/B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,uBAAuB;gBACvB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACxC,CAAC;gBACD,oBAAoB;gBACpB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACjC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAkB;QACzC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAEvC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEjC,UAAU,CAAC,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5C,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,UAAU,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,qEAAqE;QACrE,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE;YACvB,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QAEF,6EAA6E;QAC7E,UAAU,CAAC,QAAQ,GAAG,GAAG,EAAE;YACvB,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClE,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;oBACzB,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;wBAC9B,IAAI,EAAE,UAAU,CAAC,SAAS;wBAC1B,GAAG,EAAE,UAAU,CAAC,GAAG;wBACnB,OAAO,EAAE,UAAU,CAAC,OAAO;wBAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;wBACvB,IAAI,EAAE,UAAU,CAAC,IAAI;wBACrB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;qBAC9C,CAAC,CAAC;oBACH,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,CAAC;gBAEH,uBAAuB;gBACvB,IAAI,IAAI,CAAC,OAAO,YAAY,oBAAoB,EAAE,CAAC;oBACjD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;oBACvC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;wBACxB,EAAE,EAAE,UAAU,CAAC,SAAS;wBACxB,SAAS,EAAE,UAAU,CAAC,SAAS;wBAC/B,GAAG,EAAE,UAAU,CAAC,GAAG;wBACnB,SAAS,EAAE,YAAY,CAAC,SAAS;wBACjC,WAAW,EAAE,YAAY,CAAC,WAAW;wBACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;qBACtB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC,CAAC;gBAClF,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,8EAA8E;YAC9E,IAAI,IAAI,CAAC,OAAO,YAAY,oBAAoB,EAAE,CAAC;gBACjD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;qBACtE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YACpC,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;YACD,IAAI,CAAC,eAAe,EAAE,CAAC;YAEvB,8BAA8B;YAC9B,IAAI,IAAI,CAAC,OAAO,YAAY,oBAAoB,EAAE,CAAC;gBACjD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;qBACjE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,UAAsB,EAAE,QAAkB;QAC9D,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAiC,CAAC,CAAC;gBACjE,MAAM;YAER,KAAK,WAAW;gBACd,IAAI,UAAU,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM;YAER,KAAK,aAAa;gBAChB,IAAI,UAAU,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;CACF;AAED,yCAAyC;AACzC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,IAAI,YAAY,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/daemon/server.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,GAAG,MAAM,UAAU,CAAC;AAC3B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAyB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAA2C,MAAM,uBAAuB,CAAC;AACtG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAapD,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,GAAG,cAAc;IACjB,UAAU,EAAE,mBAAmB;IAC/B,WAAW,EAAE,GAAG,mBAAmB,MAAM;CAC1C,CAAC;AAEF,MAAM,OAAO,MAAM;IACT,MAAM,CAAa;IACnB,MAAM,CAAU;IAChB,MAAM,CAAe;IACrB,OAAO,GAAG,KAAK,CAAC;IAChB,WAAW,GAAoB,IAAI,GAAG,EAAE,CAAC;IACzC,OAAO,CAAkB;IACzB,kBAAkB,GAAG,KAAK,CAAC;IAC3B,QAAQ,CAAiB;IACzB,uBAAuB,CAAkB;IAEjD,2EAA2E;IACnE,MAAM,CAAU,4BAA4B,GAAG,GAAG,CAAC;IAE3D,YAAY,SAAgC,EAAE;QAC5C,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,qBAAqB,EAAE,GAAG,MAAM,EAAE,CAAC;QACtD,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,MAAM,CAAC,UAAU,MAAM,CAAC;QACvD,CAAC;QACD,8CAA8C;QAC9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC;QACD,iFAAiF;QACjF,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC3B,8EAA8E;QAC9E,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;YACzG,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACjD,0DAA0D;YAC1D,qEAAqE;YACrE,MAAM,QAAQ,GAAG,GAAG,UAAU,MAAM,CAAC;YACrC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,wBAAwB;QAC9B,IAAI,CAAC;YACH,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,uBAAuB,CAAC,CAAC;YACnH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,gBAAgB,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAClF,MAAM,QAAQ,GAAG,GAAG,UAAU,MAAM,CAAC;YACrC,EAAE,CAAC,aAAa,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,iDAAiD,EAAE,GAAG,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,WAAW;QACvB,IAAI,IAAI,CAAC,kBAAkB;YAAE,OAAO;QAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC/B,kCAAkC;YAClC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC;QAC5C,CAAC;aAAM,CAAC;YACN,qCAAqC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW;gBACzC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,oBAAoB,CAAC,CAAC;YACxE,IAAI,CAAC,OAAO,GAAG,MAAM,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,qBAAqB;QACrB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAEzB,yDAAyD;QACzD,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;gBACrB,MAAM,IAAI,KAAK,CACb,oCAAoC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAC7D,CAAC;YACJ,CAAC;YACD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QAED,0BAA0B;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE;gBAC9C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,8BAA8B;gBAC9B,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC5C,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,GAAG,OAAO,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;gBAEvE,wDAAwD;gBACxD,IAAI,CAAC,uBAAuB,GAAG,WAAW,CAAC,GAAG,EAAE;oBAC9C,IAAI,CAAC,wBAAwB,EAAE,CAAC;gBAClC,CAAC,EAAE,MAAM,CAAC,4BAA4B,CAAC,CAAC;gBAExC,OAAO,CAAC,GAAG,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC/D,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;QAE1B,gCAAgC;QAChC,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;YACjC,aAAa,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;YAC5C,IAAI,CAAC,uBAAuB,GAAG,SAAS,CAAC;QAC3C,CAAC;QAED,+BAA+B;QAC/B,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAC1C,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QAEzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE;gBACrB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;gBACrB,uBAAuB;gBACvB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;oBAC1C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACxC,CAAC;gBACD,oBAAoB;gBACpB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;oBAC3C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACzC,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;oBACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBACjC,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,GAAG,CAAC,CAAC;oBACzD,CAAC,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;gBAChC,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,MAAkB;QACzC,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,EAAE,uBAAuB;YACzD,CAAC,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAA0C,EAAE,EAAE;gBACvE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAQ,CAAC,uBAAwB,CAAC,WAAW,CAAC,CAAC;gBAC1E,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,KAAK;oBAAE,OAAO,IAAI,CAAC;gBAEzD,IAAI,aAA+E,CAAC;gBACpF,IAAI,IAAI,CAAC,OAAO,EAAE,iBAAiB,EAAE,CAAC;oBACpC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;oBACxE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;wBAChC,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,SAAS;wBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;wBACZ,GAAG,EAAE,CAAC,CAAC,MAAM;qBACd,CAAC,CAAC,CAAC;gBACN,CAAC;gBAED,OAAO;oBACL,SAAS,EAAE,OAAO,CAAC,EAAE;oBACrB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,WAAW;oBAC/C,aAAa;iBACd,CAAC;YACJ,CAAC;YACH,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;QAC7E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEjC,UAAU,CAAC,SAAS,GAAG,CAAC,QAAkB,EAAE,EAAE;YAC5C,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEF,UAAU,CAAC,KAAK,GAAG,CAAC,QAAQ,EAAE,EAAE;YAC9B,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC9C,CAAC,CAAC;QAEF,qEAAqE;QACrE,UAAU,CAAC,MAAM,GAAG,GAAG,EAAE;YACvB,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC,CAAC;QAEF,6EAA6E;QAC7E,UAAU,CAAC,QAAQ,GAAG,GAAG,EAAE;YACzB,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,8BAA8B,UAAU,CAAC,SAAS,EAAE,CAAC,CAAC;gBAClE,qDAAqD;gBACrD,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC;oBAC9B,IAAI,EAAE,UAAU,CAAC,SAAS;oBAC1B,GAAG,EAAE,UAAU,CAAC,GAAG;oBACnB,OAAO,EAAE,UAAU,CAAC,OAAO;oBAC3B,KAAK,EAAE,UAAU,CAAC,KAAK;oBACvB,IAAI,EAAE,UAAU,CAAC,IAAI;oBACrB,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;iBAC9C,CAAC,CAAC;gBAEH,uBAAuB;gBACvB,IAAI,IAAI,CAAC,OAAO,YAAY,oBAAoB,EAAE,CAAC;oBACjD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;oBACvC,MAAM,OAAO,GAAG,IAAI,CAAC,OAA+B,CAAC;oBACrD,MAAM,cAAc,GAAG,KAAK,IAAmB,EAAE;wBAC/C,IAAI,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;wBAC3B,IAAI,UAAU,CAAC,SAAS,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;4BAC5D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;4BAC/E,IAAI,QAAQ,EAAE,SAAS,EAAE,CAAC;gCACxB,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;4BACjC,CAAC;wBACH,CAAC;wBAED,MAAM,OAAO,CAAC,YAAY,CAAC;4BACzB,EAAE,EAAE,UAAU,CAAC,SAAS;4BACxB,SAAS,EAAE,UAAU,CAAC,SAAU;4BAChC,GAAG,EAAE,UAAU,CAAC,GAAG;4BACnB,SAAS,EAAE,YAAY,CAAC,SAAS;4BACjC,WAAW,EAAE,YAAY,CAAC,WAAW;4BACrC,SAAS;4BACT,WAAW,EAAE,UAAU,CAAC,WAAW;yBACpC,CAAC,CAAC;oBACL,CAAC,CAAC;oBAEF,cAAc,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,0CAA0C,EAAE,GAAG,CAAC,CAAC,CAAC;gBAChG,CAAC;YACH,CAAC;YAED,iDAAiD;YACjD,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;oBAChD,OAAO,CAAC,KAAK,CAAC,4CAA4C,EAAE,GAAG,CAAC,CAAC;gBACnE,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE;YACxB,OAAO,CAAC,GAAG,CAAC,+BAA+B,UAAU,CAAC,SAAS,IAAI,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;YACpF,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,gEAAgE;YAChE,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;YAED,8EAA8E;YAC9E,IAAI,IAAI,CAAC,OAAO,YAAY,oBAAoB,EAAE,CAAC;gBACjD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;qBACtE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC;QAEF,UAAU,CAAC,OAAO,GAAG,CAAC,KAAY,EAAE,EAAE;YACpC,OAAO,CAAC,KAAK,CAAC,8BAA8B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7D,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;YACnC,gEAAgE;YAChE,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YAC7C,CAAC;YAED,8BAA8B;YAC9B,IAAI,IAAI,CAAC,OAAO,YAAY,oBAAoB,EAAE,CAAC;gBACjD,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;qBACjE,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,wCAAwC,EAAE,GAAG,CAAC,CAAC,CAAC;YAChF,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,UAAsB,EAAE,QAAkB;QAC9D,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtB,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,QAAiC,CAAC,CAAC;gBACjE,MAAM;YAER,KAAK,WAAW;gBACd,IAAI,UAAU,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9D,CAAC;gBACD,MAAM;YAER,KAAK,aAAa;gBAChB,IAAI,UAAU,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAChE,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,IAAI,eAAe;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;;AAGH,yCAAyC;AACzC,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,UAAU,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACrE,IAAI,YAAY,EAAE,CAAC;IACjB,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;IAE5B,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QAC9B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QAC3C,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QAC/B,MAAM,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC3B,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;QAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Metrics collection and computation for the Agent Relay dashboard.
3
+ * Provides real-time metrics for monitoring: throughput, agent health, error rates.
4
+ */
5
+ export interface AgentMetrics {
6
+ name: string;
7
+ messagesSent: number;
8
+ messagesReceived: number;
9
+ firstSeen: string;
10
+ lastSeen: string;
11
+ isOnline: boolean;
12
+ uptimeSeconds: number;
13
+ }
14
+ export interface ThroughputMetrics {
15
+ messagesLastMinute: number;
16
+ messagesLastHour: number;
17
+ messagesLast24Hours: number;
18
+ avgMessagesPerMinute: number;
19
+ }
20
+ export interface SessionMetrics {
21
+ totalSessions: number;
22
+ activeSessions: number;
23
+ closedByAgent: number;
24
+ closedByDisconnect: number;
25
+ closedByError: number;
26
+ errorRate: number;
27
+ recentSessions: Array<{
28
+ id: string;
29
+ agentName: string;
30
+ startedAt: string;
31
+ endedAt?: string;
32
+ closedBy?: 'agent' | 'disconnect' | 'error';
33
+ messageCount: number;
34
+ }>;
35
+ }
36
+ export interface SystemMetrics {
37
+ totalAgents: number;
38
+ onlineAgents: number;
39
+ offlineAgents: number;
40
+ totalMessages: number;
41
+ throughput: ThroughputMetrics;
42
+ sessions: SessionMetrics;
43
+ agents: AgentMetrics[];
44
+ timestamp: string;
45
+ }
46
+ export interface PrometheusMetric {
47
+ name: string;
48
+ help: string;
49
+ type: 'counter' | 'gauge' | 'histogram';
50
+ values: Array<{
51
+ labels: Record<string, string>;
52
+ value: number;
53
+ }>;
54
+ }
55
+ /**
56
+ * Compute agent-level metrics from registry data
57
+ */
58
+ export declare function computeAgentMetrics(agents: Array<{
59
+ name: string;
60
+ messagesSent: number;
61
+ messagesReceived: number;
62
+ firstSeen: string;
63
+ lastSeen: string;
64
+ }>): AgentMetrics[];
65
+ /**
66
+ * Compute throughput metrics from message history
67
+ */
68
+ export declare function computeThroughputMetrics(messages: Array<{
69
+ timestamp: string;
70
+ }>): ThroughputMetrics;
71
+ /**
72
+ * Compute session lifecycle metrics from session history
73
+ */
74
+ export declare function computeSessionMetrics(sessions: Array<{
75
+ id: string;
76
+ agentName: string;
77
+ startedAt: number;
78
+ endedAt?: number;
79
+ closedBy?: 'agent' | 'disconnect' | 'error';
80
+ messageCount: number;
81
+ }>): SessionMetrics;
82
+ /**
83
+ * Compute full system metrics
84
+ */
85
+ export declare function computeSystemMetrics(agents: Array<{
86
+ name: string;
87
+ messagesSent: number;
88
+ messagesReceived: number;
89
+ firstSeen: string;
90
+ lastSeen: string;
91
+ }>, messages: Array<{
92
+ timestamp: string;
93
+ }>, sessions?: Array<{
94
+ id: string;
95
+ agentName: string;
96
+ startedAt: number;
97
+ endedAt?: number;
98
+ closedBy?: 'agent' | 'disconnect' | 'error';
99
+ messageCount: number;
100
+ }>): SystemMetrics;
101
+ /**
102
+ * Format metrics in Prometheus exposition format
103
+ */
104
+ export declare function formatPrometheusMetrics(metrics: SystemMetrics): string;
105
+ //# sourceMappingURL=metrics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/dashboard/metrics.ts"],"names":[],"mappings":"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"}