@agimon-ai/log-sink-mcp 0.8.0 → 0.8.2
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.
- package/dist/cli.d.cts +1 -0
- package/dist/cli.d.mts +1 -0
- package/dist/index.d.cts +508 -0
- package/dist/index.d.mts +508 -0
- package/dist/telemetry/node.d.cts +56 -0
- package/dist/telemetry/node.d.mts +56 -0
- package/package.json +4 -4
package/dist/cli.d.cts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/cli.d.mts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { };
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
import { NodeTelemetryHandle, NodeTelemetryLogOptions, NodeTelemetryLogger, NodeTelemetryOptions, TelemetryLevel, createNodeTelemetry, getLogSinkOtelEndpoint, log as logs, trace } from "./telemetry/node.cjs";
|
|
2
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
|
+
import { Container } from "inversify";
|
|
4
|
+
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
5
|
+
import { z } from "zod";
|
|
6
|
+
import * as _$drizzle_orm_sqlite_core0 from "drizzle-orm/sqlite-core";
|
|
7
|
+
|
|
8
|
+
//#region src/server/index.d.ts
|
|
9
|
+
declare function createServer(existingContainer?: Container): Server;
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/types/container.types.d.ts
|
|
12
|
+
/**
|
|
13
|
+
* Dependency Injection Container Types
|
|
14
|
+
*
|
|
15
|
+
* DESIGN PATTERNS:
|
|
16
|
+
* - Dependency Injection with InversifyJS
|
|
17
|
+
* - Symbol-based service identifiers
|
|
18
|
+
*
|
|
19
|
+
* CODING STANDARDS:
|
|
20
|
+
* - Use symbols for DI identifiers to avoid naming collisions
|
|
21
|
+
* - Group symbols by service category
|
|
22
|
+
* - Export TYPES constant for centralized access
|
|
23
|
+
*
|
|
24
|
+
* AVOID:
|
|
25
|
+
* - String-based identifiers (use symbols)
|
|
26
|
+
* - Hardcoded type values
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* InversifyJS DI symbols for service identification
|
|
30
|
+
*/
|
|
31
|
+
declare const TYPES: {
|
|
32
|
+
readonly LogStorageService: symbol;
|
|
33
|
+
readonly EmbeddingService: symbol;
|
|
34
|
+
readonly LogQueryService: symbol;
|
|
35
|
+
readonly LogSearchService: symbol;
|
|
36
|
+
readonly SemanticSearchService: symbol;
|
|
37
|
+
readonly LogRetentionService: symbol;
|
|
38
|
+
readonly HttpServerHealthCheck: symbol;
|
|
39
|
+
readonly HttpServerManager: symbol;
|
|
40
|
+
readonly Database: symbol;
|
|
41
|
+
readonly Logger: symbol;
|
|
42
|
+
readonly HttpServer: symbol;
|
|
43
|
+
readonly McpServer: symbol;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Type for TYPES constant keys
|
|
47
|
+
*/
|
|
48
|
+
type TypeKey = keyof typeof TYPES;
|
|
49
|
+
/**
|
|
50
|
+
* Type for TYPES constant values
|
|
51
|
+
*/
|
|
52
|
+
type TypeSymbol = (typeof TYPES)[TypeKey];
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/models/schema.d.ts
|
|
55
|
+
/**
|
|
56
|
+
* Log Sink Schema
|
|
57
|
+
*
|
|
58
|
+
* DESIGN PATTERNS:
|
|
59
|
+
* - Schema-first design with Drizzle ORM
|
|
60
|
+
* - Type inference from schema definition
|
|
61
|
+
* - FTS5 virtual table for full-text search
|
|
62
|
+
*
|
|
63
|
+
* CODING STANDARDS:
|
|
64
|
+
* - Use text() for string columns (IDs, names, messages)
|
|
65
|
+
* - Use integer() for numeric columns (pids)
|
|
66
|
+
* - Use integer({ mode: 'timestamp' }) for dates
|
|
67
|
+
* - Use text({ mode: 'json' }) for complex objects
|
|
68
|
+
* - Always define primary keys with $defaultFn for ULID generation
|
|
69
|
+
* - Add indexes for foreign keys and frequently queried columns
|
|
70
|
+
* - Table names should be snake_case singular
|
|
71
|
+
*
|
|
72
|
+
* AVOID:
|
|
73
|
+
* - Storing JSON as strings without proper typing
|
|
74
|
+
* - Missing indexes on foreign keys
|
|
75
|
+
* - Nullable primary keys
|
|
76
|
+
* - Using any for column types
|
|
77
|
+
*/
|
|
78
|
+
/**
|
|
79
|
+
* Logs table schema
|
|
80
|
+
*
|
|
81
|
+
* Database table: logs
|
|
82
|
+
*/
|
|
83
|
+
declare const logs$1: _$drizzle_orm_sqlite_core0.SQLiteTableWithColumns<{
|
|
84
|
+
name: "logs";
|
|
85
|
+
schema: undefined;
|
|
86
|
+
columns: {
|
|
87
|
+
id: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
88
|
+
name: "id";
|
|
89
|
+
tableName: "logs";
|
|
90
|
+
dataType: "string";
|
|
91
|
+
columnType: "SQLiteText";
|
|
92
|
+
data: string;
|
|
93
|
+
driverParam: string;
|
|
94
|
+
notNull: true;
|
|
95
|
+
hasDefault: true;
|
|
96
|
+
isPrimaryKey: true;
|
|
97
|
+
isAutoincrement: false;
|
|
98
|
+
hasRuntimeDefault: true;
|
|
99
|
+
enumValues: [string, ...string[]];
|
|
100
|
+
baseColumn: never;
|
|
101
|
+
identity: undefined;
|
|
102
|
+
generated: undefined;
|
|
103
|
+
}, {}, {
|
|
104
|
+
length: number | undefined;
|
|
105
|
+
}>;
|
|
106
|
+
timestamp: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
107
|
+
name: "timestamp";
|
|
108
|
+
tableName: "logs";
|
|
109
|
+
dataType: "date";
|
|
110
|
+
columnType: "SQLiteTimestamp";
|
|
111
|
+
data: Date;
|
|
112
|
+
driverParam: number;
|
|
113
|
+
notNull: true;
|
|
114
|
+
hasDefault: true;
|
|
115
|
+
isPrimaryKey: false;
|
|
116
|
+
isAutoincrement: false;
|
|
117
|
+
hasRuntimeDefault: true;
|
|
118
|
+
enumValues: undefined;
|
|
119
|
+
baseColumn: never;
|
|
120
|
+
identity: undefined;
|
|
121
|
+
generated: undefined;
|
|
122
|
+
}, {}, {}>;
|
|
123
|
+
level: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
124
|
+
name: "level";
|
|
125
|
+
tableName: "logs";
|
|
126
|
+
dataType: "string";
|
|
127
|
+
columnType: "SQLiteText";
|
|
128
|
+
data: string;
|
|
129
|
+
driverParam: string;
|
|
130
|
+
notNull: true;
|
|
131
|
+
hasDefault: false;
|
|
132
|
+
isPrimaryKey: false;
|
|
133
|
+
isAutoincrement: false;
|
|
134
|
+
hasRuntimeDefault: false;
|
|
135
|
+
enumValues: [string, ...string[]];
|
|
136
|
+
baseColumn: never;
|
|
137
|
+
identity: undefined;
|
|
138
|
+
generated: undefined;
|
|
139
|
+
}, {}, {
|
|
140
|
+
length: number | undefined;
|
|
141
|
+
}>;
|
|
142
|
+
message: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
143
|
+
name: "message";
|
|
144
|
+
tableName: "logs";
|
|
145
|
+
dataType: "string";
|
|
146
|
+
columnType: "SQLiteText";
|
|
147
|
+
data: string;
|
|
148
|
+
driverParam: string;
|
|
149
|
+
notNull: true;
|
|
150
|
+
hasDefault: false;
|
|
151
|
+
isPrimaryKey: false;
|
|
152
|
+
isAutoincrement: false;
|
|
153
|
+
hasRuntimeDefault: false;
|
|
154
|
+
enumValues: [string, ...string[]];
|
|
155
|
+
baseColumn: never;
|
|
156
|
+
identity: undefined;
|
|
157
|
+
generated: undefined;
|
|
158
|
+
}, {}, {
|
|
159
|
+
length: number | undefined;
|
|
160
|
+
}>;
|
|
161
|
+
traceId: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
162
|
+
name: "trace_id";
|
|
163
|
+
tableName: "logs";
|
|
164
|
+
dataType: "string";
|
|
165
|
+
columnType: "SQLiteText";
|
|
166
|
+
data: string;
|
|
167
|
+
driverParam: string;
|
|
168
|
+
notNull: false;
|
|
169
|
+
hasDefault: false;
|
|
170
|
+
isPrimaryKey: false;
|
|
171
|
+
isAutoincrement: false;
|
|
172
|
+
hasRuntimeDefault: false;
|
|
173
|
+
enumValues: [string, ...string[]];
|
|
174
|
+
baseColumn: never;
|
|
175
|
+
identity: undefined;
|
|
176
|
+
generated: undefined;
|
|
177
|
+
}, {}, {
|
|
178
|
+
length: number | undefined;
|
|
179
|
+
}>;
|
|
180
|
+
spanId: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
181
|
+
name: "span_id";
|
|
182
|
+
tableName: "logs";
|
|
183
|
+
dataType: "string";
|
|
184
|
+
columnType: "SQLiteText";
|
|
185
|
+
data: string;
|
|
186
|
+
driverParam: string;
|
|
187
|
+
notNull: false;
|
|
188
|
+
hasDefault: false;
|
|
189
|
+
isPrimaryKey: false;
|
|
190
|
+
isAutoincrement: false;
|
|
191
|
+
hasRuntimeDefault: false;
|
|
192
|
+
enumValues: [string, ...string[]];
|
|
193
|
+
baseColumn: never;
|
|
194
|
+
identity: undefined;
|
|
195
|
+
generated: undefined;
|
|
196
|
+
}, {}, {
|
|
197
|
+
length: number | undefined;
|
|
198
|
+
}>;
|
|
199
|
+
parentSpanId: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
200
|
+
name: "parent_span_id";
|
|
201
|
+
tableName: "logs";
|
|
202
|
+
dataType: "string";
|
|
203
|
+
columnType: "SQLiteText";
|
|
204
|
+
data: string;
|
|
205
|
+
driverParam: string;
|
|
206
|
+
notNull: false;
|
|
207
|
+
hasDefault: false;
|
|
208
|
+
isPrimaryKey: false;
|
|
209
|
+
isAutoincrement: false;
|
|
210
|
+
hasRuntimeDefault: false;
|
|
211
|
+
enumValues: [string, ...string[]];
|
|
212
|
+
baseColumn: never;
|
|
213
|
+
identity: undefined;
|
|
214
|
+
generated: undefined;
|
|
215
|
+
}, {}, {
|
|
216
|
+
length: number | undefined;
|
|
217
|
+
}>;
|
|
218
|
+
service: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
219
|
+
name: "service";
|
|
220
|
+
tableName: "logs";
|
|
221
|
+
dataType: "string";
|
|
222
|
+
columnType: "SQLiteText";
|
|
223
|
+
data: string;
|
|
224
|
+
driverParam: string;
|
|
225
|
+
notNull: true;
|
|
226
|
+
hasDefault: false;
|
|
227
|
+
isPrimaryKey: false;
|
|
228
|
+
isAutoincrement: false;
|
|
229
|
+
hasRuntimeDefault: false;
|
|
230
|
+
enumValues: [string, ...string[]];
|
|
231
|
+
baseColumn: never;
|
|
232
|
+
identity: undefined;
|
|
233
|
+
generated: undefined;
|
|
234
|
+
}, {}, {
|
|
235
|
+
length: number | undefined;
|
|
236
|
+
}>;
|
|
237
|
+
hostname: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
238
|
+
name: "hostname";
|
|
239
|
+
tableName: "logs";
|
|
240
|
+
dataType: "string";
|
|
241
|
+
columnType: "SQLiteText";
|
|
242
|
+
data: string;
|
|
243
|
+
driverParam: string;
|
|
244
|
+
notNull: false;
|
|
245
|
+
hasDefault: false;
|
|
246
|
+
isPrimaryKey: false;
|
|
247
|
+
isAutoincrement: false;
|
|
248
|
+
hasRuntimeDefault: false;
|
|
249
|
+
enumValues: [string, ...string[]];
|
|
250
|
+
baseColumn: never;
|
|
251
|
+
identity: undefined;
|
|
252
|
+
generated: undefined;
|
|
253
|
+
}, {}, {
|
|
254
|
+
length: number | undefined;
|
|
255
|
+
}>;
|
|
256
|
+
pid: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
257
|
+
name: "pid";
|
|
258
|
+
tableName: "logs";
|
|
259
|
+
dataType: "number";
|
|
260
|
+
columnType: "SQLiteInteger";
|
|
261
|
+
data: number;
|
|
262
|
+
driverParam: number;
|
|
263
|
+
notNull: false;
|
|
264
|
+
hasDefault: false;
|
|
265
|
+
isPrimaryKey: false;
|
|
266
|
+
isAutoincrement: false;
|
|
267
|
+
hasRuntimeDefault: false;
|
|
268
|
+
enumValues: undefined;
|
|
269
|
+
baseColumn: never;
|
|
270
|
+
identity: undefined;
|
|
271
|
+
generated: undefined;
|
|
272
|
+
}, {}, {}>;
|
|
273
|
+
metadata: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
274
|
+
name: "metadata";
|
|
275
|
+
tableName: "logs";
|
|
276
|
+
dataType: "json";
|
|
277
|
+
columnType: "SQLiteTextJson";
|
|
278
|
+
data: unknown;
|
|
279
|
+
driverParam: string;
|
|
280
|
+
notNull: false;
|
|
281
|
+
hasDefault: false;
|
|
282
|
+
isPrimaryKey: false;
|
|
283
|
+
isAutoincrement: false;
|
|
284
|
+
hasRuntimeDefault: false;
|
|
285
|
+
enumValues: undefined;
|
|
286
|
+
baseColumn: never;
|
|
287
|
+
identity: undefined;
|
|
288
|
+
generated: undefined;
|
|
289
|
+
}, {}, {}>;
|
|
290
|
+
errorType: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
291
|
+
name: "error_type";
|
|
292
|
+
tableName: "logs";
|
|
293
|
+
dataType: "string";
|
|
294
|
+
columnType: "SQLiteText";
|
|
295
|
+
data: string;
|
|
296
|
+
driverParam: string;
|
|
297
|
+
notNull: false;
|
|
298
|
+
hasDefault: false;
|
|
299
|
+
isPrimaryKey: false;
|
|
300
|
+
isAutoincrement: false;
|
|
301
|
+
hasRuntimeDefault: false;
|
|
302
|
+
enumValues: [string, ...string[]];
|
|
303
|
+
baseColumn: never;
|
|
304
|
+
identity: undefined;
|
|
305
|
+
generated: undefined;
|
|
306
|
+
}, {}, {
|
|
307
|
+
length: number | undefined;
|
|
308
|
+
}>;
|
|
309
|
+
errorMessage: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
310
|
+
name: "error_message";
|
|
311
|
+
tableName: "logs";
|
|
312
|
+
dataType: "string";
|
|
313
|
+
columnType: "SQLiteText";
|
|
314
|
+
data: string;
|
|
315
|
+
driverParam: string;
|
|
316
|
+
notNull: false;
|
|
317
|
+
hasDefault: false;
|
|
318
|
+
isPrimaryKey: false;
|
|
319
|
+
isAutoincrement: false;
|
|
320
|
+
hasRuntimeDefault: false;
|
|
321
|
+
enumValues: [string, ...string[]];
|
|
322
|
+
baseColumn: never;
|
|
323
|
+
identity: undefined;
|
|
324
|
+
generated: undefined;
|
|
325
|
+
}, {}, {
|
|
326
|
+
length: number | undefined;
|
|
327
|
+
}>;
|
|
328
|
+
errorStack: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
329
|
+
name: "error_stack";
|
|
330
|
+
tableName: "logs";
|
|
331
|
+
dataType: "string";
|
|
332
|
+
columnType: "SQLiteText";
|
|
333
|
+
data: string;
|
|
334
|
+
driverParam: string;
|
|
335
|
+
notNull: false;
|
|
336
|
+
hasDefault: false;
|
|
337
|
+
isPrimaryKey: false;
|
|
338
|
+
isAutoincrement: false;
|
|
339
|
+
hasRuntimeDefault: false;
|
|
340
|
+
enumValues: [string, ...string[]];
|
|
341
|
+
baseColumn: never;
|
|
342
|
+
identity: undefined;
|
|
343
|
+
generated: undefined;
|
|
344
|
+
}, {}, {
|
|
345
|
+
length: number | undefined;
|
|
346
|
+
}>;
|
|
347
|
+
createdAt: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
348
|
+
name: "created_at";
|
|
349
|
+
tableName: "logs";
|
|
350
|
+
dataType: "date";
|
|
351
|
+
columnType: "SQLiteTimestamp";
|
|
352
|
+
data: Date;
|
|
353
|
+
driverParam: number;
|
|
354
|
+
notNull: true;
|
|
355
|
+
hasDefault: true;
|
|
356
|
+
isPrimaryKey: false;
|
|
357
|
+
isAutoincrement: false;
|
|
358
|
+
hasRuntimeDefault: true;
|
|
359
|
+
enumValues: undefined;
|
|
360
|
+
baseColumn: never;
|
|
361
|
+
identity: undefined;
|
|
362
|
+
generated: undefined;
|
|
363
|
+
}, {}, {}>;
|
|
364
|
+
};
|
|
365
|
+
dialect: "sqlite";
|
|
366
|
+
}>;
|
|
367
|
+
/**
|
|
368
|
+
* Type for selecting a log from database
|
|
369
|
+
*/
|
|
370
|
+
type Log = typeof logs$1.$inferSelect;
|
|
371
|
+
/**
|
|
372
|
+
* Type for inserting a log into database
|
|
373
|
+
*/
|
|
374
|
+
type NewLog = typeof logs$1.$inferInsert;
|
|
375
|
+
//#endregion
|
|
376
|
+
//#region src/types/log.types.d.ts
|
|
377
|
+
/**
|
|
378
|
+
* Log entry from database (inferred from Drizzle schema)
|
|
379
|
+
*/
|
|
380
|
+
type LogEntry = Log;
|
|
381
|
+
/**
|
|
382
|
+
* New log entry for insertion (inferred from Drizzle schema)
|
|
383
|
+
*/
|
|
384
|
+
type NewLogEntry = NewLog;
|
|
385
|
+
/**
|
|
386
|
+
* Log level enum
|
|
387
|
+
*/
|
|
388
|
+
declare enum LogLevel {
|
|
389
|
+
TRACE = "trace",
|
|
390
|
+
DEBUG = "debug",
|
|
391
|
+
INFO = "info",
|
|
392
|
+
WARN = "warn",
|
|
393
|
+
ERROR = "error",
|
|
394
|
+
FATAL = "fatal"
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Query filters for log retrieval
|
|
398
|
+
*/
|
|
399
|
+
interface QueryFilters {
|
|
400
|
+
level?: LogLevel | LogLevel[];
|
|
401
|
+
service?: string | string[];
|
|
402
|
+
traceId?: string;
|
|
403
|
+
spanId?: string;
|
|
404
|
+
errorType?: string;
|
|
405
|
+
startTime?: Date;
|
|
406
|
+
endTime?: Date;
|
|
407
|
+
limit?: number;
|
|
408
|
+
offset?: number;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Search options for full-text search
|
|
412
|
+
*/
|
|
413
|
+
interface SearchOptions {
|
|
414
|
+
query: string;
|
|
415
|
+
service?: string | string[];
|
|
416
|
+
level?: LogLevel | LogLevel[];
|
|
417
|
+
startTime?: Date;
|
|
418
|
+
endTime?: Date;
|
|
419
|
+
limit?: number;
|
|
420
|
+
offset?: number;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Log aggregation result
|
|
424
|
+
*/
|
|
425
|
+
interface LogAggregation {
|
|
426
|
+
service: string;
|
|
427
|
+
level: LogLevel;
|
|
428
|
+
count: number;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Trace timeline entry
|
|
432
|
+
*/
|
|
433
|
+
interface TraceTimelineEntry {
|
|
434
|
+
timestamp: Date;
|
|
435
|
+
service: string;
|
|
436
|
+
spanId: string | null;
|
|
437
|
+
parentSpanId?: string | null;
|
|
438
|
+
level: LogLevel;
|
|
439
|
+
message: string;
|
|
440
|
+
duration?: number;
|
|
441
|
+
}
|
|
442
|
+
//#endregion
|
|
443
|
+
//#region src/types/index.d.ts
|
|
444
|
+
/**
|
|
445
|
+
* Tool definition for MCP
|
|
446
|
+
*/
|
|
447
|
+
interface ToolDefinition {
|
|
448
|
+
name: string;
|
|
449
|
+
description: string;
|
|
450
|
+
inputSchema: Record<string, unknown>;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Base tool interface following MCP SDK patterns
|
|
454
|
+
*/
|
|
455
|
+
interface Tool<TInput = unknown> {
|
|
456
|
+
getDefinition(): ToolDefinition;
|
|
457
|
+
getInputSchema(): z.ZodObject<z.ZodRawShape>;
|
|
458
|
+
execute(input: TInput): Promise<CallToolResult>;
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Transport mode types
|
|
462
|
+
*/
|
|
463
|
+
declare enum TransportMode {
|
|
464
|
+
STDIO = "stdio"
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Transport configuration options
|
|
468
|
+
*/
|
|
469
|
+
interface TransportConfig {
|
|
470
|
+
mode: TransportMode;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Base interface for all transport handlers
|
|
474
|
+
*/
|
|
475
|
+
interface TransportHandler {
|
|
476
|
+
start(): Promise<void>;
|
|
477
|
+
stop(): Promise<void>;
|
|
478
|
+
}
|
|
479
|
+
//#endregion
|
|
480
|
+
//#region src/transports/stdio.d.ts
|
|
481
|
+
/**
|
|
482
|
+
* Stdio transport handler for MCP server
|
|
483
|
+
* Used for command-line and direct integrations
|
|
484
|
+
*/
|
|
485
|
+
declare class StdioTransportHandler implements TransportHandler {
|
|
486
|
+
private server;
|
|
487
|
+
private transport;
|
|
488
|
+
constructor(server: Server);
|
|
489
|
+
start(): Promise<void>;
|
|
490
|
+
stop(): Promise<void>;
|
|
491
|
+
}
|
|
492
|
+
//#endregion
|
|
493
|
+
//#region src/utils/resolveLogSinkPort.d.ts
|
|
494
|
+
interface LogSinkPortResult {
|
|
495
|
+
port: number;
|
|
496
|
+
host: string;
|
|
497
|
+
endpoint: string;
|
|
498
|
+
}
|
|
499
|
+
interface ResolveLogSinkPortOptions {
|
|
500
|
+
env?: NodeJS.ProcessEnv;
|
|
501
|
+
workspaceRoot: string;
|
|
502
|
+
healthCheck?: boolean;
|
|
503
|
+
}
|
|
504
|
+
declare function resolveLogSinkPort(options: ResolveLogSinkPortOptions): Promise<LogSinkPortResult | undefined>;
|
|
505
|
+
declare function resolveLogSinkOtelEndpoint(options: ResolveLogSinkPortOptions): Promise<string | undefined>;
|
|
506
|
+
//#endregion
|
|
507
|
+
export { LogAggregation, LogEntry, LogLevel, type LogSinkPortResult, NewLogEntry, type NodeTelemetryHandle, type NodeTelemetryLogOptions, type NodeTelemetryLogger, type NodeTelemetryOptions, QueryFilters, type ResolveLogSinkPortOptions, SearchOptions, StdioTransportHandler, TYPES, type TelemetryLevel, Tool, ToolDefinition, TraceTimelineEntry, TransportConfig, TransportHandler, TransportMode, TypeKey, TypeSymbol, createNodeTelemetry, createServer, getLogSinkOtelEndpoint, logs as log, resolveLogSinkOtelEndpoint, resolveLogSinkPort, trace };
|
|
508
|
+
//# sourceMappingURL=index.d.cts.map
|
package/dist/index.d.mts
ADDED
|
@@ -0,0 +1,508 @@
|
|
|
1
|
+
import { NodeTelemetryHandle, NodeTelemetryLogOptions, NodeTelemetryLogger, NodeTelemetryOptions, TelemetryLevel, createNodeTelemetry, getLogSinkOtelEndpoint, log as logs, trace } from "./telemetry/node.mjs";
|
|
2
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
3
|
+
import { CallToolResult } from "@modelcontextprotocol/sdk/types.js";
|
|
4
|
+
import { z } from "zod";
|
|
5
|
+
import { Container } from "inversify";
|
|
6
|
+
import * as _$drizzle_orm_sqlite_core0 from "drizzle-orm/sqlite-core";
|
|
7
|
+
|
|
8
|
+
//#region src/server/index.d.ts
|
|
9
|
+
declare function createServer(existingContainer?: Container): Server;
|
|
10
|
+
//#endregion
|
|
11
|
+
//#region src/types/container.types.d.ts
|
|
12
|
+
/**
|
|
13
|
+
* Dependency Injection Container Types
|
|
14
|
+
*
|
|
15
|
+
* DESIGN PATTERNS:
|
|
16
|
+
* - Dependency Injection with InversifyJS
|
|
17
|
+
* - Symbol-based service identifiers
|
|
18
|
+
*
|
|
19
|
+
* CODING STANDARDS:
|
|
20
|
+
* - Use symbols for DI identifiers to avoid naming collisions
|
|
21
|
+
* - Group symbols by service category
|
|
22
|
+
* - Export TYPES constant for centralized access
|
|
23
|
+
*
|
|
24
|
+
* AVOID:
|
|
25
|
+
* - String-based identifiers (use symbols)
|
|
26
|
+
* - Hardcoded type values
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* InversifyJS DI symbols for service identification
|
|
30
|
+
*/
|
|
31
|
+
declare const TYPES: {
|
|
32
|
+
readonly LogStorageService: symbol;
|
|
33
|
+
readonly EmbeddingService: symbol;
|
|
34
|
+
readonly LogQueryService: symbol;
|
|
35
|
+
readonly LogSearchService: symbol;
|
|
36
|
+
readonly SemanticSearchService: symbol;
|
|
37
|
+
readonly LogRetentionService: symbol;
|
|
38
|
+
readonly HttpServerHealthCheck: symbol;
|
|
39
|
+
readonly HttpServerManager: symbol;
|
|
40
|
+
readonly Database: symbol;
|
|
41
|
+
readonly Logger: symbol;
|
|
42
|
+
readonly HttpServer: symbol;
|
|
43
|
+
readonly McpServer: symbol;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Type for TYPES constant keys
|
|
47
|
+
*/
|
|
48
|
+
type TypeKey = keyof typeof TYPES;
|
|
49
|
+
/**
|
|
50
|
+
* Type for TYPES constant values
|
|
51
|
+
*/
|
|
52
|
+
type TypeSymbol = (typeof TYPES)[TypeKey];
|
|
53
|
+
//#endregion
|
|
54
|
+
//#region src/models/schema.d.ts
|
|
55
|
+
/**
|
|
56
|
+
* Log Sink Schema
|
|
57
|
+
*
|
|
58
|
+
* DESIGN PATTERNS:
|
|
59
|
+
* - Schema-first design with Drizzle ORM
|
|
60
|
+
* - Type inference from schema definition
|
|
61
|
+
* - FTS5 virtual table for full-text search
|
|
62
|
+
*
|
|
63
|
+
* CODING STANDARDS:
|
|
64
|
+
* - Use text() for string columns (IDs, names, messages)
|
|
65
|
+
* - Use integer() for numeric columns (pids)
|
|
66
|
+
* - Use integer({ mode: 'timestamp' }) for dates
|
|
67
|
+
* - Use text({ mode: 'json' }) for complex objects
|
|
68
|
+
* - Always define primary keys with $defaultFn for ULID generation
|
|
69
|
+
* - Add indexes for foreign keys and frequently queried columns
|
|
70
|
+
* - Table names should be snake_case singular
|
|
71
|
+
*
|
|
72
|
+
* AVOID:
|
|
73
|
+
* - Storing JSON as strings without proper typing
|
|
74
|
+
* - Missing indexes on foreign keys
|
|
75
|
+
* - Nullable primary keys
|
|
76
|
+
* - Using any for column types
|
|
77
|
+
*/
|
|
78
|
+
/**
|
|
79
|
+
* Logs table schema
|
|
80
|
+
*
|
|
81
|
+
* Database table: logs
|
|
82
|
+
*/
|
|
83
|
+
declare const logs$1: _$drizzle_orm_sqlite_core0.SQLiteTableWithColumns<{
|
|
84
|
+
name: "logs";
|
|
85
|
+
schema: undefined;
|
|
86
|
+
columns: {
|
|
87
|
+
id: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
88
|
+
name: "id";
|
|
89
|
+
tableName: "logs";
|
|
90
|
+
dataType: "string";
|
|
91
|
+
columnType: "SQLiteText";
|
|
92
|
+
data: string;
|
|
93
|
+
driverParam: string;
|
|
94
|
+
notNull: true;
|
|
95
|
+
hasDefault: true;
|
|
96
|
+
isPrimaryKey: true;
|
|
97
|
+
isAutoincrement: false;
|
|
98
|
+
hasRuntimeDefault: true;
|
|
99
|
+
enumValues: [string, ...string[]];
|
|
100
|
+
baseColumn: never;
|
|
101
|
+
identity: undefined;
|
|
102
|
+
generated: undefined;
|
|
103
|
+
}, {}, {
|
|
104
|
+
length: number | undefined;
|
|
105
|
+
}>;
|
|
106
|
+
timestamp: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
107
|
+
name: "timestamp";
|
|
108
|
+
tableName: "logs";
|
|
109
|
+
dataType: "date";
|
|
110
|
+
columnType: "SQLiteTimestamp";
|
|
111
|
+
data: Date;
|
|
112
|
+
driverParam: number;
|
|
113
|
+
notNull: true;
|
|
114
|
+
hasDefault: true;
|
|
115
|
+
isPrimaryKey: false;
|
|
116
|
+
isAutoincrement: false;
|
|
117
|
+
hasRuntimeDefault: true;
|
|
118
|
+
enumValues: undefined;
|
|
119
|
+
baseColumn: never;
|
|
120
|
+
identity: undefined;
|
|
121
|
+
generated: undefined;
|
|
122
|
+
}, {}, {}>;
|
|
123
|
+
level: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
124
|
+
name: "level";
|
|
125
|
+
tableName: "logs";
|
|
126
|
+
dataType: "string";
|
|
127
|
+
columnType: "SQLiteText";
|
|
128
|
+
data: string;
|
|
129
|
+
driverParam: string;
|
|
130
|
+
notNull: true;
|
|
131
|
+
hasDefault: false;
|
|
132
|
+
isPrimaryKey: false;
|
|
133
|
+
isAutoincrement: false;
|
|
134
|
+
hasRuntimeDefault: false;
|
|
135
|
+
enumValues: [string, ...string[]];
|
|
136
|
+
baseColumn: never;
|
|
137
|
+
identity: undefined;
|
|
138
|
+
generated: undefined;
|
|
139
|
+
}, {}, {
|
|
140
|
+
length: number | undefined;
|
|
141
|
+
}>;
|
|
142
|
+
message: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
143
|
+
name: "message";
|
|
144
|
+
tableName: "logs";
|
|
145
|
+
dataType: "string";
|
|
146
|
+
columnType: "SQLiteText";
|
|
147
|
+
data: string;
|
|
148
|
+
driverParam: string;
|
|
149
|
+
notNull: true;
|
|
150
|
+
hasDefault: false;
|
|
151
|
+
isPrimaryKey: false;
|
|
152
|
+
isAutoincrement: false;
|
|
153
|
+
hasRuntimeDefault: false;
|
|
154
|
+
enumValues: [string, ...string[]];
|
|
155
|
+
baseColumn: never;
|
|
156
|
+
identity: undefined;
|
|
157
|
+
generated: undefined;
|
|
158
|
+
}, {}, {
|
|
159
|
+
length: number | undefined;
|
|
160
|
+
}>;
|
|
161
|
+
traceId: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
162
|
+
name: "trace_id";
|
|
163
|
+
tableName: "logs";
|
|
164
|
+
dataType: "string";
|
|
165
|
+
columnType: "SQLiteText";
|
|
166
|
+
data: string;
|
|
167
|
+
driverParam: string;
|
|
168
|
+
notNull: false;
|
|
169
|
+
hasDefault: false;
|
|
170
|
+
isPrimaryKey: false;
|
|
171
|
+
isAutoincrement: false;
|
|
172
|
+
hasRuntimeDefault: false;
|
|
173
|
+
enumValues: [string, ...string[]];
|
|
174
|
+
baseColumn: never;
|
|
175
|
+
identity: undefined;
|
|
176
|
+
generated: undefined;
|
|
177
|
+
}, {}, {
|
|
178
|
+
length: number | undefined;
|
|
179
|
+
}>;
|
|
180
|
+
spanId: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
181
|
+
name: "span_id";
|
|
182
|
+
tableName: "logs";
|
|
183
|
+
dataType: "string";
|
|
184
|
+
columnType: "SQLiteText";
|
|
185
|
+
data: string;
|
|
186
|
+
driverParam: string;
|
|
187
|
+
notNull: false;
|
|
188
|
+
hasDefault: false;
|
|
189
|
+
isPrimaryKey: false;
|
|
190
|
+
isAutoincrement: false;
|
|
191
|
+
hasRuntimeDefault: false;
|
|
192
|
+
enumValues: [string, ...string[]];
|
|
193
|
+
baseColumn: never;
|
|
194
|
+
identity: undefined;
|
|
195
|
+
generated: undefined;
|
|
196
|
+
}, {}, {
|
|
197
|
+
length: number | undefined;
|
|
198
|
+
}>;
|
|
199
|
+
parentSpanId: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
200
|
+
name: "parent_span_id";
|
|
201
|
+
tableName: "logs";
|
|
202
|
+
dataType: "string";
|
|
203
|
+
columnType: "SQLiteText";
|
|
204
|
+
data: string;
|
|
205
|
+
driverParam: string;
|
|
206
|
+
notNull: false;
|
|
207
|
+
hasDefault: false;
|
|
208
|
+
isPrimaryKey: false;
|
|
209
|
+
isAutoincrement: false;
|
|
210
|
+
hasRuntimeDefault: false;
|
|
211
|
+
enumValues: [string, ...string[]];
|
|
212
|
+
baseColumn: never;
|
|
213
|
+
identity: undefined;
|
|
214
|
+
generated: undefined;
|
|
215
|
+
}, {}, {
|
|
216
|
+
length: number | undefined;
|
|
217
|
+
}>;
|
|
218
|
+
service: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
219
|
+
name: "service";
|
|
220
|
+
tableName: "logs";
|
|
221
|
+
dataType: "string";
|
|
222
|
+
columnType: "SQLiteText";
|
|
223
|
+
data: string;
|
|
224
|
+
driverParam: string;
|
|
225
|
+
notNull: true;
|
|
226
|
+
hasDefault: false;
|
|
227
|
+
isPrimaryKey: false;
|
|
228
|
+
isAutoincrement: false;
|
|
229
|
+
hasRuntimeDefault: false;
|
|
230
|
+
enumValues: [string, ...string[]];
|
|
231
|
+
baseColumn: never;
|
|
232
|
+
identity: undefined;
|
|
233
|
+
generated: undefined;
|
|
234
|
+
}, {}, {
|
|
235
|
+
length: number | undefined;
|
|
236
|
+
}>;
|
|
237
|
+
hostname: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
238
|
+
name: "hostname";
|
|
239
|
+
tableName: "logs";
|
|
240
|
+
dataType: "string";
|
|
241
|
+
columnType: "SQLiteText";
|
|
242
|
+
data: string;
|
|
243
|
+
driverParam: string;
|
|
244
|
+
notNull: false;
|
|
245
|
+
hasDefault: false;
|
|
246
|
+
isPrimaryKey: false;
|
|
247
|
+
isAutoincrement: false;
|
|
248
|
+
hasRuntimeDefault: false;
|
|
249
|
+
enumValues: [string, ...string[]];
|
|
250
|
+
baseColumn: never;
|
|
251
|
+
identity: undefined;
|
|
252
|
+
generated: undefined;
|
|
253
|
+
}, {}, {
|
|
254
|
+
length: number | undefined;
|
|
255
|
+
}>;
|
|
256
|
+
pid: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
257
|
+
name: "pid";
|
|
258
|
+
tableName: "logs";
|
|
259
|
+
dataType: "number";
|
|
260
|
+
columnType: "SQLiteInteger";
|
|
261
|
+
data: number;
|
|
262
|
+
driverParam: number;
|
|
263
|
+
notNull: false;
|
|
264
|
+
hasDefault: false;
|
|
265
|
+
isPrimaryKey: false;
|
|
266
|
+
isAutoincrement: false;
|
|
267
|
+
hasRuntimeDefault: false;
|
|
268
|
+
enumValues: undefined;
|
|
269
|
+
baseColumn: never;
|
|
270
|
+
identity: undefined;
|
|
271
|
+
generated: undefined;
|
|
272
|
+
}, {}, {}>;
|
|
273
|
+
metadata: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
274
|
+
name: "metadata";
|
|
275
|
+
tableName: "logs";
|
|
276
|
+
dataType: "json";
|
|
277
|
+
columnType: "SQLiteTextJson";
|
|
278
|
+
data: unknown;
|
|
279
|
+
driverParam: string;
|
|
280
|
+
notNull: false;
|
|
281
|
+
hasDefault: false;
|
|
282
|
+
isPrimaryKey: false;
|
|
283
|
+
isAutoincrement: false;
|
|
284
|
+
hasRuntimeDefault: false;
|
|
285
|
+
enumValues: undefined;
|
|
286
|
+
baseColumn: never;
|
|
287
|
+
identity: undefined;
|
|
288
|
+
generated: undefined;
|
|
289
|
+
}, {}, {}>;
|
|
290
|
+
errorType: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
291
|
+
name: "error_type";
|
|
292
|
+
tableName: "logs";
|
|
293
|
+
dataType: "string";
|
|
294
|
+
columnType: "SQLiteText";
|
|
295
|
+
data: string;
|
|
296
|
+
driverParam: string;
|
|
297
|
+
notNull: false;
|
|
298
|
+
hasDefault: false;
|
|
299
|
+
isPrimaryKey: false;
|
|
300
|
+
isAutoincrement: false;
|
|
301
|
+
hasRuntimeDefault: false;
|
|
302
|
+
enumValues: [string, ...string[]];
|
|
303
|
+
baseColumn: never;
|
|
304
|
+
identity: undefined;
|
|
305
|
+
generated: undefined;
|
|
306
|
+
}, {}, {
|
|
307
|
+
length: number | undefined;
|
|
308
|
+
}>;
|
|
309
|
+
errorMessage: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
310
|
+
name: "error_message";
|
|
311
|
+
tableName: "logs";
|
|
312
|
+
dataType: "string";
|
|
313
|
+
columnType: "SQLiteText";
|
|
314
|
+
data: string;
|
|
315
|
+
driverParam: string;
|
|
316
|
+
notNull: false;
|
|
317
|
+
hasDefault: false;
|
|
318
|
+
isPrimaryKey: false;
|
|
319
|
+
isAutoincrement: false;
|
|
320
|
+
hasRuntimeDefault: false;
|
|
321
|
+
enumValues: [string, ...string[]];
|
|
322
|
+
baseColumn: never;
|
|
323
|
+
identity: undefined;
|
|
324
|
+
generated: undefined;
|
|
325
|
+
}, {}, {
|
|
326
|
+
length: number | undefined;
|
|
327
|
+
}>;
|
|
328
|
+
errorStack: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
329
|
+
name: "error_stack";
|
|
330
|
+
tableName: "logs";
|
|
331
|
+
dataType: "string";
|
|
332
|
+
columnType: "SQLiteText";
|
|
333
|
+
data: string;
|
|
334
|
+
driverParam: string;
|
|
335
|
+
notNull: false;
|
|
336
|
+
hasDefault: false;
|
|
337
|
+
isPrimaryKey: false;
|
|
338
|
+
isAutoincrement: false;
|
|
339
|
+
hasRuntimeDefault: false;
|
|
340
|
+
enumValues: [string, ...string[]];
|
|
341
|
+
baseColumn: never;
|
|
342
|
+
identity: undefined;
|
|
343
|
+
generated: undefined;
|
|
344
|
+
}, {}, {
|
|
345
|
+
length: number | undefined;
|
|
346
|
+
}>;
|
|
347
|
+
createdAt: _$drizzle_orm_sqlite_core0.SQLiteColumn<{
|
|
348
|
+
name: "created_at";
|
|
349
|
+
tableName: "logs";
|
|
350
|
+
dataType: "date";
|
|
351
|
+
columnType: "SQLiteTimestamp";
|
|
352
|
+
data: Date;
|
|
353
|
+
driverParam: number;
|
|
354
|
+
notNull: true;
|
|
355
|
+
hasDefault: true;
|
|
356
|
+
isPrimaryKey: false;
|
|
357
|
+
isAutoincrement: false;
|
|
358
|
+
hasRuntimeDefault: true;
|
|
359
|
+
enumValues: undefined;
|
|
360
|
+
baseColumn: never;
|
|
361
|
+
identity: undefined;
|
|
362
|
+
generated: undefined;
|
|
363
|
+
}, {}, {}>;
|
|
364
|
+
};
|
|
365
|
+
dialect: "sqlite";
|
|
366
|
+
}>;
|
|
367
|
+
/**
|
|
368
|
+
* Type for selecting a log from database
|
|
369
|
+
*/
|
|
370
|
+
type Log = typeof logs$1.$inferSelect;
|
|
371
|
+
/**
|
|
372
|
+
* Type for inserting a log into database
|
|
373
|
+
*/
|
|
374
|
+
type NewLog = typeof logs$1.$inferInsert;
|
|
375
|
+
//#endregion
|
|
376
|
+
//#region src/types/log.types.d.ts
|
|
377
|
+
/**
|
|
378
|
+
* Log entry from database (inferred from Drizzle schema)
|
|
379
|
+
*/
|
|
380
|
+
type LogEntry = Log;
|
|
381
|
+
/**
|
|
382
|
+
* New log entry for insertion (inferred from Drizzle schema)
|
|
383
|
+
*/
|
|
384
|
+
type NewLogEntry = NewLog;
|
|
385
|
+
/**
|
|
386
|
+
* Log level enum
|
|
387
|
+
*/
|
|
388
|
+
declare enum LogLevel {
|
|
389
|
+
TRACE = "trace",
|
|
390
|
+
DEBUG = "debug",
|
|
391
|
+
INFO = "info",
|
|
392
|
+
WARN = "warn",
|
|
393
|
+
ERROR = "error",
|
|
394
|
+
FATAL = "fatal"
|
|
395
|
+
}
|
|
396
|
+
/**
|
|
397
|
+
* Query filters for log retrieval
|
|
398
|
+
*/
|
|
399
|
+
interface QueryFilters {
|
|
400
|
+
level?: LogLevel | LogLevel[];
|
|
401
|
+
service?: string | string[];
|
|
402
|
+
traceId?: string;
|
|
403
|
+
spanId?: string;
|
|
404
|
+
errorType?: string;
|
|
405
|
+
startTime?: Date;
|
|
406
|
+
endTime?: Date;
|
|
407
|
+
limit?: number;
|
|
408
|
+
offset?: number;
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* Search options for full-text search
|
|
412
|
+
*/
|
|
413
|
+
interface SearchOptions {
|
|
414
|
+
query: string;
|
|
415
|
+
service?: string | string[];
|
|
416
|
+
level?: LogLevel | LogLevel[];
|
|
417
|
+
startTime?: Date;
|
|
418
|
+
endTime?: Date;
|
|
419
|
+
limit?: number;
|
|
420
|
+
offset?: number;
|
|
421
|
+
}
|
|
422
|
+
/**
|
|
423
|
+
* Log aggregation result
|
|
424
|
+
*/
|
|
425
|
+
interface LogAggregation {
|
|
426
|
+
service: string;
|
|
427
|
+
level: LogLevel;
|
|
428
|
+
count: number;
|
|
429
|
+
}
|
|
430
|
+
/**
|
|
431
|
+
* Trace timeline entry
|
|
432
|
+
*/
|
|
433
|
+
interface TraceTimelineEntry {
|
|
434
|
+
timestamp: Date;
|
|
435
|
+
service: string;
|
|
436
|
+
spanId: string | null;
|
|
437
|
+
parentSpanId?: string | null;
|
|
438
|
+
level: LogLevel;
|
|
439
|
+
message: string;
|
|
440
|
+
duration?: number;
|
|
441
|
+
}
|
|
442
|
+
//#endregion
|
|
443
|
+
//#region src/types/index.d.ts
|
|
444
|
+
/**
|
|
445
|
+
* Tool definition for MCP
|
|
446
|
+
*/
|
|
447
|
+
interface ToolDefinition {
|
|
448
|
+
name: string;
|
|
449
|
+
description: string;
|
|
450
|
+
inputSchema: Record<string, unknown>;
|
|
451
|
+
}
|
|
452
|
+
/**
|
|
453
|
+
* Base tool interface following MCP SDK patterns
|
|
454
|
+
*/
|
|
455
|
+
interface Tool<TInput = unknown> {
|
|
456
|
+
getDefinition(): ToolDefinition;
|
|
457
|
+
getInputSchema(): z.ZodObject<z.ZodRawShape>;
|
|
458
|
+
execute(input: TInput): Promise<CallToolResult>;
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* Transport mode types
|
|
462
|
+
*/
|
|
463
|
+
declare enum TransportMode {
|
|
464
|
+
STDIO = "stdio"
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Transport configuration options
|
|
468
|
+
*/
|
|
469
|
+
interface TransportConfig {
|
|
470
|
+
mode: TransportMode;
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
473
|
+
* Base interface for all transport handlers
|
|
474
|
+
*/
|
|
475
|
+
interface TransportHandler {
|
|
476
|
+
start(): Promise<void>;
|
|
477
|
+
stop(): Promise<void>;
|
|
478
|
+
}
|
|
479
|
+
//#endregion
|
|
480
|
+
//#region src/transports/stdio.d.ts
|
|
481
|
+
/**
|
|
482
|
+
* Stdio transport handler for MCP server
|
|
483
|
+
* Used for command-line and direct integrations
|
|
484
|
+
*/
|
|
485
|
+
declare class StdioTransportHandler implements TransportHandler {
|
|
486
|
+
private server;
|
|
487
|
+
private transport;
|
|
488
|
+
constructor(server: Server);
|
|
489
|
+
start(): Promise<void>;
|
|
490
|
+
stop(): Promise<void>;
|
|
491
|
+
}
|
|
492
|
+
//#endregion
|
|
493
|
+
//#region src/utils/resolveLogSinkPort.d.ts
|
|
494
|
+
interface LogSinkPortResult {
|
|
495
|
+
port: number;
|
|
496
|
+
host: string;
|
|
497
|
+
endpoint: string;
|
|
498
|
+
}
|
|
499
|
+
interface ResolveLogSinkPortOptions {
|
|
500
|
+
env?: NodeJS.ProcessEnv;
|
|
501
|
+
workspaceRoot: string;
|
|
502
|
+
healthCheck?: boolean;
|
|
503
|
+
}
|
|
504
|
+
declare function resolveLogSinkPort(options: ResolveLogSinkPortOptions): Promise<LogSinkPortResult | undefined>;
|
|
505
|
+
declare function resolveLogSinkOtelEndpoint(options: ResolveLogSinkPortOptions): Promise<string | undefined>;
|
|
506
|
+
//#endregion
|
|
507
|
+
export { LogAggregation, LogEntry, LogLevel, type LogSinkPortResult, NewLogEntry, type NodeTelemetryHandle, type NodeTelemetryLogOptions, type NodeTelemetryLogger, type NodeTelemetryOptions, QueryFilters, type ResolveLogSinkPortOptions, SearchOptions, StdioTransportHandler, TYPES, type TelemetryLevel, Tool, ToolDefinition, TraceTimelineEntry, TransportConfig, TransportHandler, TransportMode, TypeKey, TypeSymbol, createNodeTelemetry, createServer, getLogSinkOtelEndpoint, logs as log, resolveLogSinkOtelEndpoint, resolveLogSinkPort, trace };
|
|
508
|
+
//# sourceMappingURL=index.d.mts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Attributes, Context, trace } from "@opentelemetry/api";
|
|
2
|
+
import { logs } from "@opentelemetry/api-logs";
|
|
3
|
+
|
|
4
|
+
//#region src/telemetry/node.d.ts
|
|
5
|
+
type TelemetryLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
6
|
+
interface NodeTelemetryLogOptions {
|
|
7
|
+
attributes?: Attributes;
|
|
8
|
+
context?: Context;
|
|
9
|
+
exception?: unknown;
|
|
10
|
+
}
|
|
11
|
+
interface NodeTelemetryLogger {
|
|
12
|
+
trace(message: string, options?: NodeTelemetryLogOptions): void;
|
|
13
|
+
debug(message: string, options?: NodeTelemetryLogOptions): void;
|
|
14
|
+
info(message: string, options?: NodeTelemetryLogOptions): void;
|
|
15
|
+
warn(message: string, options?: NodeTelemetryLogOptions): void;
|
|
16
|
+
error(message: string, options?: NodeTelemetryLogOptions): void;
|
|
17
|
+
fatal(message: string, options?: NodeTelemetryLogOptions): void;
|
|
18
|
+
getTraceContext(): {
|
|
19
|
+
traceId?: string;
|
|
20
|
+
spanId?: string;
|
|
21
|
+
};
|
|
22
|
+
flush(): Promise<void>;
|
|
23
|
+
shutdown(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
interface NodeTelemetryOptions {
|
|
26
|
+
env?: NodeJS.ProcessEnv;
|
|
27
|
+
serviceName: string;
|
|
28
|
+
serviceVersion?: string;
|
|
29
|
+
workspaceRoot?: string;
|
|
30
|
+
enableTraces?: boolean;
|
|
31
|
+
enableLogs?: boolean;
|
|
32
|
+
logDir?: string;
|
|
33
|
+
logFileName?: string;
|
|
34
|
+
maxFileSizeBytes?: number;
|
|
35
|
+
maxFileCount?: number;
|
|
36
|
+
}
|
|
37
|
+
interface NodeTelemetryHandle {
|
|
38
|
+
backend: 'logsink' | 'file';
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
trace: typeof trace;
|
|
41
|
+
log: typeof logs;
|
|
42
|
+
logger: NodeTelemetryLogger;
|
|
43
|
+
endpoint?: string;
|
|
44
|
+
filePath?: string;
|
|
45
|
+
flush(): Promise<void>;
|
|
46
|
+
shutdown(): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
declare function getLogSinkOtelEndpoint(options: {
|
|
49
|
+
env?: NodeJS.ProcessEnv;
|
|
50
|
+
workspaceRoot: string;
|
|
51
|
+
healthCheck?: boolean;
|
|
52
|
+
}): Promise<string | undefined>;
|
|
53
|
+
declare function createNodeTelemetry(options: NodeTelemetryOptions): Promise<NodeTelemetryHandle>;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { NodeTelemetryHandle, NodeTelemetryLogOptions, NodeTelemetryLogger, NodeTelemetryOptions, TelemetryLevel, createNodeTelemetry, getLogSinkOtelEndpoint, logs as log, trace };
|
|
56
|
+
//# sourceMappingURL=node.d.cts.map
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Attributes, Context, trace } from "@opentelemetry/api";
|
|
2
|
+
import { logs } from "@opentelemetry/api-logs";
|
|
3
|
+
|
|
4
|
+
//#region src/telemetry/node.d.ts
|
|
5
|
+
type TelemetryLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal';
|
|
6
|
+
interface NodeTelemetryLogOptions {
|
|
7
|
+
attributes?: Attributes;
|
|
8
|
+
context?: Context;
|
|
9
|
+
exception?: unknown;
|
|
10
|
+
}
|
|
11
|
+
interface NodeTelemetryLogger {
|
|
12
|
+
trace(message: string, options?: NodeTelemetryLogOptions): void;
|
|
13
|
+
debug(message: string, options?: NodeTelemetryLogOptions): void;
|
|
14
|
+
info(message: string, options?: NodeTelemetryLogOptions): void;
|
|
15
|
+
warn(message: string, options?: NodeTelemetryLogOptions): void;
|
|
16
|
+
error(message: string, options?: NodeTelemetryLogOptions): void;
|
|
17
|
+
fatal(message: string, options?: NodeTelemetryLogOptions): void;
|
|
18
|
+
getTraceContext(): {
|
|
19
|
+
traceId?: string;
|
|
20
|
+
spanId?: string;
|
|
21
|
+
};
|
|
22
|
+
flush(): Promise<void>;
|
|
23
|
+
shutdown(): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
interface NodeTelemetryOptions {
|
|
26
|
+
env?: NodeJS.ProcessEnv;
|
|
27
|
+
serviceName: string;
|
|
28
|
+
serviceVersion?: string;
|
|
29
|
+
workspaceRoot?: string;
|
|
30
|
+
enableTraces?: boolean;
|
|
31
|
+
enableLogs?: boolean;
|
|
32
|
+
logDir?: string;
|
|
33
|
+
logFileName?: string;
|
|
34
|
+
maxFileSizeBytes?: number;
|
|
35
|
+
maxFileCount?: number;
|
|
36
|
+
}
|
|
37
|
+
interface NodeTelemetryHandle {
|
|
38
|
+
backend: 'logsink' | 'file';
|
|
39
|
+
enabled: boolean;
|
|
40
|
+
trace: typeof trace;
|
|
41
|
+
log: typeof logs;
|
|
42
|
+
logger: NodeTelemetryLogger;
|
|
43
|
+
endpoint?: string;
|
|
44
|
+
filePath?: string;
|
|
45
|
+
flush(): Promise<void>;
|
|
46
|
+
shutdown(): Promise<void>;
|
|
47
|
+
}
|
|
48
|
+
declare function getLogSinkOtelEndpoint(options: {
|
|
49
|
+
env?: NodeJS.ProcessEnv;
|
|
50
|
+
workspaceRoot: string;
|
|
51
|
+
healthCheck?: boolean;
|
|
52
|
+
}): Promise<string | undefined>;
|
|
53
|
+
declare function createNodeTelemetry(options: NodeTelemetryOptions): Promise<NodeTelemetryHandle>;
|
|
54
|
+
//#endregion
|
|
55
|
+
export { NodeTelemetryHandle, NodeTelemetryLogOptions, NodeTelemetryLogger, NodeTelemetryOptions, TelemetryLevel, createNodeTelemetry, getLogSinkOtelEndpoint, logs as log, trace };
|
|
56
|
+
//# sourceMappingURL=node.d.mts.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agimon-ai/log-sink-mcp",
|
|
3
3
|
"description": "Log sink MCP server with HTTP ingestion and AI analysis",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.2",
|
|
5
5
|
"license": "BUSL-1.1",
|
|
6
6
|
"keywords": [
|
|
7
7
|
"mcp",
|
|
@@ -41,9 +41,9 @@
|
|
|
41
41
|
"sqlite-vec": "0.1.9",
|
|
42
42
|
"ulidx": "2.4.1",
|
|
43
43
|
"zod": "4.3.6",
|
|
44
|
-
"@agimon-ai/foundation-
|
|
45
|
-
"@agimon-ai/foundation-
|
|
46
|
-
"@agimon-ai/foundation-port-registry": "0.8.
|
|
44
|
+
"@agimon-ai/foundation-process-registry": "0.8.2",
|
|
45
|
+
"@agimon-ai/foundation-validator": "0.5.2",
|
|
46
|
+
"@agimon-ai/foundation-port-registry": "0.8.2"
|
|
47
47
|
},
|
|
48
48
|
"devDependencies": {
|
|
49
49
|
"@types/bun": "1.3.11",
|