@mce-bt/microagents-dashboard 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,278 @@
1
+ import type { DashboardConfig } from './config.js';
2
+ export interface AgentInfo {
3
+ id: string;
4
+ name: string;
5
+ domain: string;
6
+ version: string;
7
+ description: string;
8
+ baseUrl: string;
9
+ status: 'online' | 'offline' | 'unhealthy';
10
+ lastHeartbeat: string;
11
+ registeredAt: string;
12
+ endpoints: Array<{
13
+ path: string;
14
+ method: string;
15
+ description?: string;
16
+ }>;
17
+ events: {
18
+ subscriptions: Array<{
19
+ topic: string;
20
+ description?: string;
21
+ }>;
22
+ publications: Array<{
23
+ topic: string;
24
+ description?: string;
25
+ }>;
26
+ };
27
+ tasks: Array<{
28
+ topic: string;
29
+ description?: string;
30
+ }>;
31
+ skills: Array<{
32
+ name: string;
33
+ description: string;
34
+ visibility: string;
35
+ type: string;
36
+ }>;
37
+ tools: Array<{
38
+ name: string;
39
+ description: string;
40
+ visibility: string;
41
+ }>;
42
+ health?: {
43
+ uptime: number;
44
+ scheduler?: unknown;
45
+ };
46
+ }
47
+ export interface AgentMetrics {
48
+ agent: {
49
+ id: string;
50
+ name: string;
51
+ domain: string;
52
+ version: string;
53
+ state: string;
54
+ uptime: number;
55
+ };
56
+ scheduler: unknown;
57
+ sessions: {
58
+ active: number;
59
+ activeIds: string[];
60
+ recent: Array<{
61
+ id: string;
62
+ startedAt: string;
63
+ endedAt: string | null;
64
+ metadata: Record<string, unknown>;
65
+ }>;
66
+ };
67
+ completion: {
68
+ total?: {
69
+ promptTokens: number;
70
+ completionTokens: number;
71
+ totalTokens: number;
72
+ };
73
+ callCount?: number;
74
+ byModel?: Record<string, {
75
+ promptTokens: number;
76
+ completionTokens: number;
77
+ totalTokens: number;
78
+ calls: number;
79
+ avgDurationMs: number;
80
+ }>;
81
+ byTier?: Record<string, {
82
+ promptTokens: number;
83
+ completionTokens: number;
84
+ totalTokens: number;
85
+ calls: number;
86
+ }>;
87
+ promptTokens?: number;
88
+ completionTokens?: number;
89
+ totalTokens?: number;
90
+ } | null;
91
+ callHistory: Array<{
92
+ id: string;
93
+ model: string;
94
+ tier: string;
95
+ promptTokens: number;
96
+ completionTokens: number;
97
+ totalTokens: number;
98
+ durationMs: number;
99
+ timestamp: string;
100
+ }>;
101
+ tools: Array<{
102
+ name: string;
103
+ description: string;
104
+ visibility: string;
105
+ }>;
106
+ }
107
+ export interface SessionDetail {
108
+ session: {
109
+ id: string;
110
+ agentId: string;
111
+ startedAt: string;
112
+ endedAt: string | null;
113
+ metadata: Record<string, unknown>;
114
+ };
115
+ entries: Array<{
116
+ id?: string;
117
+ sessionId: string;
118
+ agentId: string;
119
+ type: string;
120
+ content: string;
121
+ metadata?: Record<string, unknown>;
122
+ timestamp: string;
123
+ }>;
124
+ }
125
+ export interface RabbitQueue {
126
+ name: string;
127
+ messages: number;
128
+ messagesReady: number;
129
+ messagesUnacked: number;
130
+ consumers: number;
131
+ state: string;
132
+ }
133
+ export interface RabbitOverview {
134
+ queues: RabbitQueue[];
135
+ clusterName?: string;
136
+ rabbitmqVersion?: string;
137
+ messageStats?: {
138
+ publishRate: number;
139
+ deliverRate: number;
140
+ ackRate: number;
141
+ };
142
+ }
143
+ export declare class DashboardAggregator {
144
+ private config;
145
+ /** Postgres schema holding memory tables — validated, safe to interpolate. */
146
+ private readonly schema;
147
+ constructor(config: DashboardConfig);
148
+ /**
149
+ * Get all agents — from registry if available, or by direct polling.
150
+ */
151
+ getAgents(): Promise<AgentInfo[]>;
152
+ /**
153
+ * Direct-agents mode: build agent info from /health and /dashboard/metrics endpoints.
154
+ */
155
+ private getAgentsDirect;
156
+ /**
157
+ * Get detailed metrics from a specific agent.
158
+ */
159
+ getAgentMetrics(baseUrl: string): Promise<AgentMetrics | null>;
160
+ /**
161
+ * Get full session log from a specific agent.
162
+ */
163
+ getSessionDetail(baseUrl: string, sessionId: string): Promise<SessionDetail | null>;
164
+ /**
165
+ * Get recent log entries from a specific agent.
166
+ */
167
+ getAgentLogs(baseUrl: string, limit?: number): Promise<{
168
+ logs: Array<{
169
+ level: string;
170
+ msg: string;
171
+ time: number;
172
+ agentId?: string;
173
+ agentName?: string;
174
+ [key: string]: unknown;
175
+ }>;
176
+ agentId: string;
177
+ agentName: string;
178
+ } | null>;
179
+ /**
180
+ * Get logs from all online agents, merged and sorted by time.
181
+ */
182
+ getAllAgentLogs(agents: AgentInfo[], limit?: number): Promise<Array<{
183
+ level: string;
184
+ msg: string;
185
+ time: number;
186
+ agentId: string;
187
+ agentName: string;
188
+ [key: string]: unknown;
189
+ }>>;
190
+ /**
191
+ * Get RabbitMQ queue stats from management API.
192
+ */
193
+ getRabbitMQStats(): Promise<RabbitOverview>;
194
+ /**
195
+ * Get memory stats directly from PostgreSQL.
196
+ */
197
+ getMemoryStats(): Promise<{
198
+ episodes: number;
199
+ knowledge: number;
200
+ notes: number;
201
+ contacts: number;
202
+ tasks: number;
203
+ }>;
204
+ /**
205
+ * Get memory entries from PostgreSQL (knowledge + episodes).
206
+ */
207
+ getMemoryEntries(table: 'ltm_knowledge' | 'mtm_episodes', limit?: number): Promise<unknown[]>;
208
+ /**
209
+ * Search memory via text matching.
210
+ */
211
+ searchMemory(query: string, limit?: number): Promise<{
212
+ knowledge: unknown[];
213
+ episodes: unknown[];
214
+ }>;
215
+ /**
216
+ * Get notes entries from PostgreSQL.
217
+ */
218
+ getNotesEntries(limit?: number): Promise<unknown[]>;
219
+ /**
220
+ * Get contacts from PostgreSQL.
221
+ */
222
+ getContactsEntries(limit?: number): Promise<unknown[]>;
223
+ /**
224
+ * Get tasks from PostgreSQL.
225
+ */
226
+ getTasksEntries(limit?: number): Promise<unknown[]>;
227
+ /**
228
+ * Get all scheduler stats across agents.
229
+ */
230
+ getAllSchedulerStats(agents: AgentInfo[]): Promise<Array<{
231
+ agentId: string;
232
+ agentName: string;
233
+ scheduler: unknown;
234
+ }>>;
235
+ /** The registry authenticates with the plain shared secret, not HMAC. */
236
+ private registryHeaders;
237
+ /**
238
+ * Auth headers for GET requests to agent endpoints (/dashboard/*,
239
+ * /scheduler). Agents sign JSON.stringify(body ?? '') — for a body-less
240
+ * GET that is the literal two-character string '""'.
241
+ */
242
+ private agentHeaders;
243
+ private computeSignature;
244
+ getBrowserSessions(limit?: number): Promise<Array<{
245
+ id: string;
246
+ agent_id: string;
247
+ platform: string | null;
248
+ goal: string;
249
+ status: string;
250
+ started_at: string;
251
+ ended_at: string | null;
252
+ step_count: number;
253
+ metadata: Record<string, unknown>;
254
+ }>>;
255
+ getBrowserSessionDetail(sessionId: string): Promise<{
256
+ session: {
257
+ id: string;
258
+ agent_id: string;
259
+ platform: string | null;
260
+ goal: string;
261
+ status: string;
262
+ started_at: string;
263
+ ended_at: string | null;
264
+ step_count: number;
265
+ metadata: Record<string, unknown>;
266
+ } | null;
267
+ steps: Array<{
268
+ step_index: number;
269
+ action_type: string;
270
+ instruction: string;
271
+ result: Record<string, unknown>;
272
+ screenshot_path: string | null;
273
+ duration_ms: number;
274
+ created_at: string;
275
+ }>;
276
+ }>;
277
+ }
278
+ //# sourceMappingURL=aggregator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aggregator.d.ts","sourceRoot":"","sources":["../src/aggregator.ts"],"names":[],"mappings":"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"}