@cryptiklemur/lattice 1.18.1 → 1.18.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptiklemur/lattice",
3
- "version": "1.18.1",
3
+ "version": "1.18.2",
4
4
  "description": "Multi-machine agentic dashboard for Claude Code. Monitor sessions, manage MCP servers and skills, orchestrate across mesh-networked nodes.",
5
5
  "license": "MIT",
6
6
  "author": "Aaron Scherer <me@aaronscherer.me>",
@@ -64,8 +64,9 @@ function formatDate(ts: number): string {
64
64
  return year + "-" + month + "-" + day;
65
65
  }
66
66
 
67
- function getCostBucket(cost: number): string {
68
- if (cost < 0.01) return "$0-0.01";
67
+ function getCostBucket(cost: number): string | null {
68
+ if (cost <= 0) return null;
69
+ if (cost < 0.01) return "<$0.01";
69
70
  if (cost < 0.05) return "$0.01-0.05";
70
71
  if (cost < 0.10) return "$0.05-0.10";
71
72
  if (cost < 0.50) return "$0.10-0.50";
@@ -254,7 +255,7 @@ function aggregate(sessions: SessionData[], period: AnalyticsPeriod): AnalyticsP
254
255
  var toolStats = new Map<string, { count: number; totalCost: number; sessions: number }>();
255
256
 
256
257
  var costBuckets = new Map<string, number>();
257
- var bucketOrder = ["$0-0.01", "$0.01-0.05", "$0.05-0.10", "$0.10-0.50", "$0.50-1.00", "$1.00-5.00", "$5.00+"];
258
+ var bucketOrder = ["<$0.01", "$0.01-0.05", "$0.05-0.10", "$0.10-0.50", "$0.50-1.00", "$1.00-5.00", "$5.00+"];
258
259
  for (var b = 0; b < bucketOrder.length; b++) {
259
260
  costBuckets.set(bucketOrder[b], 0);
260
261
  }
@@ -335,7 +336,9 @@ function aggregate(sessions: SessionData[], period: AnalyticsPeriod): AnalyticsP
335
336
  });
336
337
 
337
338
  var bucket = getCostBucket(sess.cost);
338
- costBuckets.set(bucket, (costBuckets.get(bucket) || 0) + 1);
339
+ if (bucket) {
340
+ costBuckets.set(bucket, (costBuckets.get(bucket) || 0) + 1);
341
+ }
339
342
  }
340
343
 
341
344
  var totalTokensAll = totalInput + totalOutput + totalCacheRead + totalCacheCreation;
@@ -388,7 +391,8 @@ function aggregate(sessions: SessionData[], period: AnalyticsPeriod): AnalyticsP
388
391
  }
389
392
 
390
393
  var sessionBubbles: AnalyticsPayload["sessionBubbles"] = [];
391
- var sorted = filtered.slice().sort(function (a, b) {
394
+ var nonZeroCost = filtered.filter(function (s) { return s.cost > 0; });
395
+ var sorted = nonZeroCost.slice().sort(function (a, b) {
392
396
  return (b.endTime || b.startTime) - (a.endTime || a.startTime);
393
397
  });
394
398
  var bubbleCap = Math.min(sorted.length, 200);
@@ -572,7 +576,7 @@ function aggregate(sessions: SessionData[], period: AnalyticsPeriod): AnalyticsP
572
576
 
573
577
  var sessionTimeline: AnalyticsPayload["sessionTimeline"] = [];
574
578
  var tlSorted = filtered
575
- .filter(function (s) { return s.startTime > 0 && s.endTime > 0; })
579
+ .filter(function (s) { return s.startTime > 0 && s.endTime > 0 && s.cost > 0; })
576
580
  .sort(function (a, b) { return b.startTime - a.startTime; });
577
581
  var tlCap = Math.min(tlSorted.length, 50);
578
582
  for (var tli = 0; tli < tlCap; tli++) {