codeam-cli 1.4.17 → 1.4.19

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 (2) hide show
  1. package/dist/index.js +22 -4
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -115,7 +115,7 @@ var import_qrcode_terminal = __toESM(require("qrcode-terminal"));
115
115
  // package.json
116
116
  var package_default = {
117
117
  name: "codeam-cli",
118
- version: "1.4.17",
118
+ version: "1.4.19",
119
119
  description: "Remote control Claude Code from your mobile device",
120
120
  main: "dist/index.js",
121
121
  bin: {
@@ -1396,6 +1396,20 @@ function getPricing(model) {
1396
1396
  }
1397
1397
  return MODEL_PRICING["claude-sonnet-4"];
1398
1398
  }
1399
+ var MODEL_CONTEXT_WINDOW = {
1400
+ "claude-opus-4": 1e6,
1401
+ "claude-sonnet-4": 1e6,
1402
+ "claude-3-5-sonnet": 2e5,
1403
+ "claude-3-5-haiku": 2e5,
1404
+ "claude-3-haiku": 2e5
1405
+ };
1406
+ function getContextWindow(model) {
1407
+ if (!model) return 2e5;
1408
+ for (const [prefix, size] of Object.entries(MODEL_CONTEXT_WINDOW)) {
1409
+ if (model.startsWith(prefix)) return size;
1410
+ }
1411
+ return 2e5;
1412
+ }
1399
1413
  var HistoryService = class {
1400
1414
  constructor(pluginId, cwd) {
1401
1415
  this.pluginId = pluginId;
@@ -1498,7 +1512,7 @@ var HistoryService = class {
1498
1512
  if (!lastUsage) return null;
1499
1513
  const inputTokens = (lastUsage["input_tokens"] ?? lastUsage["prompt_tokens"] ?? 0) + (lastUsage["cache_read_input_tokens"] ?? 0) + (lastUsage["cache_creation_input_tokens"] ?? 0);
1500
1514
  const outputTokens = lastUsage["output_tokens"] ?? lastUsage["completion_tokens"] ?? 0;
1501
- const total = 2e5;
1515
+ const total = getContextWindow(lastModel);
1502
1516
  const percent = Math.min(100, Math.round(inputTokens / total * 100));
1503
1517
  return { used: inputTokens, total, percent, model: lastModel, outputTokens, cacheReadTokens: lastUsage["cache_read_input_tokens"] ?? 0 };
1504
1518
  }
@@ -1515,14 +1529,16 @@ var HistoryService = class {
1515
1529
  return 0;
1516
1530
  }
1517
1531
  const now = /* @__PURE__ */ new Date();
1518
- const monthStart = new Date(now.getFullYear(), now.getMonth(), 1).getTime();
1532
+ const monthStart = new Date(now.getFullYear(), now.getMonth(), 1);
1533
+ const monthStartIso = monthStart.toISOString();
1534
+ const monthStartMs = monthStart.getTime();
1519
1535
  let totalCost = 0;
1520
1536
  for (const projectDir of projectDirs) {
1521
1537
  let files;
1522
1538
  try {
1523
1539
  files = fs4.readdirSync(projectDir).filter((f) => f.endsWith(".jsonl")).filter((f) => {
1524
1540
  try {
1525
- return fs4.statSync(path4.join(projectDir, f)).mtimeMs >= monthStart;
1541
+ return fs4.statSync(path4.join(projectDir, f)).mtimeMs >= monthStartMs;
1526
1542
  } catch {
1527
1543
  return false;
1528
1544
  }
@@ -1541,6 +1557,8 @@ var HistoryService = class {
1541
1557
  try {
1542
1558
  const record = JSON.parse(line);
1543
1559
  if (record["type"] !== "assistant") continue;
1560
+ const timestamp = record["timestamp"];
1561
+ if (timestamp && timestamp < monthStartIso) continue;
1544
1562
  const msg = record["message"];
1545
1563
  if (!msg || msg["model"] === "<synthetic>") continue;
1546
1564
  const model = msg["model"] || "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codeam-cli",
3
- "version": "1.4.17",
3
+ "version": "1.4.19",
4
4
  "description": "Remote control Claude Code from your mobile device",
5
5
  "main": "dist/index.js",
6
6
  "bin": {