elasticsearch-mcp-vsee 0.5.6 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +16 -13
  2. package/build/errors/handlers.d.ts +1 -0
  3. package/build/errors/handlers.d.ts.map +1 -1
  4. package/build/errors/handlers.js +61 -0
  5. package/build/errors/handlers.js.map +1 -1
  6. package/build/server.d.ts +0 -2
  7. package/build/server.d.ts.map +1 -1
  8. package/build/server.js +49 -90
  9. package/build/server.js.map +1 -1
  10. package/build/tools/find-entities-by-metric.d.ts +3 -3
  11. package/build/tools/find-entities-by-metric.d.ts.map +1 -1
  12. package/build/tools/find-entities-by-metric.js +8 -25
  13. package/build/tools/find-entities-by-metric.js.map +1 -1
  14. package/build/tools/get-index-fields.d.ts.map +1 -1
  15. package/build/tools/get-index-fields.js +4 -11
  16. package/build/tools/get-index-fields.js.map +1 -1
  17. package/build/tools/get-platform-breakdown.d.ts +4 -3
  18. package/build/tools/get-platform-breakdown.d.ts.map +1 -1
  19. package/build/tools/get-platform-breakdown.js +54 -34
  20. package/build/tools/get-platform-breakdown.js.map +1 -1
  21. package/build/tools/get-rating-distribution.d.ts +3 -3
  22. package/build/tools/get-rating-distribution.d.ts.map +1 -1
  23. package/build/tools/get-rating-distribution.js +9 -8
  24. package/build/tools/get-rating-distribution.js.map +1 -1
  25. package/build/tools/get-subscription-breakdown.d.ts +0 -2
  26. package/build/tools/get-subscription-breakdown.d.ts.map +1 -1
  27. package/build/tools/get-subscription-breakdown.js +10 -43
  28. package/build/tools/get-subscription-breakdown.js.map +1 -1
  29. package/build/tools/get-usage-summary.d.ts +2 -2
  30. package/build/tools/get-usage-summary.d.ts.map +1 -1
  31. package/build/tools/get-usage-summary.js +7 -15
  32. package/build/tools/get-usage-summary.js.map +1 -1
  33. package/build/tools/get-visit-trends.d.ts +3 -3
  34. package/build/tools/get-visit-trends.d.ts.map +1 -1
  35. package/build/tools/get-visit-trends.js +53 -42
  36. package/build/tools/get-visit-trends.js.map +1 -1
  37. package/build/tools/index.d.ts +0 -4
  38. package/build/tools/index.d.ts.map +1 -1
  39. package/build/tools/index.js +1 -5
  40. package/build/tools/index.js.map +1 -1
  41. package/build/tools/top-change.d.ts +9 -7
  42. package/build/tools/top-change.d.ts.map +1 -1
  43. package/build/tools/top-change.js +60 -83
  44. package/build/tools/top-change.js.map +1 -1
  45. package/build/validation/schemas.d.ts +2 -2
  46. package/package.json +1 -1
@@ -3,9 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GetVisitTrendsTool = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const handlers_js_1 = require("../errors/handlers.js");
6
+ const date_math_js_1 = require("../utils/date-math.js");
6
7
  const aggregation_limits_js_1 = require("../utils/aggregation-limits.js");
7
8
  const field_constants_js_1 = require("../utils/field-constants.js");
