@agentistics/mcp 2.38.0 → 2.40.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.
@@ -21,7 +21,7 @@ function isLocalModelId(modelId) {
21
21
  const id = String(modelId ?? "").toLowerCase();
22
22
  return LOCAL_RUNTIME_PREFIXES.some((p) => id.startsWith(p));
23
23
  }
24
- var LOCAL_MODEL_PRICE = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 };
24
+ var LOCAL_MODEL_PRICE = { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, cacheWrite1h: 0 };
25
25
 
26
26
  // ../core/src/types.ts
27
27
  var HARNESS_SORT = {
@@ -33,7 +33,7 @@ var HARNESS_SORT = {
33
33
  kimi: 5
34
34
  };
35
35
  var HARNESS_ORDER = Object.keys(HARNESS_SORT).sort((a, b) => HARNESS_SORT[a] - HARNESS_SORT[b]);
36
- var MODEL_PRICING = {
36
+ var BASE_MODEL_PRICING = {
37
37
  "claude-fable-5": { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 },
38
38
  "claude-mythos-5": { input: 10, output: 50, cacheRead: 1, cacheWrite: 12.5 },
39
39
  "claude-opus-5": { input: 5, output: 25, cacheRead: 0.5, cacheWrite: 6.25 },
@@ -67,6 +67,7 @@ var MODEL_PRICING = {
67
67
  "gpt-5-mini": { input: 0.25, output: 2, cacheRead: 0.025, cacheWrite: 0.25 },
68
68
  "gpt-5": { input: 1.25, output: 10, cacheRead: 0.125, cacheWrite: 1.25 }
69
69
  };
70
+ var MODEL_PRICING = Object.fromEntries(Object.entries(BASE_MODEL_PRICING).map(([id, p]) => [id, { ...p, cacheWrite1h: p.input * 2 }]));
70
71
  function getModelPrice(modelId) {
71
72
  if (MODEL_PRICING[modelId])
72
73
  return MODEL_PRICING[modelId];
@@ -87,7 +88,7 @@ function getModelPrice(modelId) {
87
88
  const hit = forwardKey || reverseKey;
88
89
  if (hit)
89
90
  return MODEL_PRICING[hit];
90
- return { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 };
91
+ return { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75, cacheWrite1h: 6 };
91
92
  }
92
93
  function sessionModelUsage(s, fallbackModel) {
93
94
  const breakdown = s.model_usage;
@@ -104,6 +105,8 @@ function sessionModelUsage(s, fallbackModel) {
104
105
  outputTokens: s.output_tokens ?? 0,
105
106
  cacheReadInputTokens: s.cache_read_input_tokens ?? 0,
106
107
  cacheCreationInputTokens: s.cache_creation_input_tokens ?? 0,
108
+ cacheCreation1hInputTokens: s.cache_creation_1h_input_tokens,
109
+ cacheCreation5mInputTokens: s.cache_creation_5m_input_tokens,
107
110
  webSearchRequests: 0,
108
111
  costUSD: 0
109
112
  }]];
@@ -116,7 +119,9 @@ function sessionCostUSD(s, fallbackModel) {
116
119
  }
117
120
  function calcCost(usage, modelId) {
118
121
  const price = getModelPrice(modelId);
119
- return usage.inputTokens / 1e6 * price.input + usage.outputTokens / 1e6 * price.output + usage.cacheReadInputTokens / 1e6 * price.cacheRead + usage.cacheCreationInputTokens / 1e6 * price.cacheWrite;
122
+ const hasTtlBreakdown = usage.cacheCreation1hInputTokens !== undefined && usage.cacheCreation5mInputTokens !== undefined;
123
+ const cacheWriteCost = hasTtlBreakdown ? (usage.cacheCreation1hInputTokens ?? 0) / 1e6 * price.cacheWrite1h + (usage.cacheCreation5mInputTokens ?? 0) / 1e6 * price.cacheWrite : usage.cacheCreationInputTokens / 1e6 * price.cacheWrite;
124
+ return usage.inputTokens / 1e6 * price.input + usage.outputTokens / 1e6 * price.output + usage.cacheReadInputTokens / 1e6 * price.cacheRead + cacheWriteCost;
120
125
  }
121
126
  // ../core/src/team.ts
122
127
  var DEFAULT_TEAM = Object.freeze({
@@ -373,6 +378,9 @@ var HARNESS_MODELS = {
373
378
  var SPAWN_SPECS_MODEL_IDS = Object.fromEntries(Object.entries(HARNESS_MODELS).map(([h, opts]) => [h, opts.map((o) => o.id)]));
374
379
  // ../core/src/attachments.ts
375
380
  var IMAGE_EXTENSIONS = new Set(["png", "jpg", "jpeg", "gif", "webp", "bmp", "svg", "avif"]);
381
+ // ../core/src/pasteSanitize.ts
382
+ var BRACKETED_PASTE_START = "\x1B[200~";
383
+ var MARKER_LEN = BRACKETED_PASTE_START.length;
376
384
  // session-tokens.ts
377
385
  function sessionHarness(s) {
378
386
  return s.harness ?? "claude";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agentistics/mcp",
3
- "version": "2.38.0",
3
+ "version": "2.40.0",
4
4
  "description": "Agentistics MCP server — Claude Code analytics for Claude Desktop and Claude Code",
5
5
  "type": "module",
6
6
  "main": "./dist/agentistics-mcp.js",