@agent-relay/dashboard-server 2.0.18 → 2.0.20

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 (57) hide show
  1. package/dist/index.d.ts +10 -13
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +10 -12
  4. package/dist/index.js.map +1 -1
  5. package/dist/mocks/fixtures.d.ts +241 -0
  6. package/dist/mocks/fixtures.d.ts.map +1 -0
  7. package/dist/mocks/fixtures.js +459 -0
  8. package/dist/mocks/fixtures.js.map +1 -0
  9. package/dist/mocks/index.d.ts +7 -0
  10. package/dist/mocks/index.d.ts.map +1 -0
  11. package/dist/mocks/index.js +7 -0
  12. package/dist/mocks/index.js.map +1 -0
  13. package/dist/mocks/routes.d.ts +12 -0
  14. package/dist/mocks/routes.d.ts.map +1 -0
  15. package/dist/mocks/routes.js +586 -0
  16. package/dist/mocks/routes.js.map +1 -0
  17. package/dist/mocks/types.d.ts +127 -0
  18. package/dist/mocks/types.d.ts.map +1 -0
  19. package/dist/mocks/types.js +8 -0
  20. package/dist/mocks/types.js.map +1 -0
  21. package/dist/server.d.ts +43 -23
  22. package/dist/server.d.ts.map +1 -1
  23. package/dist/server.js +260 -5094
  24. package/dist/server.js.map +1 -1
  25. package/dist/start.d.ts +4 -1
  26. package/dist/start.d.ts.map +1 -1
  27. package/dist/start.js +63 -9
  28. package/dist/start.js.map +1 -1
  29. package/dist/vitest.config.d.ts +3 -0
  30. package/dist/vitest.config.d.ts.map +1 -0
  31. package/dist/vitest.config.js +27 -0
  32. package/dist/vitest.config.js.map +1 -0
  33. package/package.json +30 -19
  34. package/dist/health-worker-manager.d.ts +0 -62
  35. package/dist/health-worker-manager.d.ts.map +0 -1
  36. package/dist/health-worker-manager.js +0 -144
  37. package/dist/health-worker-manager.js.map +0 -1
  38. package/dist/health-worker.d.ts +0 -9
  39. package/dist/health-worker.d.ts.map +0 -1
  40. package/dist/health-worker.js +0 -79
  41. package/dist/health-worker.js.map +0 -1
  42. package/dist/metrics.d.ts +0 -105
  43. package/dist/metrics.d.ts.map +0 -1
  44. package/dist/metrics.js +0 -193
  45. package/dist/metrics.js.map +0 -1
  46. package/dist/needs-attention.d.ts +0 -24
  47. package/dist/needs-attention.d.ts.map +0 -1
  48. package/dist/needs-attention.js +0 -78
  49. package/dist/needs-attention.js.map +0 -1
  50. package/dist/types/threading.d.ts +0 -8
  51. package/dist/types/threading.d.ts.map +0 -1
  52. package/dist/types/threading.js +0 -2
  53. package/dist/types/threading.js.map +0 -1
  54. package/dist/user-bridge.d.ts +0 -158
  55. package/dist/user-bridge.d.ts.map +0 -1
  56. package/dist/user-bridge.js +0 -390
  57. package/dist/user-bridge.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,18 +1,15 @@
1
1
  /**
2
- * @relay/dashboard-server
2
+ * Relay Dashboard Server
3
3
  *
4
- * HTTP/WebSocket server for agent coordination and dashboard UI.
4
+ * A flexible server that can operate in two modes:
5
+ * 1. Proxy mode (default): Forwards requests to a relay daemon
6
+ * 2. Mock mode: Returns fixture data for standalone testing/demos
5
7
  *
6
- * This package provides:
7
- * - Dashboard HTTP API for agent management
8
- * - WebSocket connections for real-time updates
9
- * - User bridge for browser-based users
10
- * - Metrics collection and reporting
8
+ * This enables the dashboard to run completely independently for testing,
9
+ * demos, and development without requiring a relay daemon.
11
10
  */
12
- export { startDashboard } from './server.js';
13
- export { UserBridge, type IRelayClient } from './user-bridge.js';
14
- export { computeNeedsAttention, type AttentionMessage } from './needs-attention.js';
15
- export { computeSystemMetrics, formatPrometheusMetrics, type AgentMetrics, type ThroughputMetrics, } from './metrics.js';
16
- export { HealthWorkerManager, getHealthPort, type HealthWorkerConfig, type HealthStatsProvider } from './health-worker-manager.js';
17
- export type { ThreadMetadata } from './types/threading.js';
11
+ export { startServer, createServer } from './server.js';
12
+ export type { DashboardServerOptions, DashboardServer } from './server.js';
13
+ export * from './mocks/fixtures.js';
14
+ export * from './mocks/types.js';
18
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACnI,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxD,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAG3E,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1,17 +1,15 @@
1
1
  /**
2
- * @relay/dashboard-server
2
+ * Relay Dashboard Server
3
3
  *
4
- * HTTP/WebSocket server for agent coordination and dashboard UI.
4
+ * A flexible server that can operate in two modes:
5
+ * 1. Proxy mode (default): Forwards requests to a relay daemon
6
+ * 2. Mock mode: Returns fixture data for standalone testing/demos
5
7
  *
6
- * This package provides:
7
- * - Dashboard HTTP API for agent management
8
- * - WebSocket connections for real-time updates
9
- * - User bridge for browser-based users
10
- * - Metrics collection and reporting
8
+ * This enables the dashboard to run completely independently for testing,
9
+ * demos, and development without requiring a relay daemon.
11
10
  */
