@inso_web/els-mcp 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.
- package/README.md +482 -0
- package/dist/audit/prisma.d.ts +67 -0
- package/dist/audit/prisma.d.ts.map +1 -0
- package/dist/audit/prisma.js +65 -0
- package/dist/audit/prisma.js.map +1 -0
- package/dist/audit/service.d.ts +72 -0
- package/dist/audit/service.d.ts.map +1 -0
- package/dist/audit/service.js +137 -0
- package/dist/audit/service.js.map +1 -0
- package/dist/billing/limits.d.ts +34 -0
- package/dist/billing/limits.d.ts.map +1 -0
- package/dist/billing/limits.js +51 -0
- package/dist/billing/limits.js.map +1 -0
- package/dist/billing/tracker.d.ts +39 -0
- package/dist/billing/tracker.d.ts.map +1 -0
- package/dist/billing/tracker.js +92 -0
- package/dist/billing/tracker.js.map +1 -0
- package/dist/cache/cachedElsClient.d.ts +71 -0
- package/dist/cache/cachedElsClient.d.ts.map +1 -0
- package/dist/cache/cachedElsClient.js +167 -0
- package/dist/cache/cachedElsClient.js.map +1 -0
- package/dist/cache/index.d.ts +10 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/policies.d.ts +60 -0
- package/dist/cache/policies.d.ts.map +1 -0
- package/dist/cache/policies.js +90 -0
- package/dist/cache/policies.js.map +1 -0
- package/dist/cache/redis.d.ts +52 -0
- package/dist/cache/redis.d.ts.map +1 -0
- package/dist/cache/redis.js +134 -0
- package/dist/cache/redis.js.map +1 -0
- package/dist/cache/types.d.ts +32 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/cache/types.js +32 -0
- package/dist/cache/types.js.map +1 -0
- package/dist/cache/wrapper.d.ts +38 -0
- package/dist/cache/wrapper.d.ts.map +1 -0
- package/dist/cache/wrapper.js +109 -0
- package/dist/cache/wrapper.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +86 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +105 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +211 -0
- package/dist/config.js.map +1 -0
- package/dist/elsClient.d.ts +137 -0
- package/dist/elsClient.d.ts.map +1 -0
- package/dist/elsClient.js +285 -0
- package/dist/elsClient.js.map +1 -0
- package/dist/http/app.d.ts +40 -0
- package/dist/http/app.d.ts.map +1 -0
- package/dist/http/app.js +135 -0
- package/dist/http/app.js.map +1 -0
- package/dist/http/jwks.d.ts +8 -0
- package/dist/http/jwks.d.ts.map +1 -0
- package/dist/http/jwks.js +34 -0
- package/dist/http/jwks.js.map +1 -0
- package/dist/http/middleware/auth.d.ts +11 -0
- package/dist/http/middleware/auth.d.ts.map +1 -0
- package/dist/http/middleware/auth.js +225 -0
- package/dist/http/middleware/auth.js.map +1 -0
- package/dist/http/middleware/dcrRateLimit.d.ts +29 -0
- package/dist/http/middleware/dcrRateLimit.d.ts.map +1 -0
- package/dist/http/middleware/dcrRateLimit.js +59 -0
- package/dist/http/middleware/dcrRateLimit.js.map +1 -0
- package/dist/http/middleware/errorHandler.d.ts +12 -0
- package/dist/http/middleware/errorHandler.d.ts.map +1 -0
- package/dist/http/middleware/errorHandler.js +26 -0
- package/dist/http/middleware/errorHandler.js.map +1 -0
- package/dist/http/middleware/originGuard.d.ts +28 -0
- package/dist/http/middleware/originGuard.d.ts.map +1 -0
- package/dist/http/middleware/originGuard.js +55 -0
- package/dist/http/middleware/originGuard.js.map +1 -0
- package/dist/http/middleware/requestId.d.ts +19 -0
- package/dist/http/middleware/requestId.d.ts.map +1 -0
- package/dist/http/middleware/requestId.js +23 -0
- package/dist/http/middleware/requestId.js.map +1 -0
- package/dist/http/routes/health.d.ts +24 -0
- package/dist/http/routes/health.d.ts.map +1 -0
- package/dist/http/routes/health.js +73 -0
- package/dist/http/routes/health.js.map +1 -0
- package/dist/http/routes/metrics.d.ts +18 -0
- package/dist/http/routes/metrics.d.ts.map +1 -0
- package/dist/http/routes/metrics.js +42 -0
- package/dist/http/routes/metrics.js.map +1 -0
- package/dist/http/routes/wellKnown.d.ts +15 -0
- package/dist/http/routes/wellKnown.d.ts.map +1 -0
- package/dist/http/routes/wellKnown.js +43 -0
- package/dist/http/routes/wellKnown.js.map +1 -0
- package/dist/http/types.d.ts +40 -0
- package/dist/http/types.d.ts.map +1 -0
- package/dist/http/types.js +9 -0
- package/dist/http/types.js.map +1 -0
- package/dist/instrumentation.d.ts +22 -0
- package/dist/instrumentation.d.ts.map +1 -0
- package/dist/instrumentation.js +38 -0
- package/dist/instrumentation.js.map +1 -0
- package/dist/lib/cursor.d.ts +22 -0
- package/dist/lib/cursor.d.ts.map +1 -0
- package/dist/lib/cursor.js +95 -0
- package/dist/lib/cursor.js.map +1 -0
- package/dist/lib/errors.d.ts +49 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +83 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/responseFormat.d.ts +14 -0
- package/dist/lib/responseFormat.d.ts.map +1 -0
- package/dist/lib/responseFormat.js +74 -0
- package/dist/lib/responseFormat.js.map +1 -0
- package/dist/middleware/withMiddleware.d.ts +53 -0
- package/dist/middleware/withMiddleware.d.ts.map +1 -0
- package/dist/middleware/withMiddleware.js +190 -0
- package/dist/middleware/withMiddleware.js.map +1 -0
- package/dist/observability/health.d.ts +51 -0
- package/dist/observability/health.d.ts.map +1 -0
- package/dist/observability/health.js +77 -0
- package/dist/observability/health.js.map +1 -0
- package/dist/observability/index.d.ts +8 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +5 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/logger.d.ts +45 -0
- package/dist/observability/logger.d.ts.map +1 -0
- package/dist/observability/logger.js +75 -0
- package/dist/observability/logger.js.map +1 -0
- package/dist/observability/metrics.d.ts +49 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +184 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/tracing.d.ts +28 -0
- package/dist/observability/tracing.d.ts.map +1 -0
- package/dist/observability/tracing.js +56 -0
- package/dist/observability/tracing.js.map +1 -0
- package/dist/prompts/index.d.ts +20 -0
- package/dist/prompts/index.d.ts.map +1 -0
- package/dist/prompts/index.js +202 -0
- package/dist/prompts/index.js.map +1 -0
- package/dist/redaction/argsRedactor.d.ts +22 -0
- package/dist/redaction/argsRedactor.d.ts.map +1 -0
- package/dist/redaction/argsRedactor.js +97 -0
- package/dist/redaction/argsRedactor.js.map +1 -0
- package/dist/redaction/fields.d.ts +64 -0
- package/dist/redaction/fields.d.ts.map +1 -0
- package/dist/redaction/fields.js +155 -0
- package/dist/redaction/fields.js.map +1 -0
- package/dist/redaction/index.d.ts +52 -0
- package/dist/redaction/index.d.ts.map +1 -0
- package/dist/redaction/index.js +160 -0
- package/dist/redaction/index.js.map +1 -0
- package/dist/redaction/promptInjection.d.ts +32 -0
- package/dist/redaction/promptInjection.d.ts.map +1 -0
- package/dist/redaction/promptInjection.js +68 -0
- package/dist/redaction/promptInjection.js.map +1 -0
- package/dist/redaction/url.d.ts +8 -0
- package/dist/redaction/url.d.ts.map +1 -0
- package/dist/redaction/url.js +26 -0
- package/dist/redaction/url.js.map +1 -0
- package/dist/redaction/userAgent.d.ts +9 -0
- package/dist/redaction/userAgent.d.ts.map +1 -0
- package/dist/redaction/userAgent.js +39 -0
- package/dist/redaction/userAgent.js.map +1 -0
- package/dist/resources/index.d.ts +24 -0
- package/dist/resources/index.d.ts.map +1 -0
- package/dist/resources/index.js +150 -0
- package/dist/resources/index.js.map +1 -0
- package/dist/server.d.ts +37 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +35 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/baselineCompare.d.ts +36 -0
- package/dist/tools/baselineCompare.d.ts.map +1 -0
- package/dist/tools/baselineCompare.js +69 -0
- package/dist/tools/baselineCompare.js.map +1 -0
- package/dist/tools/errorHeatmap.d.ts +40 -0
- package/dist/tools/errorHeatmap.d.ts.map +1 -0
- package/dist/tools/errorHeatmap.js +69 -0
- package/dist/tools/errorHeatmap.js.map +1 -0
- package/dist/tools/errorHistogram.d.ts +39 -0
- package/dist/tools/errorHistogram.d.ts.map +1 -0
- package/dist/tools/errorHistogram.js +61 -0
- package/dist/tools/errorHistogram.js.map +1 -0
- package/dist/tools/errorStatsBreakdown.d.ts +43 -0
- package/dist/tools/errorStatsBreakdown.d.ts.map +1 -0
- package/dist/tools/errorStatsBreakdown.js +77 -0
- package/dist/tools/errorStatsBreakdown.js.map +1 -0
- package/dist/tools/errorsInSession.d.ts +44 -0
- package/dist/tools/errorsInSession.d.ts.map +1 -0
- package/dist/tools/errorsInSession.js +91 -0
- package/dist/tools/errorsInSession.js.map +1 -0
- package/dist/tools/explainError.d.ts +35 -0
- package/dist/tools/explainError.d.ts.map +1 -0
- package/dist/tools/explainError.js +98 -0
- package/dist/tools/explainError.js.map +1 -0
- package/dist/tools/findCorrelatedErrors.d.ts +43 -0
- package/dist/tools/findCorrelatedErrors.d.ts.map +1 -0
- package/dist/tools/findCorrelatedErrors.js +59 -0
- package/dist/tools/findCorrelatedErrors.js.map +1 -0
- package/dist/tools/findSimilarErrors.d.ts +44 -0
- package/dist/tools/findSimilarErrors.d.ts.map +1 -0
- package/dist/tools/findSimilarErrors.js +59 -0
- package/dist/tools/findSimilarErrors.js.map +1 -0
- package/dist/tools/getLogDetails.d.ts +30 -0
- package/dist/tools/getLogDetails.d.ts.map +1 -0
- package/dist/tools/getLogDetails.js +49 -0
- package/dist/tools/getLogDetails.js.map +1 -0
- package/dist/tools/groupedErrors.d.ts +46 -0
- package/dist/tools/groupedErrors.d.ts.map +1 -0
- package/dist/tools/groupedErrors.js +71 -0
- package/dist/tools/groupedErrors.js.map +1 -0
- package/dist/tools/impactAnalysis.d.ts +42 -0
- package/dist/tools/impactAnalysis.d.ts.map +1 -0
- package/dist/tools/impactAnalysis.js +61 -0
- package/dist/tools/impactAnalysis.js.map +1 -0
- package/dist/tools/index.d.ts +41 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +83 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/listApps.d.ts +27 -0
- package/dist/tools/listApps.d.ts.map +1 -0
- package/dist/tools/listApps.js +78 -0
- package/dist/tools/listApps.js.map +1 -0
- package/dist/tools/queryLogsJql.d.ts +44 -0
- package/dist/tools/queryLogsJql.d.ts.map +1 -0
- package/dist/tools/queryLogsJql.js +107 -0
- package/dist/tools/queryLogsJql.js.map +1 -0
- package/dist/tools/searchLogs.d.ts +60 -0
- package/dist/tools/searchLogs.d.ts.map +1 -0
- package/dist/tools/searchLogs.js +127 -0
- package/dist/tools/searchLogs.js.map +1 -0
- package/dist/tools/topErrorMessages.d.ts +42 -0
- package/dist/tools/topErrorMessages.d.ts.map +1 -0
- package/dist/tools/topErrorMessages.js +63 -0
- package/dist/tools/topErrorMessages.js.map +1 -0
- package/dist/tools/trafficStats.d.ts +39 -0
- package/dist/tools/trafficStats.d.ts.map +1 -0
- package/dist/tools/trafficStats.js +57 -0
- package/dist/tools/trafficStats.js.map +1 -0
- package/dist/tools/triageRecentCritical.d.ts +26 -0
- package/dist/tools/triageRecentCritical.d.ts.map +1 -0
- package/dist/tools/triageRecentCritical.js +81 -0
- package/dist/tools/triageRecentCritical.js.map +1 -0
- package/dist/tools/versionRegression.d.ts +29 -0
- package/dist/tools/versionRegression.d.ts.map +1 -0
- package/dist/tools/versionRegression.js +80 -0
- package/dist/tools/versionRegression.js.map +1 -0
- package/dist/transports/http-server.d.ts +25 -0
- package/dist/transports/http-server.d.ts.map +1 -0
- package/dist/transports/http-server.js +84 -0
- package/dist/transports/http-server.js.map +1 -0
- package/dist/transports/http.d.ts +71 -0
- package/dist/transports/http.d.ts.map +1 -0
- package/dist/transports/http.js +315 -0
- package/dist/transports/http.js.map +1 -0
- package/dist/transports/stdio.d.ts +13 -0
- package/dist/transports/stdio.d.ts.map +1 -0
- package/dist/transports/stdio.js +16 -0
- package/dist/transports/stdio.js.map +1 -0
- package/dist/types.d.ts +150 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +95 -0
package/dist/server.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
2
|
+
import pino from 'pino';
|
|
3
|
+
import { ElsClient } from './elsClient.js';
|
|
4
|
+
import { registerTools } from './tools/index.js';
|
|
5
|
+
import { registerResources } from './resources/index.js';
|
|
6
|
+
import { registerPrompts } from './prompts/index.js';
|
|
7
|
+
export function createMcpServer(opts) {
|
|
8
|
+
const log = opts.log ??
|
|
9
|
+
pino({ level: opts.config.logLevel, name: 'els-mcp' }, pino.destination({ dest: 2, sync: false }));
|
|
10
|
+
const client = opts.client ??
|
|
11
|
+
new ElsClient({
|
|
12
|
+
baseUrl: opts.config.elsBaseUrl,
|
|
13
|
+
apiKey: opts.config.elsApiKey,
|
|
14
|
+
timeoutMs: opts.config.upstreamTimeoutMs,
|
|
15
|
+
log,
|
|
16
|
+
});
|
|
17
|
+
const server = new McpServer({ name: 'els-mcp', version: '0.1.0-alpha.0' }, { capabilities: { tools: {}, resources: {}, prompts: {} } });
|
|
18
|
+
const registeredTools = registerTools(server, {
|
|
19
|
+
client,
|
|
20
|
+
disabled: opts.config.disabledTools,
|
|
21
|
+
log,
|
|
22
|
+
...(opts.contextProvider ? { contextProvider: opts.contextProvider } : {}),
|
|
23
|
+
...(opts.middleware ? { middleware: opts.middleware } : {}),
|
|
24
|
+
});
|
|
25
|
+
const registeredResources = registerResources(server, { client, log });
|
|
26
|
+
const registeredPrompts = registerPrompts(server, { log });
|
|
27
|
+
log.info({
|
|
28
|
+
tools: registeredTools,
|
|
29
|
+
resources: registeredResources,
|
|
30
|
+
prompts: registeredPrompts,
|
|
31
|
+
baseUrl: opts.config.elsBaseUrl,
|
|
32
|
+
}, 'MCP server initialized');
|
|
33
|
+
return { server, client, log, registeredTools, registeredResources, registeredPrompts };
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=server.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,IAAqB,MAAM,MAAM,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAoCrD,MAAM,UAAU,eAAe,CAAC,IAA4B;IAC1D,MAAM,GAAG,GACP,IAAI,CAAC,GAAG;QACR,IAAI,CACF,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE,EAChD,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAC3C,CAAC;IAEJ,MAAM,MAAM,GACV,IAAI,CAAC,MAAM;QACX,IAAI,SAAS,CAAC;YACZ,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;YAC/B,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAC7B,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,iBAAiB;YACxC,GAAG;SACJ,CAAC,CAAC;IAEL,MAAM,MAAM,GAAG,IAAI,SAAS,CAC1B,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,EAAE,EAC7C,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAC5D,CAAC;IAEF,MAAM,eAAe,GAAG,aAAa,CAAC,MAAM,EAAE;QAC5C,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa;QACnC,GAAG;QACH,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC5D,CAAC,CAAC;IAEH,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC;IACvE,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;IAE3D,GAAG,CAAC,IAAI,CACN;QACE,KAAK,EAAE,eAAe;QACtB,SAAS,EAAE,mBAAmB;QAC9B,OAAO,EAAE,iBAAiB;QAC1B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU;KAChC,EACD,wBAAwB,CACzB,CAAC;IAEF,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AAC1F,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ElsClient } from '../elsClient.js';
|
|
3
|
+
import type { ToolResult } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Tool: baseline_compare
|
|
6
|
+
* Mapping: GET /analytics/baseline → analytics.routes.ts:358
|
|
7
|
+
* Upstream Zod: BaselineSchema (windowDays ≥ 7, +фасет-фильтры).
|
|
8
|
+
*
|
|
9
|
+
* Возвращает baseline-метрики (p50/p95/mean), currentTotal и список аномалий
|
|
10
|
+
* (точки выше baseline.p95). Upstream defaults windowDays=30, мы используем
|
|
11
|
+
* default=7 как в spec, но допускаем 1..90 (upstream примет min=7, поэтому
|
|
12
|
+
* клампим на стороне tool).
|
|
13
|
+
*/
|
|
14
|
+
export declare const baselineCompareInputShape: {
|
|
15
|
+
windowDays: z.ZodDefault<z.ZodNumber>;
|
|
16
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
|
+
serviceName: z.ZodOptional<z.ZodString>;
|
|
18
|
+
};
|
|
19
|
+
export declare const baselineCompareToolDef: {
|
|
20
|
+
name: string;
|
|
21
|
+
title: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputShape: {
|
|
24
|
+
windowDays: z.ZodDefault<z.ZodNumber>;
|
|
25
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
26
|
+
serviceName: z.ZodOptional<z.ZodString>;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
type Args = {
|
|
30
|
+
windowDays: number;
|
|
31
|
+
level?: string[];
|
|
32
|
+
serviceName?: string;
|
|
33
|
+
};
|
|
34
|
+
export declare function handleBaselineCompare(args: Args, client: ElsClient): Promise<ToolResult>;
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=baselineCompare.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baselineCompare.d.ts","sourceRoot":"","sources":["../../src/tools/baselineCompare.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;GASG;AAEH,eAAO,MAAM,yBAAyB;;;;CAIrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;CAMlC,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CA8C9F"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolError } from '../lib/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Tool: baseline_compare
|
|
5
|
+
* Mapping: GET /analytics/baseline → analytics.routes.ts:358
|
|
6
|
+
* Upstream Zod: BaselineSchema (windowDays ≥ 7, +фасет-фильтры).
|
|
7
|
+
*
|
|
8
|
+
* Возвращает baseline-метрики (p50/p95/mean), currentTotal и список аномалий
|
|
9
|
+
* (точки выше baseline.p95). Upstream defaults windowDays=30, мы используем
|
|
10
|
+
* default=7 как в spec, но допускаем 1..90 (upstream примет min=7, поэтому
|
|
11
|
+
* клампим на стороне tool).
|
|
12
|
+
*/
|
|
13
|
+
export const baselineCompareInputShape = {
|
|
14
|
+
windowDays: z.number().int().min(1).max(90).default(7),
|
|
15
|
+
level: z.array(z.string().max(16)).optional(),
|
|
16
|
+
serviceName: z.string().max(255).optional(),
|
|
17
|
+
};
|
|
18
|
+
export const baselineCompareToolDef = {
|
|
19
|
+
name: 'baseline_compare',
|
|
20
|
+
title: 'Compare current period vs historical baseline',
|
|
21
|
+
description: 'Show how current error rate compares to historical baseline (rolling N days). Returns p50/p95 thresholds and "above baseline" anomalies.',
|
|
22
|
+
inputShape: baselineCompareInputShape,
|
|
23
|
+
};
|
|
24
|
+
export async function handleBaselineCompare(args, client) {
|
|
25
|
+
try {
|
|
26
|
+
// Upstream BaselineSchema enforces windowDays >= 7; клампим прозрачно
|
|
27
|
+
// и отмечаем в warnings.
|
|
28
|
+
const effectiveWindow = Math.max(7, args.windowDays);
|
|
29
|
+
const warnings = [];
|
|
30
|
+
if (effectiveWindow !== args.windowDays) {
|
|
31
|
+
warnings.push(`windowDays=${args.windowDays} clamped to ${effectiveWindow} (upstream min=7).`);
|
|
32
|
+
}
|
|
33
|
+
const params = {
|
|
34
|
+
windowDays: effectiveWindow,
|
|
35
|
+
levels: args.level?.join(','),
|
|
36
|
+
serviceName: args.serviceName,
|
|
37
|
+
};
|
|
38
|
+
const { data, elsRequestId } = await client.baseline(params);
|
|
39
|
+
const body = (data ?? {});
|
|
40
|
+
const meta = {
|
|
41
|
+
elsRequestId,
|
|
42
|
+
cached: false,
|
|
43
|
+
ttlSec: 300,
|
|
44
|
+
redactionApplied: false,
|
|
45
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
46
|
+
};
|
|
47
|
+
return {
|
|
48
|
+
structuredContent: {
|
|
49
|
+
windowDays: effectiveWindow,
|
|
50
|
+
currentTotal: Number(body.currentTotal ?? body.total ?? 0),
|
|
51
|
+
baseline: body.baseline ?? {},
|
|
52
|
+
anomalies: Array.isArray(body.anomalies) ? body.anomalies : [],
|
|
53
|
+
_meta: meta,
|
|
54
|
+
},
|
|
55
|
+
content: [
|
|
56
|
+
{
|
|
57
|
+
type: 'text',
|
|
58
|
+
text: `Baseline window=${effectiveWindow}d, currentTotal=${Number(body.currentTotal ?? body.total ?? 0)}, anomalies=${Array.isArray(body.anomalies) ? body.anomalies.length : 0}.`,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
if (err instanceof ToolError)
|
|
65
|
+
return err.toToolResult();
|
|
66
|
+
throw err;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=baselineCompare.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"baselineCompare.js","sourceRoot":"","sources":["../../src/tools/baselineCompare.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ElsClient } from '../elsClient.js';
|
|
3
|
+
import type { ToolResult } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Tool: error_heatmap
|
|
6
|
+
* Mapping: GET /analytics/heatmap → analytics.routes.ts:285
|
|
7
|
+
* Upstream Zod: HeatmapSchema (from + to required, + фасет-фильтры).
|
|
8
|
+
*
|
|
9
|
+
* Возвращает 7×24 матрицу счётчиков (dayOfWeek × hour). Параметр `timezone`
|
|
10
|
+
* в input — для будущей версии (upstream сейчас работает только в UTC).
|
|
11
|
+
*/
|
|
12
|
+
export declare const errorHeatmapInputShape: {
|
|
13
|
+
from: z.ZodString;
|
|
14
|
+
to: z.ZodString;
|
|
15
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
|
+
serviceName: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
|
+
timezone: z.ZodDefault<z.ZodString>;
|
|
18
|
+
};
|
|
19
|
+
export declare const errorHeatmapToolDef: {
|
|
20
|
+
name: string;
|
|
21
|
+
title: string;
|
|
22
|
+
description: string;
|
|
23
|
+
inputShape: {
|
|
24
|
+
from: z.ZodString;
|
|
25
|
+
to: z.ZodString;
|
|
26
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
27
|
+
serviceName: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
28
|
+
timezone: z.ZodDefault<z.ZodString>;
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
type Args = {
|
|
32
|
+
from: string;
|
|
33
|
+
to: string;
|
|
34
|
+
level?: string[];
|
|
35
|
+
serviceName?: string[];
|
|
36
|
+
timezone: string;
|
|
37
|
+
};
|
|
38
|
+
export declare function handleErrorHeatmap(args: Args, client: ElsClient): Promise<ToolResult>;
|
|
39
|
+
export {};
|
|
40
|
+
//# sourceMappingURL=errorHeatmap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHeatmap.d.ts","sourceRoot":"","sources":["../../src/tools/errorHeatmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;GAOG;AAEH,eAAO,MAAM,sBAAsB;;;;;;CAUlC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;;;;;;;;CAM/B,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAyC3F"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolError } from '../lib/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Tool: error_heatmap
|
|
5
|
+
* Mapping: GET /analytics/heatmap → analytics.routes.ts:285
|
|
6
|
+
* Upstream Zod: HeatmapSchema (from + to required, + фасет-фильтры).
|
|
7
|
+
*
|
|
8
|
+
* Возвращает 7×24 матрицу счётчиков (dayOfWeek × hour). Параметр `timezone`
|
|
9
|
+
* в input — для будущей версии (upstream сейчас работает только в UTC).
|
|
10
|
+
*/
|
|
11
|
+
export const errorHeatmapInputShape = {
|
|
12
|
+
from: z.string().min(1).describe('ISO timestamp lower bound (required).'),
|
|
13
|
+
to: z.string().min(1).describe('ISO timestamp upper bound (required).'),
|
|
14
|
+
level: z.array(z.string().max(16)).optional(),
|
|
15
|
+
serviceName: z.array(z.string().max(255)).optional(),
|
|
16
|
+
timezone: z
|
|
17
|
+
.string()
|
|
18
|
+
.max(64)
|
|
19
|
+
.default('UTC')
|
|
20
|
+
.describe('IANA tz. Phase 2: upstream computes in UTC only — non-UTC values are ignored with a warning.'),
|
|
21
|
+
};
|
|
22
|
+
export const errorHeatmapToolDef = {
|
|
23
|
+
name: 'error_heatmap',
|
|
24
|
+
title: 'Day-of-week x hour-of-day error heatmap',
|
|
25
|
+
description: '7x24 matrix of error counts (day-of-week x hour-of-day in UTC) for a period. Use for "when do errors usually happen?".',
|
|
26
|
+
inputShape: errorHeatmapInputShape,
|
|
27
|
+
};
|
|
28
|
+
export async function handleErrorHeatmap(args, client) {
|
|
29
|
+
try {
|
|
30
|
+
const params = {
|
|
31
|
+
from: args.from,
|
|
32
|
+
to: args.to,
|
|
33
|
+
levels: args.level?.join(','),
|
|
34
|
+
serviceName: args.serviceName?.join(','),
|
|
35
|
+
};
|
|
36
|
+
const { data, elsRequestId } = await client.heatmap(params);
|
|
37
|
+
const warnings = [];
|
|
38
|
+
if (args.timezone !== 'UTC') {
|
|
39
|
+
warnings.push(`timezone='${args.timezone}' requested, but upstream computes in UTC only.`);
|
|
40
|
+
}
|
|
41
|
+
const meta = {
|
|
42
|
+
elsRequestId,
|
|
43
|
+
cached: false,
|
|
44
|
+
ttlSec: 300,
|
|
45
|
+
redactionApplied: false,
|
|
46
|
+
...(warnings.length > 0 ? { warnings } : {}),
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
structuredContent: {
|
|
50
|
+
data: data.data ?? [],
|
|
51
|
+
from: data.from,
|
|
52
|
+
to: data.to,
|
|
53
|
+
_meta: meta,
|
|
54
|
+
},
|
|
55
|
+
content: [
|
|
56
|
+
{
|
|
57
|
+
type: 'text',
|
|
58
|
+
text: `Heatmap (${(data.data ?? []).length} buckets) from ${data.from} to ${data.to}.`,
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
catch (err) {
|
|
64
|
+
if (err instanceof ToolError)
|
|
65
|
+
return err.toToolResult();
|
|
66
|
+
throw err;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=errorHeatmap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHeatmap.js","sourceRoot":"","sources":["../../src/tools/errorHeatmap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;;;;;;GAOG;AAEH,MAAM,CAAC,MAAM,sBAAsB,GAAG;IACpC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACzE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,EAAE,CAAC;SACP,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CAAC,8FAA8F,CAAC;CAC5G,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,IAAI,EAAE,eAAe;IACrB,KAAK,EAAE,yCAAyC;IAChD,WAAW,EACT,wHAAwH;IAC1H,UAAU,EAAE,sBAAsB;CACnC,CAAC;AAUF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAU,EAAE,MAAiB;IACpE,IAAI,CAAC;QACH,MAAM,MAAM,GAAuC;YACjD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC;SACzC,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,QAAQ,iDAAiD,CAAC,CAAC;QAC7F,CAAC;QAED,MAAM,IAAI,GAAiB;YACzB,YAAY;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,GAAG;YACX,gBAAgB,EAAE,KAAK;YACvB,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC7C,CAAC;QAEF,OAAO;YACL,iBAAiB,EAAE;gBACjB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;gBACrB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,KAAK,EAAE,IAAI;aACZ;YACD,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,kBAAkB,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,EAAE,GAAG;iBACvF;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,SAAS;YAAE,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ElsClient } from '../elsClient.js';
|
|
3
|
+
import type { ToolResult } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Tool: error_histogram
|
|
6
|
+
* Mapping: GET /analytics/histogram → analytics.routes.ts:241
|
|
7
|
+
* Upstream Zod: HistogramSchema (from + to required, + фасет-фильтры).
|
|
8
|
+
*
|
|
9
|
+
* Bucket size auto-selected by range (5m / 30m / 1h / 1d).
|
|
10
|
+
*/
|
|
11
|
+
export declare const errorHistogramInputShape: {
|
|
12
|
+
from: z.ZodString;
|
|
13
|
+
to: z.ZodString;
|
|
14
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
15
|
+
serviceName: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
16
|
+
appVersion: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
17
|
+
};
|
|
18
|
+
export declare const errorHistogramToolDef: {
|
|
19
|
+
name: string;
|
|
20
|
+
title: string;
|
|
21
|
+
description: string;
|
|
22
|
+
inputShape: {
|
|
23
|
+
from: z.ZodString;
|
|
24
|
+
to: z.ZodString;
|
|
25
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
26
|
+
serviceName: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
27
|
+
appVersion: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
type Args = {
|
|
31
|
+
from: string;
|
|
32
|
+
to: string;
|
|
33
|
+
level?: string[];
|
|
34
|
+
serviceName?: string[];
|
|
35
|
+
appVersion?: string[];
|
|
36
|
+
};
|
|
37
|
+
export declare function handleErrorHistogram(args: Args, client: ElsClient): Promise<ToolResult>;
|
|
38
|
+
export {};
|
|
39
|
+
//# sourceMappingURL=errorHistogram.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHistogram.d.ts","sourceRoot":"","sources":["../../src/tools/errorHistogram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;GAMG;AAEH,eAAO,MAAM,wBAAwB;;;;;;CAMpC,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;;;;;;;;CAMjC,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAqC7F"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolError } from '../lib/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Tool: error_histogram
|
|
5
|
+
* Mapping: GET /analytics/histogram → analytics.routes.ts:241
|
|
6
|
+
* Upstream Zod: HistogramSchema (from + to required, + фасет-фильтры).
|
|
7
|
+
*
|
|
8
|
+
* Bucket size auto-selected by range (5m / 30m / 1h / 1d).
|
|
9
|
+
*/
|
|
10
|
+
export const errorHistogramInputShape = {
|
|
11
|
+
from: z.string().min(1).describe('ISO timestamp lower bound (required).'),
|
|
12
|
+
to: z.string().min(1).describe('ISO timestamp upper bound (required).'),
|
|
13
|
+
level: z.array(z.string().max(16)).optional(),
|
|
14
|
+
serviceName: z.array(z.string().max(255)).optional(),
|
|
15
|
+
appVersion: z.array(z.string().max(64)).optional(),
|
|
16
|
+
};
|
|
17
|
+
export const errorHistogramToolDef = {
|
|
18
|
+
name: 'error_histogram',
|
|
19
|
+
title: 'Error count histogram over time',
|
|
20
|
+
description: 'Time-series histogram of error counts. Bucket size auto-selected by range. Use for "how did errors trend over time?".',
|
|
21
|
+
inputShape: errorHistogramInputShape,
|
|
22
|
+
};
|
|
23
|
+
export async function handleErrorHistogram(args, client) {
|
|
24
|
+
try {
|
|
25
|
+
const params = {
|
|
26
|
+
from: args.from,
|
|
27
|
+
to: args.to,
|
|
28
|
+
levels: args.level?.join(','),
|
|
29
|
+
serviceName: args.serviceName?.join(','),
|
|
30
|
+
appVersion: args.appVersion?.join(','),
|
|
31
|
+
};
|
|
32
|
+
const { data, elsRequestId } = await client.errorHistogram(params);
|
|
33
|
+
const meta = {
|
|
34
|
+
elsRequestId,
|
|
35
|
+
cached: false,
|
|
36
|
+
ttlSec: 30,
|
|
37
|
+
redactionApplied: false,
|
|
38
|
+
};
|
|
39
|
+
return {
|
|
40
|
+
structuredContent: {
|
|
41
|
+
interval: data.interval,
|
|
42
|
+
from: data.from,
|
|
43
|
+
to: data.to,
|
|
44
|
+
data: data.data,
|
|
45
|
+
_meta: meta,
|
|
46
|
+
},
|
|
47
|
+
content: [
|
|
48
|
+
{
|
|
49
|
+
type: 'text',
|
|
50
|
+
text: `Histogram with ${data.data?.length ?? 0} buckets (interval=${data.interval}, from=${data.from}, to=${data.to}).`,
|
|
51
|
+
},
|
|
52
|
+
],
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
catch (err) {
|
|
56
|
+
if (err instanceof ToolError)
|
|
57
|
+
return err.toToolResult();
|
|
58
|
+
throw err;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=errorHistogram.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorHistogram.js","sourceRoot":"","sources":["../../src/tools/errorHistogram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAG7C;;;;;;GAMG;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACzE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IACvE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC7C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpD,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE;CACnD,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,IAAI,EAAE,iBAAiB;IACvB,KAAK,EAAE,iCAAiC;IACxC,WAAW,EACT,uHAAuH;IACzH,UAAU,EAAE,wBAAwB;CACrC,CAAC;AAUF,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAU,EAAE,MAAiB;IACtE,IAAI,CAAC;QACH,MAAM,MAAM,GAAuC;YACjD,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC;YAC7B,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC;YACxC,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC;SACvC,CAAC;QACF,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEnE,MAAM,IAAI,GAAiB;YACzB,YAAY;YACZ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,EAAE;YACV,gBAAgB,EAAE,KAAK;SACxB,CAAC;QAEF,OAAO;YACL,iBAAiB,EAAE;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI;aACZ;YACD,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,sBAAsB,IAAI,CAAC,QAAQ,UAAU,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,EAAE,IAAI;iBACxH;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,SAAS;YAAE,OAAO,GAAG,CAAC,YAAY,EAAE,CAAC;QACxD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ElsClient } from '../elsClient.js';
|
|
3
|
+
import type { ToolResult } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Tool: error_stats_breakdown
|
|
6
|
+
* Mapping: GET /analytics/stats → analytics.routes.ts:316
|
|
7
|
+
* Upstream Zod: StatsSchema (from, to, +фасет-фильтры).
|
|
8
|
+
*
|
|
9
|
+
* Возвращает агрегаты: total, uniqueFingerprints, distinct counts, byLevel.
|
|
10
|
+
* Сравнение с предыдущим периодом (`compareTo`) — отдельный pass на стороне MCP
|
|
11
|
+
* (Phase 2: один upstream-call, comparison не считается до Phase 3 — спец требует
|
|
12
|
+
* `compareTo` в input, но ELS-endpoint его не поддерживает, поэтому возвращаем
|
|
13
|
+
* comparison=null и пишем warning).
|
|
14
|
+
*/
|
|
15
|
+
export declare const errorStatsBreakdownInputShape: {
|
|
16
|
+
from: z.ZodOptional<z.ZodString>;
|
|
17
|
+
to: z.ZodOptional<z.ZodString>;
|
|
18
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
19
|
+
serviceName: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
20
|
+
compareTo: z.ZodDefault<z.ZodEnum<["previous-period", "previous-week", "none"]>>;
|
|
21
|
+
};
|
|
22
|
+
export declare const errorStatsBreakdownToolDef: {
|
|
23
|
+
name: string;
|
|
24
|
+
title: string;
|
|
25
|
+
description: string;
|
|
26
|
+
inputShape: {
|
|
27
|
+
from: z.ZodOptional<z.ZodString>;
|
|
28
|
+
to: z.ZodOptional<z.ZodString>;
|
|
29
|
+
level: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
30
|
+
serviceName: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
31
|
+
compareTo: z.ZodDefault<z.ZodEnum<["previous-period", "previous-week", "none"]>>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
type Args = {
|
|
35
|
+
from?: string;
|
|
36
|
+
to?: string;
|
|
37
|
+
level?: string[];
|
|
38
|
+
serviceName?: string[];
|
|
39
|
+
compareTo: 'previous-period' | 'previous-week' | 'none';
|
|
40
|
+
};
|
|
41
|
+
export declare function handleErrorStatsBreakdown(args: Args, client: ElsClient): Promise<ToolResult>;
|
|
42
|
+
export {};
|
|
43
|
+
//# sourceMappingURL=errorStatsBreakdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorStatsBreakdown.d.ts","sourceRoot":"","sources":["../../src/tools/errorStatsBreakdown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,KAAK,EAAgB,UAAU,EAAE,MAAM,aAAa,CAAC;AAE5D;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,6BAA6B;;;;;;CAWzC,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;CAMtC,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,EAAE,iBAAiB,GAAG,eAAe,GAAG,MAAM,CAAC;CACzD,CAAC;AAEF,wBAAsB,yBAAyB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAiDlG"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { ToolError } from '../lib/errors.js';
|
|
3
|
+
/**
|
|
4
|
+
* Tool: error_stats_breakdown
|
|
5
|
+
* Mapping: GET /analytics/stats → analytics.routes.ts:316
|
|
6
|
+
* Upstream Zod: StatsSchema (from, to, +фасет-фильтры).
|
|
7
|
+
*
|
|
8
|
+
* Возвращает агрегаты: total, uniqueFingerprints, distinct counts, byLevel.
|
|
9
|
+
* Сравнение с предыдущим периодом (`compareTo`) — отдельный pass на стороне MCP
|
|
10
|
+
* (Phase 2: один upstream-call, comparison не считается до Phase 3 — спец требует
|
|
11
|
+
* `compareTo` в input, но ELS-endpoint его не поддерживает, поэтому возвращаем
|
|
12
|
+
* comparison=null и пишем warning).
|
|
13
|
+
*/
|
|
14
|
+
export const errorStatsBreakdownInputShape = {
|
|
15
|
+
from: z.string().optional(),
|
|
16
|
+
to: z.string().optional(),
|
|
17
|
+
level: z.array(z.string().max(16)).optional(),
|
|
18
|
+
serviceName: z.array(z.string().max(255)).optional(),
|
|
19
|
+
compareTo: z
|
|
20
|
+
.enum(['previous-period', 'previous-week', 'none'])
|
|
21
|
+
.default('none')
|
|
22
|
+
.describe('Compare current period to baseline. Phase 2: upstream does not compute comparison; field returns null + warning.'),
|
|
23
|
+
};
|
|
24
|
+
export const errorStatsBreakdownToolDef = {
|
|
25
|
+
name: 'error_stats_breakdown',
|
|
26
|
+
title: 'Aggregated stats with breakdowns',
|
|
27
|
+
description: 'High-level stats: total errors, unique fingerprints, distinct services/URLs/users, severity distribution. Use for "weekly summary" / "did things get worse?".',
|
|
28
|
+
inputShape: errorStatsBreakdownInputShape,
|
|
29
|
+
};
|
|
30
|
+
export async function handleErrorStatsBreakdown(args, client) {
|
|
31
|
+
try {
|
|
32
|
+
const params = {
|
|
33
|
+
from: args.from,
|
|
34
|
+
to: args.to,
|
|
35
|
+
levels: args.level?.join(','),
|
|
36
|
+
serviceName: args.serviceName?.join(','),
|
|
37
|
+
};
|
|
38
|
+
const { data, elsRequestId } = await client.errorStats(params);
|
|
39
|
+
const stats = (data ?? {});
|
|
40
|
+
const warnings = [];
|
|
41
|
+
let comparison = null;
|
|
42
|
+
if (args.compareTo !== 'none') {
|
|
43
|
+
warnings.push(`compareTo='${args.compareTo}' requested, but upstream /analytics/stats does not compute comparison in Phase 2. Returning null.`);
|
|
44
|
+
}
|
|
45
|
+
const meta = {
|
|
46
|
+
elsRequestId,
|
|
47
|
+
cached: false,
|
|
48
|
+
ttlSec: 60,
|
|
49
|
+
redactionApplied: false,
|
|
50
|
+
...(warnings.length > 0 ? { warnings, degraded: true } : {}),
|
|
51
|
+
};
|
|
52
|
+
return {
|
|
53
|
+
structuredContent: {
|
|
54
|
+
total: Number(stats.total ?? 0),
|
|
55
|
+
uniqueFingerprints: Number(stats.uniqueFingerprints ?? 0),
|
|
56
|
+
distinctServices: Number(stats.distinctServices ?? 0),
|
|
57
|
+
distinctUrls: Number(stats.distinctUrls ?? 0),
|
|
58
|
+
distinctUsersAffected: Number(stats.distinctUsersAffected ?? 0),
|
|
59
|
+
byLevel: stats.byLevel ?? {},
|
|
60
|
+
comparison,
|
|
61
|
+
_meta: meta,
|
|
62
|
+
},
|
|
63
|
+
content: [
|
|
64
|
+
{
|
|
65
|
+
type: 'text',
|
|
66
|
+
text: `Stats: total=${Number(stats.total ?? 0)}, uniqueFingerprints=${Number(stats.uniqueFingerprints ?? 0)}.`,
|
|
67
|
+
},
|
|
68
|
+
],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
if (err instanceof ToolError)
|
|
73
|
+
return err.toToolResult();
|
|
74
|
+
throw err;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=errorStatsBreakdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorStatsBreakdown.js","sourceRoot":"","sources":["../../src/tools/errorStatsBreakdown.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import type { ElsClient } from '../elsClient.js';
|
|
3
|
+
import type { ResponseFormat, ToolResult } from '../types.js';
|
|
4
|
+
/**
|
|
5
|
+
* Tool: errors_in_session (composite)
|
|
6
|
+
*
|
|
7
|
+
* Wrapper над search_logs с фиксированным sessionId, sortBy=receivedAt asc.
|
|
8
|
+
* Используется когда саппорту дали session-ID — нужно посмотреть всю
|
|
9
|
+
* хронологию ошибок этого пользователя.
|
|
10
|
+
*
|
|
11
|
+
* Cursor — passthrough из search_logs (offset-based wrapper в Phase 1).
|
|
12
|
+
*/
|
|
13
|
+
export declare const errorsInSessionInputShape: {
|
|
14
|
+
sessionId: z.ZodString;
|
|
15
|
+
from: z.ZodOptional<z.ZodString>;
|
|
16
|
+
to: z.ZodOptional<z.ZodString>;
|
|
17
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
18
|
+
cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
19
|
+
response_format: z.ZodDefault<z.ZodEnum<["compact", "full", "summary"]>>;
|
|
20
|
+
};
|
|
21
|
+
export declare const errorsInSessionToolDef: {
|
|
22
|
+
name: string;
|
|
23
|
+
title: string;
|
|
24
|
+
description: string;
|
|
25
|
+
inputShape: {
|
|
26
|
+
sessionId: z.ZodString;
|
|
27
|
+
from: z.ZodOptional<z.ZodString>;
|
|
28
|
+
to: z.ZodOptional<z.ZodString>;
|
|
29
|
+
limit: z.ZodDefault<z.ZodNumber>;
|
|
30
|
+
cursor: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
31
|
+
response_format: z.ZodDefault<z.ZodEnum<["compact", "full", "summary"]>>;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
type Args = {
|
|
35
|
+
sessionId: string;
|
|
36
|
+
from?: string;
|
|
37
|
+
to?: string;
|
|
38
|
+
limit: number;
|
|
39
|
+
cursor?: string | null;
|
|
40
|
+
response_format: ResponseFormat;
|
|
41
|
+
};
|
|
42
|
+
export declare function handleErrorsInSession(args: Args, client: ElsClient): Promise<ToolResult>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=errorsInSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errorsInSession.d.ts","sourceRoot":"","sources":["../../src/tools/errorsInSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,OAAO,KAAK,EAAE,cAAc,EAAuC,UAAU,EAAE,MAAM,aAAa,CAAC;AAEnG;;;;;;;;GAQG;AAEH,eAAO,MAAM,yBAAyB;;;;;;;CAQrC,CAAC;AAEF,eAAO,MAAM,sBAAsB;;;;;;;;;;;;CAMlC,CAAC;AAEF,KAAK,IAAI,GAAG;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,eAAe,EAAE,cAAc,CAAC;CACjC,CAAC;AAUF,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAkE9F"}
|