@agent-relay/dashboard-server 2.0.92 → 2.0.94

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 (205) hide show
  1. package/dist/lib/types.d.ts +3 -2
  2. package/dist/lib/types.d.ts.map +1 -1
  3. package/dist/lib/utils.d.ts +5 -0
  4. package/dist/lib/utils.d.ts.map +1 -1
  5. package/dist/lib/utils.js +16 -0
  6. package/dist/lib/utils.js.map +1 -1
  7. package/dist/proxy-server.d.ts.map +1 -1
  8. package/dist/proxy-server.js +32 -19
  9. package/dist/proxy-server.js.map +1 -1
  10. package/dist/relaycast-provider-helpers.d.ts +6 -0
  11. package/dist/relaycast-provider-helpers.d.ts.map +1 -1
  12. package/dist/relaycast-provider-helpers.js +10 -9
  13. package/dist/relaycast-provider-helpers.js.map +1 -1
  14. package/dist/relaycast-provider.d.ts +3 -7
  15. package/dist/relaycast-provider.d.ts.map +1 -1
  16. package/dist/relaycast-provider.js +5 -28
  17. package/dist/relaycast-provider.js.map +1 -1
  18. package/dist/routes/channels.d.ts.map +1 -1
  19. package/dist/routes/channels.js +7 -8
  20. package/dist/routes/channels.js.map +1 -1
  21. package/dist/routes/health.d.ts.map +1 -1
  22. package/dist/routes/health.js +2 -3
  23. package/dist/routes/health.js.map +1 -1
  24. package/dist/routes/models.d.ts.map +1 -1
  25. package/dist/routes/models.js +39 -3
  26. package/dist/routes/models.js.map +1 -1
  27. package/dist/routes/relay-config.d.ts.map +1 -1
  28. package/dist/routes/relay-config.js +19 -6
  29. package/dist/routes/relay-config.js.map +1 -1
  30. package/dist/routes/thread-replies.d.ts.map +1 -1
  31. package/dist/routes/thread-replies.js +4 -4
  32. package/dist/routes/thread-replies.js.map +1 -1
  33. package/dist/services/index.d.ts +0 -1
  34. package/dist/services/index.d.ts.map +1 -1
  35. package/dist/services/index.js +0 -1
  36. package/dist/services/index.js.map +1 -1
  37. package/dist/types/index.d.ts +0 -75
  38. package/dist/types/index.d.ts.map +1 -1
  39. package/dist/websocket/logs.d.ts +1 -25
  40. package/dist/websocket/logs.d.ts.map +1 -1
  41. package/dist/websocket/logs.js +0 -397
  42. package/dist/websocket/logs.js.map +1 -1
  43. package/out/404.html +1 -1
  44. package/out/_next/static/chunks/{3663-47290254b8f6f5dd.js → 3663-191a9aa9104061af.js} +1 -1
  45. package/out/_next/static/chunks/4201-d11188cf35739bff.js +1 -0
  46. package/out/_next/static/chunks/5787-f6fd7a3fbfe5eae6.js +73 -0
  47. package/out/_next/static/chunks/app/app/[[...slug]]/{page-c1376e695ba19e38.js → page-2b872f60e3d64014.js} +1 -1
  48. package/out/_next/static/chunks/app/{page-f2ebc7d0bc08e395.js → page-ca5511e5d65100a5.js} +1 -1
  49. package/out/about.html +1 -1
  50. package/out/about.txt +1 -1
  51. package/out/app/onboarding.html +1 -1
  52. package/out/app/onboarding.txt +1 -1
  53. package/out/app.html +1 -1
  54. package/out/app.txt +2 -2
  55. package/out/blog/go-to-bed-wake-up-to-a-finished-product.html +1 -1
  56. package/out/blog/go-to-bed-wake-up-to-a-finished-product.txt +1 -1
  57. package/out/blog/let-them-cook-multi-agent-orchestration.html +1 -1
  58. package/out/blog/let-them-cook-multi-agent-orchestration.txt +1 -1
  59. package/out/blog.html +1 -1
  60. package/out/blog.txt +1 -1
  61. package/out/careers.html +1 -1
  62. package/out/careers.txt +1 -1
  63. package/out/changelog.html +1 -1
  64. package/out/changelog.txt +1 -1
  65. package/out/cloud/link.html +1 -1
  66. package/out/cloud/link.txt +1 -1
  67. package/out/complete-profile.html +1 -1
  68. package/out/complete-profile.txt +1 -1
  69. package/out/connect-repos.html +1 -1
  70. package/out/connect-repos.txt +1 -1
  71. package/out/contact.html +1 -1
  72. package/out/contact.txt +1 -1
  73. package/out/dev/cli-tools.html +1 -1
  74. package/out/dev/cli-tools.txt +1 -1
  75. package/out/dev/log-viewer.html +1 -1
  76. package/out/dev/log-viewer.txt +1 -1
  77. package/out/docs.html +1 -1
  78. package/out/docs.txt +1 -1
  79. package/out/history.html +1 -1
  80. package/out/history.txt +2 -2
  81. package/out/index.html +1 -1
  82. package/out/index.txt +2 -2
  83. package/out/login.html +1 -1
  84. package/out/login.txt +1 -1
  85. package/out/metrics.html +1 -1
  86. package/out/metrics.txt +2 -2
  87. package/out/pricing.html +1 -1
  88. package/out/pricing.txt +1 -1
  89. package/out/privacy.html +1 -1
  90. package/out/privacy.txt +1 -1
  91. package/out/providers/setup/claude.html +1 -1
  92. package/out/providers/setup/claude.txt +1 -1
  93. package/out/providers/setup/codex.html +1 -1
  94. package/out/providers/setup/codex.txt +1 -1
  95. package/out/providers/setup/cursor.html +1 -1
  96. package/out/providers/setup/cursor.txt +1 -1
  97. package/out/providers.html +1 -1
  98. package/out/providers.txt +1 -1
  99. package/out/security.html +1 -1
  100. package/out/security.txt +1 -1
  101. package/out/signup.html +1 -1
  102. package/out/signup.txt +1 -1
  103. package/out/terms.html +1 -1
  104. package/out/terms.txt +1 -1
  105. package/package.json +6 -9
  106. package/dist/lib/attachment-storage.d.ts +0 -10
  107. package/dist/lib/attachment-storage.d.ts.map +0 -1
  108. package/dist/lib/attachment-storage.js +0 -53
  109. package/dist/lib/attachment-storage.js.map +0 -1
  110. package/dist/lib/broadcast.d.ts +0 -18
  111. package/dist/lib/broadcast.d.ts.map +0 -1
  112. package/dist/lib/broadcast.js +0 -118
  113. package/dist/lib/broadcast.js.map +0 -1
  114. package/dist/lib/channel-state.d.ts +0 -32
  115. package/dist/lib/channel-state.d.ts.map +0 -1
  116. package/dist/lib/channel-state.js +0 -146
  117. package/dist/lib/channel-state.js.map +0 -1
  118. package/dist/lib/cli-auth.d.ts +0 -40
  119. package/dist/lib/cli-auth.d.ts.map +0 -1
  120. package/dist/lib/cli-auth.js +0 -144
  121. package/dist/lib/cli-auth.js.map +0 -1
  122. package/dist/lib/data-assembly.d.ts +0 -136
  123. package/dist/lib/data-assembly.d.ts.map +0 -1
  124. package/dist/lib/data-assembly.js +0 -550
  125. package/dist/lib/data-assembly.js.map +0 -1
  126. package/dist/lib/server-state.d.ts +0 -115
  127. package/dist/lib/server-state.d.ts.map +0 -1
  128. package/dist/lib/server-state.js +0 -138
  129. package/dist/lib/server-state.js.map +0 -1
  130. package/dist/lib/websocket-runtime.d.ts +0 -17
  131. package/dist/lib/websocket-runtime.d.ts.map +0 -1
  132. package/dist/lib/websocket-runtime.js +0 -76
  133. package/dist/lib/websocket-runtime.js.map +0 -1
  134. package/dist/routes/auth.d.ts +0 -45
  135. package/dist/routes/auth.d.ts.map +0 -1
  136. package/dist/routes/auth.js +0 -261
  137. package/dist/routes/auth.js.map +0 -1
  138. package/dist/routes/channels-integrated.d.ts +0 -84
  139. package/dist/routes/channels-integrated.d.ts.map +0 -1
  140. package/dist/routes/channels-integrated.js +0 -644
  141. package/dist/routes/channels-integrated.js.map +0 -1
  142. package/dist/routes/decisions.d.ts +0 -31
  143. package/dist/routes/decisions.d.ts.map +0 -1
  144. package/dist/routes/decisions.js +0 -109
  145. package/dist/routes/decisions.js.map +0 -1
  146. package/dist/routes/fleet.d.ts +0 -24
  147. package/dist/routes/fleet.d.ts.map +0 -1
  148. package/dist/routes/fleet.js +0 -131
  149. package/dist/routes/fleet.js.map +0 -1
  150. package/dist/routes/history.d.ts +0 -13
  151. package/dist/routes/history.d.ts.map +0 -1
  152. package/dist/routes/history.js +0 -205
  153. package/dist/routes/history.js.map +0 -1
  154. package/dist/routes/messaging.d.ts +0 -34
  155. package/dist/routes/messaging.d.ts.map +0 -1
  156. package/dist/routes/messaging.js +0 -306
  157. package/dist/routes/messaging.js.map +0 -1
  158. package/dist/routes/settings.d.ts +0 -6
  159. package/dist/routes/settings.d.ts.map +0 -1
  160. package/dist/routes/settings.js +0 -119
  161. package/dist/routes/settings.js.map +0 -1
  162. package/dist/routes/spawn.d.ts +0 -75
  163. package/dist/routes/spawn.d.ts.map +0 -1
  164. package/dist/routes/spawn.js +0 -521
  165. package/dist/routes/spawn.js.map +0 -1
  166. package/dist/routes/system.d.ts +0 -21
  167. package/dist/routes/system.d.ts.map +0 -1
  168. package/dist/routes/system.js +0 -186
  169. package/dist/routes/system.js.map +0 -1
  170. package/dist/routes/tasks.d.ts +0 -27
  171. package/dist/routes/tasks.d.ts.map +0 -1
  172. package/dist/routes/tasks.js +0 -103
  173. package/dist/routes/tasks.js.map +0 -1
  174. package/dist/routes/ui.d.ts +0 -6
  175. package/dist/routes/ui.d.ts.map +0 -1
  176. package/dist/routes/ui.js +0 -114
  177. package/dist/routes/ui.js.map +0 -1
  178. package/dist/server.d.ts +0 -4
  179. package/dist/server.d.ts.map +0 -1
  180. package/dist/server.js +0 -481
  181. package/dist/server.js.map +0 -1
  182. package/dist/services/broker-spawn-reader.d.ts +0 -40
  183. package/dist/services/broker-spawn-reader.d.ts.map +0 -1
  184. package/dist/services/broker-spawn-reader.js +0 -155
  185. package/dist/services/broker-spawn-reader.js.map +0 -1
  186. package/dist/services/user-bridge.d.ts +0 -155
  187. package/dist/services/user-bridge.d.ts.map +0 -1
  188. package/dist/services/user-bridge.js +0 -385
  189. package/dist/services/user-bridge.js.map +0 -1
  190. package/dist/websocket/bridge.d.ts +0 -12
  191. package/dist/websocket/bridge.d.ts.map +0 -1
  192. package/dist/websocket/bridge.js +0 -33
  193. package/dist/websocket/bridge.js.map +0 -1
  194. package/dist/websocket/main.d.ts +0 -15
  195. package/dist/websocket/main.d.ts.map +0 -1
  196. package/dist/websocket/main.js +0 -84
  197. package/dist/websocket/main.js.map +0 -1
  198. package/dist/websocket/presence.d.ts +0 -74
  199. package/dist/websocket/presence.d.ts.map +0 -1
  200. package/dist/websocket/presence.js +0 -330
  201. package/dist/websocket/presence.js.map +0 -1
  202. package/out/_next/static/chunks/270-8c0b8109123a0c5f.js +0 -73
  203. package/out/_next/static/chunks/5518-6d77237eefc8d5ae.js +0 -1
  204. /package/out/_next/static/{5cqIVzlh9DbJT28EbNrcC → wgSCX8AQnjVl_Rnx1gUp5}/_buildManifest.js +0 -0
  205. /package/out/_next/static/{5cqIVzlh9DbJT28EbNrcC → wgSCX8AQnjVl_Rnx1gUp5}/_ssgManifest.js +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"channels-integrated.js","sourceRoot":"","sources":["../../src/routes/channels-integrated.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import type { Application } from 'express';
2
- export interface Decision {
3
- id: string;
4
- agentName: string;
5
- title: string;
6
- description: string;
7
- options?: {
8
- id: string;
9
- label: string;
10
- description?: string;
11
- }[];
12
- urgency: 'low' | 'medium' | 'high' | 'critical';
13
- category: 'approval' | 'choice' | 'input' | 'confirmation';
14
- createdAt: string;
15
- expiresAt?: string;
16
- context?: Record<string, unknown>;
17
- }
18
- interface RelayClientLike {
19
- sendMessage: (to: string, body: string, kind?: string, data?: unknown, thread?: string) => boolean;
20
- }
21
- export interface DecisionsRouteDeps {
22
- decisions: Map<string, Decision>;
23
- getRelayClient: (senderName?: string, entityType?: 'agent' | 'user') => Promise<RelayClientLike>;
24
- broadcastData: () => Promise<void>;
25
- }
26
- /**
27
- * Human decision queue routes.
28
- */
29
- export declare function registerDecisionsRoutes(app: Application, deps: DecisionsRouteDeps): void;
30
- export {};
31
- //# sourceMappingURL=decisions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decisions.d.ts","sourceRoot":"","sources":["../../src/routes/decisions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAChE,OAAO,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAChD,QAAQ,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,GAAG,cAAc,CAAC;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,UAAU,eAAe;IACvB,WAAW,EAAE,CACX,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,OAAO,EACd,MAAM,CAAC,EAAE,MAAM,KACZ,OAAO,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,cAAc,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,KAAK,OAAO,CAAC,eAAe,CAAC,CAAC;IACjG,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAwHxF"}
@@ -1,109 +0,0 @@
1
- /**
2
- * Human decision queue routes.
3
- */
4
- export function registerDecisionsRoutes(app, deps) {
5
- const { decisions, getRelayClient, broadcastData } = deps;
6
- // GET /api/decisions - List all pending decisions.
7
- app.get('/api/decisions', (_req, res) => {
8
- const allDecisions = Array.from(decisions.values())
9
- .sort((a, b) => {
10
- const urgencyOrder = { critical: 0, high: 1, medium: 2, low: 3 };
11
- return urgencyOrder[a.urgency] - urgencyOrder[b.urgency];
12
- });
13
- return res.json({ success: true, decisions: allDecisions });
14
- });
15
- // POST /api/decisions - Create a new decision request.
16
- app.post('/api/decisions', (req, res) => {
17
- const { agentName, title, description, options, urgency, category, expiresAt, context } = req.body;
18
- if (!agentName || !title || !urgency || !category) {
19
- return res.status(400).json({
20
- success: false,
21
- error: 'Missing required fields: agentName, title, urgency, category',
22
- });
23
- }
24
- const decision = {
25
- id: `decision-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`,
26
- agentName,
27
- title,
28
- description: description || '',
29
- options,
30
- urgency,
31
- category,
32
- createdAt: new Date().toISOString(),
33
- expiresAt,
34
- context,
35
- };
36
- decisions.set(decision.id, decision);
37
- broadcastData().catch(() => { });
38
- return res.json({ success: true, decision });
39
- });
40
- // POST /api/decisions/:id/approve - Approve/resolve a decision.
41
- app.post('/api/decisions/:id/approve', async (req, res) => {
42
- const { id } = req.params;
43
- const { optionId, response } = req.body;
44
- const decision = decisions.get(id);
45
- if (!decision) {
46
- return res.status(404).json({ success: false, error: 'Decision not found' });
47
- }
48
- const agentName = decision.agentName;
49
- let responseMessage = `DECISION APPROVED: ${decision.title}`;
50
- if (optionId && decision.options) {
51
- const option = decision.options.find((o) => o.id === optionId);
52
- if (option) {
53
- responseMessage += `\nSelected: ${option.label}`;
54
- }
55
- }
56
- if (response) {
57
- responseMessage += `\nResponse: ${response}`;
58
- }
59
- try {
60
- const client = await getRelayClient('Dashboard');
61
- if (client) {
62
- await client.sendMessage(agentName, responseMessage, 'message');
63
- }
64
- }
65
- catch (err) {
66
- console.warn('[api] Could not send decision response to agent:', err);
67
- }
68
- decisions.delete(id);
69
- broadcastData().catch(() => { });
70
- return res.json({ success: true, message: 'Decision approved' });
71
- });
72
- // POST /api/decisions/:id/reject - Reject a decision.
73
- app.post('/api/decisions/:id/reject', async (req, res) => {
74
- const { id } = req.params;
75
- const { reason } = req.body;
76
- const decision = decisions.get(id);
77
- if (!decision) {
78
- return res.status(404).json({ success: false, error: 'Decision not found' });
79
- }
80
- const agentName = decision.agentName;
81
- let responseMessage = `DECISION REJECTED: ${decision.title}`;
82
- if (reason) {
83
- responseMessage += `\nReason: ${reason}`;
84
- }
85
- try {
86
- const client = await getRelayClient('Dashboard');
87
- if (client) {
88
- await client.sendMessage(agentName, responseMessage, 'message');
89
- }
90
- }
91
- catch (err) {
92
- console.warn('[api] Could not send decision rejection to agent:', err);
93
- }
94
- decisions.delete(id);
95
- broadcastData().catch(() => { });
96
- return res.json({ success: true, message: 'Decision rejected' });
97
- });
98
- // DELETE /api/decisions/:id - Delete/dismiss a decision.
99
- app.delete('/api/decisions/:id', (_req, res) => {
100
- const { id } = _req.params;
101
- if (!decisions.has(id)) {
102
- return res.status(404).json({ success: false, error: 'Decision not found' });
103
- }
104
- decisions.delete(id);
105
- broadcastData().catch(() => { });
106
- return res.json({ success: true, message: 'Decision dismissed' });
107
- });
108
- }
109
- //# sourceMappingURL=decisions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decisions.js","sourceRoot":"","sources":["../../src/routes/decisions.ts"],"names":[],"mappings":"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"}
@@ -1,24 +0,0 @@
1
- import type { Application } from 'express';
2
- import type { WebSocketServer } from 'ws';
3
- import type { Decision } from './decisions.js';
4
- import type { TaskAssignment } from './tasks.js';
5
- interface ActiveWorkerLike {
6
- name: string;
7
- status?: string;
8
- }
9
- interface SpawnReaderLike {
10
- getActiveWorkers(): ActiveWorkerLike[];
11
- }
12
- export interface FleetRouteDeps {
13
- dataDir: string;
14
- spawnReader?: SpawnReaderLike;
15
- wss: WebSocketServer;
16
- decisions: Map<string, Decision>;
17
- tasks: Map<string, TaskAssignment>;
18
- }
19
- /**
20
- * Fleet overview and aggregate stats routes.
21
- */
22
- export declare function registerFleetRoutes(app: Application, deps: FleetRouteDeps): void;
23
- export {};
24
- //# sourceMappingURL=fleet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fleet.d.ts","sourceRoot":"","sources":["../../src/routes/fleet.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAC1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,UAAU,gBAAgB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,eAAe;IACvB,gBAAgB,IAAI,gBAAgB,EAAE,CAAC;CACxC;AAcD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,GAAG,EAAE,eAAe,CAAC;IACrB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACjC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;CACpC;AAqBD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAiHhF"}
@@ -1,131 +0,0 @@
1
- import crypto from 'crypto';
2
- import fs from 'fs';
3
- import path from 'path';
4
- async function loadAgentStatuses(dataDir) {
5
- const agentsFile = path.join(dataDir, 'agents.json');
6
- try {
7
- if (fs.existsSync(agentsFile)) {
8
- const data = JSON.parse(fs.readFileSync(agentsFile, 'utf-8'));
9
- const result = {};
10
- for (const agent of data.agents || []) {
11
- if (agent && typeof agent.name === 'string') {
12
- result[agent.name] = { status: agent.status || 'offline' };
13
- }
14
- }
15
- return result;
16
- }
17
- }
18
- catch (err) {
19
- console.warn('[api] Failed to load agent statuses:', err);
20
- }
21
- return {};
22
- }
23
- /**
24
- * Fleet overview and aggregate stats routes.
25
- */
26
- export function registerFleetRoutes(app, deps) {
27
- const { dataDir, spawnReader, wss, decisions, tasks } = deps;
28
- // GET /api/fleet/servers - Get fleet server overview.
29
- app.get('/api/fleet/servers', async (_req, res) => {
30
- const servers = [];
31
- const localAgents = spawnReader?.getActiveWorkers() || [];
32
- const agentStatuses = await loadAgentStatuses(dataDir);
33
- let hasBridgeProjects = false;
34
- const bridgeStatePath = path.join(dataDir, 'bridge-state.json');
35
- if (fs.existsSync(bridgeStatePath)) {
36
- try {
37
- const bridgeState = JSON.parse(fs.readFileSync(bridgeStatePath, 'utf-8'));
38
- if (bridgeState.projects && bridgeState.projects.length > 0) {
39
- hasBridgeProjects = true;
40
- for (const project of bridgeState.projects) {
41
- let projectAgents = [];
42
- if (project.path) {
43
- const projectHash = crypto.createHash('sha256').update(project.path).digest('hex').slice(0, 12);
44
- const projectDataDir = path.join(path.dirname(dataDir), projectHash);
45
- const projectTeamDir = path.join(projectDataDir, 'team');
46
- const agentsPath = path.join(projectTeamDir, 'agents.json');
47
- if (fs.existsSync(agentsPath)) {
48
- try {
49
- const agentsData = JSON.parse(fs.readFileSync(agentsPath, 'utf-8'));
50
- if (agentsData.agents && Array.isArray(agentsData.agents)) {
51
- const thirtySecondsAgo = Date.now() - 30 * 1000;
52
- projectAgents = agentsData.agents
53
- .filter((a) => {
54
- if (!a.lastSeen)
55
- return false;
56
- return new Date(a.lastSeen).getTime() > thirtySecondsAgo;
57
- })
58
- .map((a) => ({
59
- name: a.name,
60
- status: 'online',
61
- }));
62
- }
63
- }
64
- catch (e) {
65
- console.warn(`[api] Failed to read agents for ${project.path}:`, e);
66
- }
67
- }
68
- }
69
- servers.push({
70
- id: project.id,
71
- name: project.name || project.path.split('/').pop() || project.id,
72
- status: project.connected ? 'healthy' : 'offline',
73
- agents: projectAgents,
74
- cpuUsage: 0,
75
- memoryUsage: 0,
76
- activeConnections: project.connected ? 1 : 0,
77
- uptime: 0,
78
- lastHeartbeat: project.lastSeen || new Date().toISOString(),
79
- });
80
- }
81
- }
82
- }
83
- catch (err) {
84
- console.warn('[api] Failed to read bridge state:', err);
85
- }
86
- }
87
- if (!hasBridgeProjects) {
88
- servers.push({
89
- id: 'local',
90
- name: 'Local Daemon',
91
- status: 'healthy',
92
- agents: localAgents.map((a) => ({
93
- name: a.name,
94
- status: agentStatuses[a.name]?.status || 'unknown',
95
- })),
96
- cpuUsage: Math.random() * 30,
97
- memoryUsage: Math.random() * 50,
98
- activeConnections: wss.clients.size,
99
- uptime: process.uptime(),
100
- lastHeartbeat: new Date().toISOString(),
101
- });
102
- }
103
- return res.json({ success: true, servers });
104
- });
105
- // GET /api/fleet/stats - Get aggregate fleet statistics.
106
- app.get('/api/fleet/stats', async (_req, res) => {
107
- const localAgents = spawnReader?.getActiveWorkers() || [];
108
- const agentStatuses = await loadAgentStatuses(dataDir);
109
- const totalAgents = localAgents.length;
110
- let onlineAgents = 0;
111
- let busyAgents = 0;
112
- for (const agent of localAgents) {
113
- const status = agentStatuses[agent.name]?.status;
114
- if (status === 'online')
115
- onlineAgents++;
116
- if (status === 'busy')
117
- busyAgents++;
118
- }
119
- return res.json({
120
- success: true,
121
- stats: {
122
- totalAgents,
123
- onlineAgents,
124
- busyAgents,
125
- pendingDecisions: decisions.size,
126
- activeTasks: Array.from(tasks.values()).filter((t) => t.status === 'assigned' || t.status === 'in_progress').length,
127
- },
128
- });
129
- });
130
- }
131
- //# sourceMappingURL=fleet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fleet.js","sourceRoot":"","sources":["../../src/routes/fleet.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import type { Application } from 'express';
2
- import type { StorageAdapter } from '@agent-relay/storage/adapter';
3
- export interface HistoryRouteDeps {
4
- storage?: StorageAdapter;
5
- formatDuration: (startMs: number, endMs?: number) => string;
6
- isInternalAgent: (name: string) => boolean;
7
- remapAgentName: (name: string) => string;
8
- }
9
- /**
10
- * Conversation history and storage statistics routes.
11
- */
12
- export declare function registerHistoryRoutes(app: Application, deps: HistoryRouteDeps): void;
13
- //# sourceMappingURL=history.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/routes/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAC5D,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C,cAAc,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;CAC1C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAwPpF"}
@@ -1,205 +0,0 @@
1
- /**
2
- * Conversation history and storage statistics routes.
3
- */
4
- export function registerHistoryRoutes(app, deps) {
5
- const { storage, formatDuration, isInternalAgent, remapAgentName } = deps;
6
- // GET /api/history/sessions - List all sessions with filters.
7
- app.get('/api/history/sessions', async (req, res) => {
8
- if (!storage) {
9
- return res.status(503).json({ error: 'Storage not configured' });
10
- }
11
- try {
12
- const query = {};
13
- if (req.query.agent && typeof req.query.agent === 'string') {
14
- query.agentName = req.query.agent;
15
- }
16
- if (req.query.since) {
17
- query.since = parseInt(req.query.since, 10);
18
- }
19
- query.limit = req.query.limit ? parseInt(req.query.limit, 10) : 50;
20
- const sessions = storage.getSessions
21
- ? await storage.getSessions(query)
22
- : [];
23
- const result = sessions.map((s) => ({
24
- id: s.id,
25
- agentName: s.agentName,
26
- cli: s.cli,
27
- startedAt: new Date(s.startedAt).toISOString(),
28
- endedAt: s.endedAt ? new Date(s.endedAt).toISOString() : undefined,
29
- duration: formatDuration(s.startedAt, s.endedAt),
30
- messageCount: s.messageCount,
31
- summary: s.summary,
32
- isActive: !s.endedAt,
33
- closedBy: s.closedBy,
34
- }));
35
- return res.json({ sessions: result });
36
- }
37
- catch (err) {
38
- console.error('Failed to fetch sessions', err);
39
- return res.status(500).json({ error: 'Failed to fetch sessions' });
40
- }
41
- });
42
- // GET /api/history/messages - Get messages with filters.
43
- app.get('/api/history/messages', async (req, res) => {
44
- if (!storage) {
45
- return res.status(503).json({ error: 'Storage not configured' });
46
- }
47
- try {
48
- const query = {};
49
- if (req.query.from && typeof req.query.from === 'string') {
50
- query.from = req.query.from;
51
- }
52
- if (req.query.to && typeof req.query.to === 'string') {
53
- query.to = req.query.to;
54
- }
55
- if (req.query.thread && typeof req.query.thread === 'string') {
56
- query.thread = req.query.thread;
57
- }
58
- if (req.query.since) {
59
- query.sinceTs = parseInt(req.query.since, 10);
60
- }
61
- query.limit = req.query.limit ? parseInt(req.query.limit, 10) : 100;
62
- query.order = req.query.order || 'desc';
63
- let messages = await storage.getMessages(query);
64
- // Filter out messages from/to internal system agents (e.g., __spawner__).
65
- messages = messages.filter((m) => !isInternalAgent(m.from) && !isInternalAgent(m.to));
66
- // Client-side search filter (basic substring match).
67
- const searchTerm = req.query.search;
68
- if (searchTerm && searchTerm.trim()) {
69
- const lowerSearch = searchTerm.toLowerCase();
70
- messages = messages.filter((m) => m.body.toLowerCase().includes(lowerSearch) ||
71
- m.from.toLowerCase().includes(lowerSearch) ||
72
- m.to.toLowerCase().includes(lowerSearch));
73
- }
74
- const result = messages.map((m) => ({
75
- id: m.id,
76
- from: remapAgentName(m.from),
77
- to: remapAgentName(m.to),
78
- content: m.body,
79
- timestamp: new Date(m.ts).toISOString(),
80
- thread: m.thread,
81
- isBroadcast: m.is_broadcast,
82
- isUrgent: m.is_urgent,
83
- status: m.status,
84
- }));
85
- return res.json({ messages: result });
86
- }
87
- catch (err) {
88
- console.error('Failed to fetch messages', err);
89
- return res.status(500).json({ error: 'Failed to fetch messages' });
90
- }
91
- });
92
- // GET /api/history/conversations - Get unique conversations (agent pairs).
93
- app.get('/api/history/conversations', async (_req, res) => {
94
- if (!storage) {
95
- return res.status(503).json({ error: 'Storage not configured' });
96
- }
97
- try {
98
- // Get all messages to build conversation list.
99
- const messages = await storage.getMessages({ limit: 1000, order: 'desc' });
100
- // Build unique conversation pairs.
101
- const conversationMap = new Map();
102
- for (const msg of messages) {
103
- // Skip broadcasts for conversation pairing.
104
- if (msg.to === '*' || msg.is_broadcast)
105
- continue;
106
- // Skip messages from/to internal system agents (e.g., __spawner__).
107
- if (isInternalAgent(msg.from) || isInternalAgent(msg.to))
108
- continue;
109
- // Create normalized key (sorted participants, with display names).
110
- const participants = [remapAgentName(msg.from), remapAgentName(msg.to)].sort();
111
- const key = participants.join(':');
112
- const existing = conversationMap.get(key);
113
- if (existing) {
114
- existing.messageCount++;
115
- }
116
- else {
117
- conversationMap.set(key, {
118
- participants,
119
- lastMessage: msg.body.substring(0, 100),
120
- lastTimestamp: new Date(msg.ts).toISOString(),
121
- messageCount: 1,
122
- });
123
- }
124
- }
125
- // Convert to array sorted by last timestamp.
126
- const conversations = Array.from(conversationMap.values())
127
- .sort((a, b) => new Date(b.lastTimestamp).getTime() - new Date(a.lastTimestamp).getTime());
128
- return res.json({ conversations });
129
- }
130
- catch (err) {
131
- console.error('Failed to fetch conversations', err);
132
- return res.status(500).json({ error: 'Failed to fetch conversations' });
133
- }
134
- });
135
- // GET /api/history/message/:id - Get a single message by ID.
136
- app.get('/api/history/message/:id', async (req, res) => {
137
- if (!storage) {
138
- return res.status(503).json({ error: 'Storage not configured' });
139
- }
140
- try {
141
- const { id } = req.params;
142
- const message = storage.getMessageById
143
- ? await storage.getMessageById(id)
144
- : null;
145
- if (!message) {
146
- return res.status(404).json({ error: 'Message not found' });
147
- }
148
- return res.json({
149
- id: message.id,
150
- from: message.from,
151
- to: message.to,
152
- content: message.body,
153
- timestamp: new Date(message.ts).toISOString(),
154
- thread: message.thread,
155
- isBroadcast: message.is_broadcast,
156
- isUrgent: message.is_urgent,
157
- status: message.status,
158
- data: message.data,
159
- });
160
- }
161
- catch (err) {
162
- console.error('Failed to fetch message', err);
163
- return res.status(500).json({ error: 'Failed to fetch message' });
164
- }
165
- });
166
- // GET /api/history/stats - Get storage statistics.
167
- app.get('/api/history/stats', async (_req, res) => {
168
- if (!storage) {
169
- return res.status(503).json({ error: 'Storage not configured' });
170
- }
171
- try {
172
- // Get stats from adapter if available (SQLite-specific getStats method).
173
- const storageWithStats = storage;
174
- if (typeof storageWithStats.getStats === 'function' && typeof storage.getSessions === 'function') {
175
- const stats = await storageWithStats.getStats();
176
- const sessions = await storage.getSessions({ limit: 1000 });
177
- // Calculate additional stats.
178
- const activeSessions = sessions.filter((s) => !s.endedAt).length;
179
- const uniqueAgents = new Set(sessions.map((s) => s.agentName)).size;
180
- return res.json({
181
- messageCount: stats.messageCount,
182
- sessionCount: stats.sessionCount,
183
- activeSessions,
184
- uniqueAgents,
185
- oldestMessageDate: stats.oldestMessageTs
186
- ? new Date(stats.oldestMessageTs).toISOString()
187
- : null,
188
- });
189
- }
190
- // Basic stats for other adapters.
191
- const messages = await storage.getMessages({ limit: 1 });
192
- return res.json({
193
- messageCount: messages.length > 0 ? 'unknown' : 0,
194
- sessionCount: 'unknown',
195
- activeSessions: 'unknown',
196
- uniqueAgents: 'unknown',
197
- });
198
- }
199
- catch (err) {
200
- console.error('Failed to fetch stats', err);
201
- return res.status(500).json({ error: 'Failed to fetch stats' });
202
- }
203
- });
204
- }
205
- //# sourceMappingURL=history.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/routes/history.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAgB,EAAE,IAAsB;IAC5E,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAE1E,8DAA8D;IAC9D,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAIP,EAAE,CAAC;YAEP,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC3D,KAAK,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;YACpC,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpB,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC;YACxD,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAE7E,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW;gBAClC,CAAC,CAAC,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC;gBAClC,CAAC,CAAC,EAAE,CAAC;YAEP,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,SAAS,EAAE,CAAC,CAAC,SAAS;gBACtB,GAAG,EAAE,CAAC,CAAC,GAAG;gBACV,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;gBAC9C,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;gBAClE,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC;gBAChD,YAAY,EAAE,CAAC,CAAC,YAAY;gBAC5B,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO;gBACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;aACrB,CAAC,CAAC,CAAC;YAEJ,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yDAAyD;IACzD,GAAG,CAAC,GAAG,CAAC,uBAAuB,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QAClD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAOP,EAAE,CAAC;YAEP,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACzD,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAC9B,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;gBACrD,KAAK,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,OAAO,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7D,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC;YAClC,CAAC;YACD,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;gBACpB,KAAK,CAAC,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,KAAe,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YAC9E,KAAK,CAAC,KAAK,GAAI,GAAG,CAAC,KAAK,CAAC,KAAwB,IAAI,MAAM,CAAC;YAE5D,IAAI,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YAEhD,0EAA0E;YAC1E,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAEtF,qDAAqD;YACrD,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,MAA4B,CAAC;YAC1D,IAAI,UAAU,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpC,MAAM,WAAW,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;gBAC7C,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC/B,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAC1C,CAAC,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC;oBAC1C,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CACzC,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAClC,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5B,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC;gBACxB,OAAO,EAAE,CAAC,CAAC,IAAI;gBACf,SAAS,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;gBACvC,MAAM,EAAE,CAAC,CAAC,MAAM;gBAChB,WAAW,EAAE,CAAC,CAAC,YAAY;gBAC3B,QAAQ,EAAE,CAAC,CAAC,SAAS;gBACrB,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC,CAAC;YAEJ,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,GAAG,CAAC,CAAC;YAC/C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,0BAA0B,EAAE,CAAC,CAAC;QACrE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,2EAA2E;IAC3E,GAAG,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QACxD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,+CAA+C;YAC/C,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YAE3E,mCAAmC;YACnC,MAAM,eAAe,GAAG,IAAI,GAAG,EAK3B,CAAC;YAEL,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,4CAA4C;gBAC5C,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,YAAY;oBAAE,SAAS;gBAEjD,oEAAoE;gBACpE,IAAI,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;oBAAE,SAAS;gBAEnE,mEAAmE;gBACnE,MAAM,YAAY,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC/E,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEnC,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,CAAC,YAAY,EAAE,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE;wBACvB,YAAY;wBACZ,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC;wBACvC,aAAa,EAAE,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;wBAC7C,YAAY,EAAE,CAAC;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,6CAA6C;YAC7C,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;iBACvD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;YAE7F,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAG,CAAC,CAAC;YACpD,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC,CAAC;QAC1E,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,6DAA6D;IAC7D,GAAG,CAAC,GAAG,CAAC,0BAA0B,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC;YAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc;gBACpC,CAAC,CAAC,MAAM,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC;YAET,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YAC9D,CAAC;YAED,OAAO,GAAG,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,EAAE;gBACd,OAAO,EAAE,OAAO,CAAC,IAAI;gBACrB,SAAS,EAAE,IAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE;gBAC7C,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,WAAW,EAAE,OAAO,CAAC,YAAY;gBACjC,QAAQ,EAAE,OAAO,CAAC,SAAS;gBAC3B,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,IAAI,EAAE,OAAO,CAAC,IAAI;aACnB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,GAAG,CAAC,GAAG,CAAC,oBAAoB,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,wBAAwB,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,IAAI,CAAC;YACH,yEAAyE;YACzE,MAAM,gBAAgB,GAAG,OAMxB,CAAC;YACF,IAAI,OAAO,gBAAgB,CAAC,QAAQ,KAAK,UAAU,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;gBACjG,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,QAAQ,EAAE,CAAC;gBAChD,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBAE5D,8BAA8B;gBAC9B,MAAM,cAAc,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;gBACjE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;gBAEpE,OAAO,GAAG,CAAC,IAAI,CAAC;oBACd,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,YAAY,EAAE,KAAK,CAAC,YAAY;oBAChC,cAAc;oBACd,YAAY;oBACZ,iBAAiB,EAAE,KAAK,CAAC,eAAe;wBACtC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE;wBAC/C,CAAC,CAAC,IAAI;iBACT,CAAC,CAAC;YACL,CAAC;YAED,kCAAkC;YAClC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,GAAG,CAAC,IAAI,CAAC;gBACd,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;gBACjD,YAAY,EAAE,SAAS;gBACvB,cAAc,EAAE,SAAS;gBACzB,YAAY,EAAE,SAAS;aACxB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAG,CAAC,CAAC;YAC5C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC"}