8
- const date_math_js_1 = require("../utils/date-math.js");
9
9
  const GetVisitTrendsArgsSchema = zod_1.z.object({
10
10
  interval: zod_1.z.enum(['daily', 'weekly', 'monthly']).describe('Time interval for trends: "daily", "weekly", or "monthly"'),
11
11
  startDate: zod_1.z.string().optional().describe('Start date in ISO format (YYYY-MM-DD) or date math (e.g., "now-180d", "now-1y"). Defaults to "now-180d" (6 months)'),
@@ -13,7 +13,7 @@ const GetVisitTrendsArgsSchema = zod_1.z.object({
13
13
  groupBy: zod_1.z.enum(['none', 'subscription', 'account', 'group']).optional().default('none').describe('Optional grouping dimension (default: none)'),
14
14
  account: zod_1.z.string().optional().describe('Optional account name to filter by'),
15
15
  group: zod_1.z.string().optional().describe('Optional group name to filter by'),
16
- subscription: zod_1.z.string().optional().describe('Optional subscription tier to filter by'),
16
+ subscription: zod_1.z.enum(['Enterprise', 'Premium', 'FVC', 'BVC', 'Plus']).optional().describe('Optional subscription tier to filter by'),
17
17
  }).strict();
18
18
  class GetVisitTrendsTool {
19
19
  elasticsearch;
@@ -26,41 +26,46 @@ class GetVisitTrendsTool {
26
26
  try {
27
27
  const validatedArgs = GetVisitTrendsArgsSchema.parse(args);
28
28
  let startDate = validatedArgs.startDate || 'now-180d';
29
- const endDate = validatedArgs.endDate || 'now';
29
+ let endDate = validatedArgs.endDate || 'now';
30
30
  const groupBy = validatedArgs.groupBy || 'none';
31
- // Safeguard: Aggressively cap time periods to prevent circuit breaker errors
32
31
  // Date histogram aggregations must process ALL documents in the time range,
33
- // so even with few buckets, large time periods can exceed memory limits
34
- // Determine maximum allowed days based on interval
35
- // More aggressive limits for longer intervals since they process more data
32
+ // making them very memory-intensive. Cap time periods based on interval and grouping.
36
33
  let maxDays;
37
- switch (validatedArgs.interval) {
38
- case 'daily':
39
- maxDays = 90; // Max 90 days for daily (3 months)
40
- break;
41
- case 'weekly':
42
- maxDays = 180; // Max 180 days for weekly (~6 months)
43
- break;
44
- case 'monthly':
45
- maxDays = 180; // Max 180 days for monthly (6 months) - reduced from 360
46
- break;
47
- default:
48
- maxDays = 90;
34
+ if (groupBy !== 'none') {
35
+ // When grouping, we aggregate all entities × all time buckets - very memory intensive
36
+ switch (validatedArgs.interval) {
37
+ case 'daily':
38
+ maxDays = 30; // Max 30 days when grouped
39
+ break;
40
+ case 'weekly':
41
+ maxDays = 90; // Max 90 days (~12 weeks) when grouped
42
+ break;
43
+ case 'monthly':
44
+ maxDays = 180; // Max 180 days (~6 months) when grouped
45
+ break;
46
+ default:
47
+ maxDays = 30;
48
+ }
49
49
  }
50
- // Cap the time period using the utility function
51
- const { startDate: cappedStartDate, endDate: cappedEndDate, wasAdjusted } = (0, date_math_js_1.capTimePeriod)(startDate, endDate, maxDays, this.logger);
52
- if (wasAdjusted) {
53
- this.logger.warn('Time period capped to prevent circuit breaker errors', {
54
- originalStartDate: startDate,
55
- originalEndDate: endDate,
56
- adjustedStartDate: cappedStartDate,
57
- adjustedEndDate: cappedEndDate,
58
- interval: validatedArgs.interval,
59
- maxDays,
60
- reason: 'Large time periods require processing all documents, which can exceed Elasticsearch memory limits',
61
- });
50
+ else {
51
+ // Without grouping, can handle longer periods
52
+ switch (validatedArgs.interval) {
53
+ case 'daily':
54
+ maxDays = 90; // Max 90 days for daily
55
+ break;
56
+ case 'weekly':
57
+ maxDays = 180; // Max 180 days (~6 months) for weekly
58
+ break;
59
+ case 'monthly':
60
+ maxDays = 365; // Max 365 days (1 year) for monthly
61
+ break;
62
+ default:
63
+ maxDays = 90;
64
+ }
62
65
  }
63
- startDate = cappedStartDate;
66
+ const { startDate: adjustedStartDate, endDate: adjustedEndDate } = (0, date_math_js_1.capTimePeriod)(startDate, endDate, maxDays, this.logger);
67
+ startDate = adjustedStartDate;
68
+ endDate = adjustedEndDate;
64
69
  // Calculate estimated buckets for logging
65
70
  const parseDateMathDays = (dateMath) => {
66
71
  const match = dateMath.match(/now-(\d+)([dwMy])/i);
@@ -153,7 +158,6 @@ class GetVisitTrendsTool {
153
158
  },
154
159
  });
155
160
  }
156
- // Determine calendar interval
157
161
  let calendarInterval;
158
162
  switch (validatedArgs.interval) {
159
163
  case 'daily':
@@ -168,7 +172,6 @@ class GetVisitTrendsTool {
168
172
  default:
169
173
  calendarInterval = 'day';
170
174
  }
171
- // Build aggregations
172
175
  const aggs = {
173
176
  trends_over_time: {
174
177
  date_histogram: {
@@ -189,7 +192,6 @@ class GetVisitTrendsTool {
189
192
  },
190
193
  },
191
194
  };
192
- // Add grouping if specified
193
195
  if (groupBy !== 'none') {
194
196
  let groupFieldName;
195
197
  switch (groupBy) {
@@ -235,7 +237,9 @@ class GetVisitTrendsTool {
235
237
  const query = {
236
238
  index,
237
239
  size: 0,
240
+ filter_path: 'aggregations',
238
241
  body: {
242
+ track_total_hits: false,
239
243
  query: {
240
244
  bool: {
241
245
  filter: filters,
@@ -249,8 +253,10 @@ class GetVisitTrendsTool {
249
253
  const responseAggs = response.aggregations;
250
254
  let trends = [];
251
255
  let totalVisits = 0;
256
+ let numPeriods = 0;
252
257
  if (groupBy === 'none') {
253
258
  const buckets = responseAggs?.trends_over_time?.buckets || [];
259
+ numPeriods = buckets.length;
254
260
  trends = buckets.map((bucket) => {
255
261
  const count = bucket.doc_count || 0;
256
262
  totalVisits += count;
@@ -264,12 +270,15 @@ class GetVisitTrendsTool {
264
270
  });
265
271
  }
266
272
  else {
267
- // Determine the key name based on groupBy value
268
273
  const valueKey = `${groupBy}_value`;
269
274
  const groupBuckets = responseAggs?.by_group?.buckets || [];
270
275
  trends = groupBuckets.map((groupBucket) => {
271
276
  const groupValue = groupBucket.key;
272
277
  const trendBuckets = groupBucket.trends_over_time?.buckets || [];
278
+ // Get number of periods from first group (all groups should have same number of buckets)
279
+ if (numPeriods === 0 && trendBuckets.length > 0) {
280
+ numPeriods = trendBuckets.length;
281
+ }
273
282
  const dataPoints = trendBuckets.map((bucket) => {
274
283
  const count = bucket.doc_count || 0;
275
284
  totalVisits += count;
@@ -287,10 +296,8 @@ class GetVisitTrendsTool {
287
296
  };
288
297
  });
289
298
  }
290
- const averagePerPeriod = trends.length > 0
291
- ? (groupBy === 'none'
292
- ? Math.round((totalVisits / trends.length) * 100) / 100
293
- : Math.round((totalVisits / trends.length) * 100) / 100)
299
+ const averagePerPeriod = numPeriods > 0
300
+ ? Math.round((totalVisits / numPeriods) * 100) / 100
294
301
  : 0;
295
302
  this.logger.info('Successfully retrieved visit trends', {
296
303
  interval: validatedArgs.interval,
@@ -298,10 +305,10 @@ class GetVisitTrendsTool {
298
305
  dataPoints: trends.length,
299
306
  });
300
307
  return {
301
- interval: validatedArgs.interval,
302
- period: `${startDate} to ${endDate}`,
303
308
  startDate,
304
309
  endDate,
310
+ interval: validatedArgs.interval,
311
+ period: `${startDate} to ${endDate}`,
305
312
  trends,
306
313
  total_visits: totalVisits,
307
314
  average_per_period: averagePerPeriod,
@@ -317,6 +324,10 @@ class GetVisitTrendsTool {
317
324
  throw error;
318
325
  }
319
326
  this.logger.error('Failed to get visit trends', {}, error);
327
+ // Check if this is a ResponseError from Elasticsearch client
328
+ if (error && typeof error === 'object' && 'body' in error) {
329
+ throw handlers_js_1.ElasticsearchError.fromResponseError(error, 'get_visit_trends', args);
330
+ }
320
331
  throw new handlers_js_1.ElasticsearchError('Failed to get visit trends from Elasticsearch', error, { args });
321
332
  }
322
333
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-visit-trends.js","sourceRoot":"","sources":["../../src/tools/get-visit-trends.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"get-visit-trends.js","sourceRoot":"","sources":["../../src/tools/get-visit-trends.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,6 @@
1
1
  export { GetIndexFieldsTool } from './get-index-fields.js';
2
2
  export { TopChangeTool } from './top-change.js';
3
3
  export { PeriodSummaryTool } from './get-subscription-breakdown.js';
4
- export { GetAccountSummaryTool } from './get-account-summary.js';
5
- export { GetGroupSummaryTool } from './get-group-summary.js';
6
4
  export { GetPlatformBreakdownTool } from './get-platform-breakdown.js';
7
5
  export { GetRatingDistributionTool } from './get-rating-distribution.js';
8
6
  export { GetVisitTrendsTool } from './get-visit-trends.js';
@@ -11,8 +9,6 @@ export { FindEntitiesByMetricTool } from './find-entities-by-metric.js';
11
9
  export type { GetIndexFieldsArgs, GetIndexFieldsResult, FieldInfo, } from './get-index-fields.js';
12
10
  export type { TopChangeArgs, TopChangeResult, ChangeInfo, } from './top-change.js';
13
11
  export type { PeriodSummaryArgs, PeriodSummaryResult, SubscriptionMetrics, } from './get-subscription-breakdown.js';
14
- export type { GetAccountSummaryArgs, AccountSummaryResult, } from './get-account-summary.js';
15
- export type { GetGroupSummaryArgs, GroupSummaryResult, AccountBreakdown, } from './get-group-summary.js';
16
12
  export type { GetPlatformBreakdownArgs, PlatformBreakdownResult, PlatformMetrics, } from './get-platform-breakdown.js';
17
13
  export type { GetRatingDistributionArgs, RatingDistributionResult, RatingBucket, } from './get-rating-distribution.js';
18
14
  export type { GetVisitTrendsArgs, VisitTrendsResult, TrendDataPoint, GroupedTrendData, } from './get-visit-trends.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,GACV,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,aAAa,EACb,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,GACb,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAExE,YAAY,EACV,kBAAkB,EAClB,oBAAoB,EACpB,SAAS,GACV,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,aAAa,EACb,eAAe,EACf,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,iCAAiC,CAAC;AAEzC,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,GAChB,MAAM,6BAA6B,CAAC;AAErC,YAAY,EACV,yBAAyB,EACzB,wBAAwB,EACxB,YAAY,GACb,MAAM,8BAA8B,CAAC;AAEtC,YAAY,EACV,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,YAAY,EACV,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,wBAAwB,CAAC;AAEhC,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC1B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC"}
@@ -1,16 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FindEntitiesByMetricTool = exports.GetUsageSummaryTool = exports.GetVisitTrendsTool = exports.GetRatingDistributionTool = exports.GetPlatformBreakdownTool = exports.GetGroupSummaryTool = exports.GetAccountSummaryTool = exports.PeriodSummaryTool = exports.TopChangeTool = exports.GetIndexFieldsTool = void 0;
3
+ exports.FindEntitiesByMetricTool = exports.GetUsageSummaryTool = exports.GetVisitTrendsTool = exports.GetRatingDistributionTool = exports.GetPlatformBreakdownTool = exports.PeriodSummaryTool = exports.TopChangeTool = exports.GetIndexFieldsTool = void 0;
4
4
  var get_index_fields_js_1 = require("./get-index-fields.js");
5
5
  Object.defineProperty(exports, "GetIndexFieldsTool", { enumerable: true, get: function () { return get_index_fields_js_1.GetIndexFieldsTool; } });
6
6
  var top_change_js_1 = require("./top-change.js");
7
7
  Object.defineProperty(exports, "TopChangeTool", { enumerable: true, get: function () { return top_change_js_1.TopChangeTool; } });
8
8
  var get_subscription_breakdown_js_1 = require("./get-subscription-breakdown.js");
9
9
  Object.defineProperty(exports, "PeriodSummaryTool", { enumerable: true, get: function () { return get_subscription_breakdown_js_1.PeriodSummaryTool; } });
10
- var get_account_summary_js_1 = require("./get-account-summary.js");
11
- Object.defineProperty(exports, "GetAccountSummaryTool", { enumerable: true, get: function () { return get_account_summary_js_1.GetAccountSummaryTool; } });
12
- var get_group_summary_js_1 = require("./get-group-summary.js");
13
- Object.defineProperty(exports, "GetGroupSummaryTool", { enumerable: true, get: function () { return get_group_summary_js_1.GetGroupSummaryTool; } });
14
10
  var get_platform_breakdown_js_1 = require("./get-platform-breakdown.js");
15
11
  Object.defineProperty(exports, "GetPlatformBreakdownTool", { enumerable: true, get: function () { return get_platform_breakdown_js_1.GetPlatformBreakdownTool; } });
16
12
  var get_rating_distribution_js_1 = require("./get-rating-distribution.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAAA,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iFAAoE;AAA3D,kIAAA,iBAAiB,OAAA;AAC1B,mEAAiE;AAAxD,+HAAA,qBAAqB,OAAA;AAC9B,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAC5B,yEAAuE;AAA9D,qIAAA,wBAAwB,OAAA;AACjC,2EAAyE;AAAhE,uIAAA,yBAAyB,OAAA;AAClC,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAC5B,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":";;;AAAA,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,iDAAgD;AAAvC,8GAAA,aAAa,OAAA;AACtB,iFAAoE;AAA3D,kIAAA,iBAAiB,OAAA;AAC1B,yEAAuE;AAA9D,qIAAA,wBAAwB,OAAA;AACjC,2EAAyE;AAAhE,uIAAA,yBAAyB,OAAA;AAClC,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA;AAC3B,+DAA6D;AAApD,2HAAA,mBAAmB,OAAA;AAC5B,2EAAwE;AAA/D,sIAAA,wBAAwB,OAAA"}
@@ -3,10 +3,10 @@ import { Logger } from '../logger.js';
3
3
  export interface TopChangeArgs {
4
4
  groupBy: 'account' | 'group';
5
5
  direction: 'increase' | 'decrease';
6
- currentPeriodDays?: number;
7
- previousPeriodDays?: number;
8
- subscription?: string;
9
- group?: string;
6
+ topN?: number;
7
+ startDate?: string;
8
+ endDate?: string;
9
+ subscription?: 'Enterprise' | 'Premium' | 'FVC' | 'BVC' | 'Plus';
10
10
  }
11
11
  export interface ChangeInfo {
12
12
  item: string;
@@ -16,12 +16,14 @@ export interface ChangeInfo {
16
16
  change_percent: number;
17
17
  }
18
18
  export interface TopChangeResult {
19
+ currentPeriodStart: string;
20
+ currentPeriodEnd: string;
21
+ previousPeriodStart: string;
22
+ previousPeriodEnd: string;
19
23
  groupBy: 'account' | 'group';
24
+ direction: 'increase' | 'decrease';
20
25
  items: ChangeInfo[];
21
26
  total: number;
22
- direction: 'increase' | 'decrease';
23
- currentPeriodDays: number;
24
- previousPeriodDays: number;
25
27
  }
26
28
  export declare class TopChangeTool {
27
29
  private elasticsearch;
@@ -1 +1 @@
1
- {"version":3,"file":"top-change.d.ts","sourceRoot":"","sources":["../../src/tools/top-change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AActC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,MAAM,CAAS;gBAEX,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM;IAKzD,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;CAsRvD"}
1
+ {"version":3,"file":"top-change.d.ts","sourceRoot":"","sources":["../../src/tools/top-change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAetC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,KAAK,GAAG,KAAK,GAAG,MAAM,CAAC;CAClE;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;IAC7B,SAAS,EAAE,UAAU,GAAG,UAAU,CAAC;IACnC,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,MAAM,CAAS;gBAEX,aAAa,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM;IAKzD,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;CA8PvD"}
@@ -4,13 +4,14 @@ exports.TopChangeTool = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const handlers_js_1 = require("../errors/handlers.js");
6
6
  const field_constants_js_1 = require("../utils/field-constants.js");
7
+ const date_math_js_1 = require("../utils/date-math.js");
7
8
  const TopChangeArgsSchema = zod_1.z.object({
8
9
  groupBy: zod_1.z.enum(['account', 'group']).describe('Group by: "account" to find top accounts by visit change, "group" to find top groups by visit change'),
9
10
  direction: zod_1.z.enum(['increase', 'decrease']).describe('Direction: "increase" for highest growth, "decrease" for highest decline'),
10
- currentPeriodDays: zod_1.z.number().int().min(1).max(365).default(30).describe('Number of days for current period (default: 30)'),
11
- previousPeriodDays: zod_1.z.number().int().min(1).max(365).optional().describe('Number of days for previous period (defaults to same as currentPeriodDays)'),
12
- subscription: zod_1.z.string().optional().describe('Optional subscription tier to filter by'),
13
- group: zod_1.z.string().optional().describe('Optional group name to filter by (only valid when groupBy is "account")'),
11
+ topN: zod_1.z.number().int().min(1).max(50).default(5).describe('Number of top items to return (default: 5, max: 50)'),
12
+ startDate: zod_1.z.string().optional().describe('Start date for current period in ISO format (YYYY-MM-DD) or date math (e.g., "now-30d", "now-1y"). Defaults to "now-30d"'),
13
+ endDate: zod_1.z.string().optional().describe('End date for current period in ISO format (YYYY-MM-DD) or date math (e.g., "now"). Defaults to "now"'),
14
+ subscription: zod_1.z.enum(['Enterprise', 'Premium', 'FVC', 'BVC', 'Plus']).optional().describe('Optional subscription tier to filter by'),
14
15
  }).strict();
15
16
  class TopChangeTool {
16
17
  elasticsearch;
@@ -22,83 +23,66 @@ class TopChangeTool {
22
23
  async execute(args) {
23
24
  try {
24
25
  const validatedArgs = TopChangeArgsSchema.parse(args);
25
- // Always return top 5 to prevent data limit errors
26
- const topN = 5;
27
- // Safeguard: cap time periods to prevent data limit errors
28
- // Large time periods with many accounts/groups can exceed Elasticsearch memory limits
29
- // The tool must aggregate ALL accounts before sorting, so large periods can cause circuit breaker errors
30
- // Reduced from 60 to 30 days max due to frequent data limit errors
31
- let currentPeriodDays = validatedArgs.currentPeriodDays || 30;
32
- let previousPeriodDays = validatedArgs.previousPeriodDays || currentPeriodDays;
33
- // More aggressive cap: 30 days max (reduced from 60)
34
- if (currentPeriodDays > 30) {
35
- this.logger.warn('Time period adjusted to prevent data limits', {
36
- originalCurrentPeriodDays: currentPeriodDays,
37
- adjustedCurrentPeriodDays: 30,
38
- reason: 'Large time periods require aggregating all accounts, which can exceed Elasticsearch memory limits. Max 30 days recommended.',
39
- });
40
- currentPeriodDays = 30;
41
- }
42
- if (previousPeriodDays > 30) {
43
- this.logger.warn('Previous period adjusted to prevent data limits', {
44
- originalPreviousPeriodDays: previousPeriodDays,
45
- adjustedPreviousPeriodDays: 30,
46
- reason: 'Large time periods require aggregating all accounts, which can exceed Elasticsearch memory limits. Max 30 days recommended.',
47
- });
48
- previousPeriodDays = 30;
49
- }
50
- // Additional safeguard: if both periods are 30 days, reduce to 14 days each
51
- // This is a very aggressive safeguard for cases where even 30 days causes issues
52
- if (currentPeriodDays === 30 && previousPeriodDays === 30) {
53
- this.logger.warn('Time periods further reduced due to high data volume', {
54
- originalCurrentPeriodDays: 30,
55
- originalPreviousPeriodDays: 30,
56
- adjustedCurrentPeriodDays: 14,
57
- adjustedPreviousPeriodDays: 14,
58
- reason: 'Even 30 days can cause data limit errors with many accounts. Reducing to 14 days for safety.',
59
- });
60
- currentPeriodDays = 14;
61
- previousPeriodDays = 14;
26
+ const topN = validatedArgs.topN || 5;
27
+ let currentPeriodStart = validatedArgs.startDate || 'now-30d';
28
+ let currentPeriodEnd = validatedArgs.endDate || 'now';
29
+ // This tool aggregates ALL accounts/groups before sorting, making it memory-intensive.
30
+ // Cap the current period to prevent data limit errors.
31
+ const { startDate: cappedCurrentStart, endDate: cappedCurrentEnd } = (0, date_math_js_1.capTimePeriod)(currentPeriodStart, currentPeriodEnd, 60, // Max 60 days per period
32
+ this.logger);
33
+ currentPeriodStart = cappedCurrentStart;
34
+ currentPeriodEnd = cappedCurrentEnd;
35
+ // Calculate the duration of the current period
36
+ const startDays = (0, date_math_js_1.parseDateMath)(currentPeriodStart);
37
+ const endDays = (0, date_math_js_1.parseDateMath)(currentPeriodEnd);
38
+ const periodDuration = Math.abs(endDays - startDays);
39
+ // Calculate previous period: same duration, ending where current period starts
40
+ // Previous period end = current period start
41
+ const previousPeriodEnd = currentPeriodStart;
42
+ // Previous period start = current period start minus the duration
43
+ // For date math expressions, we need to calculate the new start date
44
+ let previousPeriodStart;
45
+ if (currentPeriodStart.startsWith('now-')) {
46
+ // Extract the number and unit from the date math expression
47
+ const match = currentPeriodStart.match(/now-(\d+)([dwMy])/);
48
+ if (match) {
49
+ const currentValue = parseInt(match[1], 10);
50
+ const unit = match[2];
51
+ const newValue = currentValue + periodDuration;
52
+ previousPeriodStart = `now-${newValue}${unit}`;
53
+ }
54
+ else {
55
+ // Fallback: use days
56
+ const newValue = startDays + periodDuration;
57
+ previousPeriodStart = `now-${newValue}d`;
58
+ }
62
59
  }
63
- // Validate: group filter only makes sense when grouping by account
64
- if (validatedArgs.group && validatedArgs.groupBy !== 'account') {
65
- throw new handlers_js_1.ValidationError('The "group" filter can only be used when groupBy is "account"', {
66
- details: 'Invalid parameter combination',
67
- });
60
+ else {
61
+ // For ISO dates, we'd need a date library to properly subtract days
62
+ // For now, use date math as fallback
63
+ const newValue = startDays + periodDuration;
64
+ previousPeriodStart = `now-${newValue}d`;
68
65
  }
69
66
  this.logger.info('Getting top items by visit change', {
70
67
  groupBy: validatedArgs.groupBy,
71
68
  direction: validatedArgs.direction,
72
69
  topN,
73
- currentPeriodDays,
74
- originalCurrentPeriodDays: validatedArgs.currentPeriodDays,
75
- previousPeriodDays,
76
- originalPreviousPeriodDays: validatedArgs.previousPeriodDays,
70
+ currentPeriodStart,
71
+ currentPeriodEnd,
72
+ previousPeriodStart,
73
+ previousPeriodEnd,
74
+ periodDuration,
77
75
  subscription: validatedArgs.subscription,
78
- group: validatedArgs.group,
79
76
  });
80
77
  const client = this.elasticsearch.getClient();
81
78
  const index = field_constants_js_1.FIELD_CONSTANTS.index;
82
79
  const timeField = field_constants_js_1.FIELD_CONSTANTS.timeField;
83
80
  const testVisitField = field_constants_js_1.FIELD_CONSTANTS.testVisitField;
84
81
  const subscriptionField = field_constants_js_1.FIELD_CONSTANTS.subscriptionField;
85
- const groupField = field_constants_js_1.FIELD_CONSTANTS.groupField;
86
- // Determine the grouping field based on groupBy parameter
87
82
  const groupingField = validatedArgs.groupBy === 'account'
88
83
  ? field_constants_js_1.FIELD_CONSTANTS.accountField
89
84
  : field_constants_js_1.FIELD_CONSTANTS.groupField;
90
- // Build date ranges
91
- // Current period: last N days (e.g., now-30d to now)
92
- // Previous period: N days before current (e.g., now-60d to now-30d)
93
- const prevPeriodDays = previousPeriodDays;
94
- const totalDays = currentPeriodDays + prevPeriodDays;
95
- const currentPeriodEnd = 'now';
96
- const currentPeriodStart = `now-${currentPeriodDays}d/d`;
97
- const previousPeriodEnd = `now-${currentPeriodDays}d/d`;
98
- const previousPeriodStart = `now-${totalDays}d/d`;
99
- // Determine sort order: desc for increase, asc for decrease
100
85
  const sortOrder = validatedArgs.direction === 'increase' ? 'desc' : 'asc';
101
- // Build filters
102
86
  const filters = [
103
87
  {
104
88
  range: {
@@ -108,7 +92,6 @@ class TopChangeTool {
108
92
  },
109
93
  },
110
94
  },
111
- // Exclude empty group/account names
112
95
  {
113
96
  exists: {
114
97
  field: groupingField,
@@ -122,20 +105,12 @@ class TopChangeTool {
122
105
  },
123
106
  });
124
107
  }
125
- // Group filter only applies when grouping by account
126
- if (validatedArgs.group && validatedArgs.groupBy === 'account') {
127
- filters.push({
128
- term: {
129
- [groupField]: validatedArgs.group,
130
- },
131
- });
132
- }
133
- // Build Elasticsearch query
134
108
  const aggregationName = validatedArgs.groupBy === 'account' ? 'by_account' : 'by_group';
135
109
  const query = {
136
110
  index,
137
111
  size: 0,
138
112
  body: {
113
+ track_total_hits: false,
139
114
  query: {
140
115
  bool: {
141
116
  filter: filters,
@@ -158,9 +133,8 @@ class TopChangeTool {
158
133
  [aggregationName]: {
159
134
  terms: {
160
135
  field: groupingField,
161
- // Conservative limit: topN is fixed at 5, so we fetch 10 (2x) to account for filtering
162
- size: 10,
163
- exclude: '', // Exclude empty string values from aggregation
136
+ size: topN * 2,
137
+ exclude: '',
164
138
  },
165
139
  aggs: {
166
140
  current_period: {
@@ -210,15 +184,12 @@ class TopChangeTool {
210
184
  },
211
185
  };
212
186
  this.logger.debug('Executing query', { query: JSON.stringify(query, null, 2) });
213
- // Execute search
214
187
  const response = await client.search(query);
215
- // Extract results
216
188
  const items = [];
217
189
  const aggregation = response.aggregations?.[aggregationName];
218
190
  const buckets = aggregation?.buckets || [];
219
191
  for (const bucket of buckets) {
220
192
  const item = bucket.key;
221
- // Filter out empty strings - they represent documents without a group/account
222
193
  if (!item || item.trim() === '') {
223
194
  continue;
224
195
  }
@@ -243,12 +214,14 @@ class TopChangeTool {
243
214
  count: items.length,
244
215
  });
245
216
  return {
217
+ currentPeriodStart,
218
+ currentPeriodEnd,
219
+ previousPeriodStart,
220
+ previousPeriodEnd,
246
221
  groupBy: validatedArgs.groupBy,
222
+ direction: validatedArgs.direction,
247
223
  items,
248
224
  total: items.length,
249
- direction: validatedArgs.direction,
250
- currentPeriodDays,
251
- previousPeriodDays,
252
225
  };
253
226
  }
254
227
  catch (error) {
@@ -261,6 +234,10 @@ class TopChangeTool {
261
234
  throw error;
262
235
  }
263
236
  this.logger.error('Failed to get top items by change', {}, error);
237
+ // Check if this is a ResponseError from Elasticsearch client
238
+ if (error && typeof error === 'object' && 'body' in error) {
239
+ throw handlers_js_1.ElasticsearchError.fromResponseError(error, 'top_change', args);
240
+ }
264
241
  throw new handlers_js_1.ElasticsearchError('Failed to get top items by visit change from Elasticsearch', error, { args });
265
242
  }
266
243
  }
@@ -1 +1 @@
1
- {"version":3,"file":"top-change.js","sourceRoot":"","sources":["../../src/tools/top-change.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"top-change.js","sourceRoot":"","sources":["../../src/tools/top-change.ts"],"names":[],"mappings":"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"}