12
- export { startDashboard } from './server.js';
13
- export { UserBridge } from './user-bridge.js';
14
- export { computeNeedsAttention } from './needs-attention.js';
15
- export { computeSystemMetrics, formatPrometheusMetrics, } from './metrics.js';
16
- export { HealthWorkerManager, getHealthPort } from './health-worker-manager.js';
11
+ export { startServer, createServer } from './server.js';
12
+ // Re-export mock fixtures for testing
13
+ export * from './mocks/fixtures.js';
14
+ export * from './mocks/types.js';
17
15
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAqB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAyB,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,oBAAoB,EACpB,uBAAuB,GAGxB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAqD,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGxD,sCAAsC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Mock Data Fixtures
3
+ *
4
+ * Provides realistic mock data for standalone dashboard testing.
5
+ * Enables the dashboard to run without a relay daemon connection.
6
+ */
7
+ import type { Agent, Message, Session } from './types.js';
8
+ export declare const mockAgents: Agent[];
9
+ export declare const mockMessages: Message[];
10
+ export declare const mockSessions: Session[];
11
+ export declare const mockChannels: {
12
+ id: string;
13
+ name: string;
14
+ description: string;
15
+ memberCount: number;
16
+ isPrivate: boolean;
17
+ createdAt: string;
18
+ }[];
19
+ export declare const mockDecisions: ({
20
+ id: string;
21
+ agentName: string;
22
+ title: string;
23
+ description: string;
24
+ options: {
25
+ id: string;
26
+ label: string;
27
+ description: string;
28
+ }[];
29
+ urgency: "medium";
30
+ category: "approval";
31
+ createdAt: string;
32
+ } | {
33
+ id: string;
34
+ agentName: string;
35
+ title: string;
36
+ description: string;
37
+ options: {
38
+ id: string;
39
+ label: string;
40
+ description: string;
41
+ }[];
42
+ urgency: "high";
43
+ category: "choice";
44
+ createdAt: string;
45
+ })[];
46
+ export declare const mockTasks: ({
47
+ id: string;
48
+ agentName: string;
49
+ title: string;
50
+ description: string;
51
+ priority: "high";
52
+ status: "in_progress";
53
+ createdAt: string;
54
+ assignedAt: string;
55
+ completedAt?: undefined;
56
+ result?: undefined;
57
+ } | {
58
+ id: string;
59
+ agentName: string;
60
+ title: string;
61
+ description: string;
62
+ priority: "medium";
63
+ status: "completed";
64
+ createdAt: string;
65
+ assignedAt: string;
66
+ completedAt: string;
67
+ result: string;
68
+ } | {
69
+ id: string;
70
+ agentName: string;
71
+ title: string;
72
+ description: string;
73
+ priority: "medium";
74
+ status: "pending";
75
+ createdAt: string;
76
+ assignedAt?: undefined;
77
+ completedAt?: undefined;
78
+ result?: undefined;
79
+ })[];
80
+ export declare const mockFleetStats: {
81
+ totalAgents: number;
82
+ onlineAgents: number;
83
+ busyAgents: number;
84
+ pendingDecisions: number;
85
+ activeTasks: number;
86
+ };
87
+ export declare const mockFleetServers: {
88
+ id: string;
89
+ name: string;
90
+ status: "healthy";
91
+ agents: {
92
+ name: string;
93
+ status: "online" | "offline" | "busy" | "idle";
94
+ }[];
95
+ cpuUsage: number;
96
+ memoryUsage: number;
97
+ activeConnections: number;
98
+ uptime: number;
99
+ lastHeartbeat: string;
100
+ }[];
101
+ export declare const mockMetrics: {
102
+ timestamp: string;
103
+ totalAgents: number;
104
+ onlineAgents: number;
105
+ offlineAgents: number;
106
+ totalMessages: number;
107
+ throughput: {
108
+ messagesLastMinute: number;
109
+ messagesLastHour: number;
110
+ messagesLast24Hours: number;
111
+ avgMessagesPerMinute: number;
112
+ };
113
+ agents: {
114
+ name: string;
115
+ isOnline: boolean;
116
+ messagesSent: number;
117
+ messagesReceived: number;
118
+ firstSeen: string;
119
+ lastSeen: string;
120
+ uptimeSeconds: number;
121
+ }[];
122
+ sessions: {
123
+ totalSessions: number;
124
+ activeSessions: number;
125
+ closedByAgent: number;
126
+ closedByDisconnect: number;
127
+ closedByError: number;
128
+ errorRate: number;
129
+ recentSessions: {
130
+ agentName: string;
131
+ startedAt: string;
132
+ endedAt: string | undefined;
133
+ messageCount: number;
134
+ closedBy: "agent" | "disconnect" | "error" | undefined;
135
+ }[];
136
+ };
137
+ system: {
138
+ totalAgents: number;
139
+ onlineAgents: number;
140
+ totalMessages: number;
141
+ totalSessions: number;
142
+ activeSessions: number;
143
+ };
144
+ };
145
+ export declare const mockHistorySessions: {
146
+ duration: string;
147
+ summary: string;
148
+ id: string;
149
+ agentName: string;
150
+ cli?: string;
151
+ startedAt: string;
152
+ endedAt?: string;
153
+ messageCount: number;
154
+ isActive: boolean;
155
+ closedBy?: "agent" | "disconnect" | "error";
156
+ }[];
157
+ export declare const mockHistoryStats: {
158
+ messageCount: number;
159
+ sessionCount: number;
160
+ activeSessions: number;
161
+ uniqueAgents: number;
162
+ oldestMessageDate: string | null;
163
+ };
164
+ export declare const mockSpawnedAgents: {
165
+ name: string;
166
+ cli: string;
167
+ startedAt: string;
168
+ }[];
169
+ export declare const mockFiles: {
170
+ path: string;
171
+ name: string;
172
+ isDirectory: boolean;
173
+ }[];
174
+ export declare const mockConversations: {
175
+ participants: string[];
176
+ lastMessage: string;
177
+ lastTimestamp: string;
178
+ messageCount: number;
179
+ }[];
180
+ export declare const mockBillingPlans: ({
181
+ tier: string;
182
+ name: string;
183
+ description: string;
184
+ price: {
185
+ monthly: number;
186
+ yearly: number;
187
+ };
188
+ features: string[];
189
+ limits: {
190
+ workspaces: number;
191
+ agents: number;
192
+ messagesPerDay: number;
193
+ };
194
+ recommended?: undefined;
195
+ } | {
196
+ tier: string;
197
+ name: string;
198
+ description: string;
199
+ price: {
200
+ monthly: number;
201
+ yearly: number;
202
+ };
203
+ features: string[];
204
+ limits: {
205
+ workspaces: number;
206
+ agents: number;
207
+ messagesPerDay: number;
208
+ };
209
+ recommended: boolean;
210
+ })[];
211
+ export declare const mockSubscription: {
212
+ id: string;
213
+ tier: string;
214
+ status: string;
215
+ currentPeriodStart: string;
216
+ currentPeriodEnd: string;
217
+ cancelAtPeriodEnd: boolean;
218
+ interval: "month";
219
+ };
220
+ export declare const mockInvoices: {
221
+ id: string;
222
+ number: string;
223
+ amount: number;
224
+ status: string;
225
+ date: string;
226
+ pdfUrl: string;
227
+ }[];
228
+ export declare const mockWorkspaces: {
229
+ id: string;
230
+ name: string;
231
+ status: string;
232
+ createdAt: string;
233
+ }[];
234
+ export declare const mockUser: {
235
+ id: string;
236
+ email: string;
237
+ displayName: string;
238
+ avatarUrl: null;
239
+ createdAt: string;
240
+ };
241
+ //# sourceMappingURL=fixtures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fixtures.d.ts","sourceRoot":"","sources":["../../mocks/fixtures.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1D,eAAO,MAAM,UAAU,EAAE,KAAK,EAoC7B,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,OAAO,EAuCjC,CAAC;AAIF,eAAO,MAAM,YAAY,EAAE,OAAO,EAmCjC,CAAC;AAIF,eAAO,MAAM,YAAY;;;;;;;GAyBxB,CAAC;AAIF,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;IA4BzB,CAAC;AAIF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCrB,CAAC;AAIF,eAAO,MAAM,cAAc;;;;;;CAM1B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;GAY5B,CAAC;AAOF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CvB,CAAC;AAIF,eAAO,MAAM,mBAAmB;;;;;;;;;;;GAM7B,CAAC;AAEJ,eAAO,MAAM,gBAAgB;;;;;;CAU5B,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;GAW7B,CAAC;AAIF,eAAO,MAAM,SAAS;;;;GASrB,CAAC;AAIF,eAAO,MAAM,iBAAiB;;;;;GAa7B,CAAC;AAIF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA0D5B,CAAC;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;CAQ5B,CAAC;AAEF,eAAO,MAAM,YAAY;;;;;;;GAyBxB,CAAC;AAIF,eAAO,MAAM,cAAc;;;;;GAa1B,CAAC;AAEF,eAAO,MAAM,QAAQ;;;;;;CAMpB,CAAC"}