fluxflow-cli 2.8.2 → 2.8.4

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/fluxflow.js +52 -3
  2. package/package.json +1 -1
package/dist/fluxflow.js CHANGED
@@ -7048,7 +7048,19 @@ ${originalTextProcessed.length > USER_CONTEXT_LENGTH ? "... (truncated) ...\n\n"
7048
7048
  }
7049
7049
  if (fullContent) {
7050
7050
  finalSynthesis = fullContent;
7051
- if (lastUsage) await addToUsage("tokens", lastUsage.totalTokenCount || 0, aiProvider, janitorModel || "gemini-3.1-flash-lite");
7051
+ if (lastUsage) {
7052
+ const total = lastUsage.totalTokenCount || 0;
7053
+ const cached = lastUsage.cachedContentTokenCount || 0;
7054
+ const candidates = (lastUsage.candidatesTokenCount || 0) + (lastUsage.thoughtsTokenCount || 0);
7055
+ const jModel = janitorModel || "gemini-3.1-flash-lite";
7056
+ await addToUsage("tokens", total, aiProvider, jModel);
7057
+ if (cached > 0) {
7058
+ await addToUsage("cachedTokens", cached, aiProvider, jModel);
7059
+ }
7060
+ if (candidates > 0) {
7061
+ await addToUsage("candidateTokens", candidates, aiProvider, jModel);
7062
+ }
7063
+ }
7052
7064
  } else {
7053
7065
  throw new Error("No synthesis generated by Janitor.");
7054
7066
  }
@@ -7457,7 +7469,17 @@ ${newMemoryListStr}
7457
7469
  }
7458
7470
  }
7459
7471
  if (response.usageMetadata) {
7460
- await addToUsage("tokens", response.usageMetadata.totalTokenCount || 0, aiProvider, targetModel);
7472
+ const meta = response.usageMetadata;
7473
+ const total = meta.totalTokenCount || 0;
7474
+ const cached = meta.cachedContentTokenCount || 0;
7475
+ const candidates = (meta.candidatesTokenCount || 0) + (meta.thoughtsTokenCount || 0);
7476
+ await addToUsage("tokens", total, aiProvider, targetModel);
7477
+ if (cached > 0) {
7478
+ await addToUsage("cachedTokens", cached, aiProvider, targetModel);
7479
+ }
7480
+ if (candidates > 0) {
7481
+ await addToUsage("candidateTokens", candidates, aiProvider, targetModel);
7482
+ }
7461
7483
  }
7462
7484
  success = true;
7463
7485
  } catch (err) {
@@ -7510,12 +7532,39 @@ Provide a consolidated summary of the entire session.`;
7510
7532
  attempts++;
7511
7533
  try {
7512
7534
  response = await generateSimpleContent(settings, targetModel, prompt, systemInstruction, "Fast");
7535
+ if (response && response.usageMetadata) {
7536
+ const meta = response.usageMetadata;
7537
+ const total = meta.totalTokenCount || 0;
7538
+ const cached = meta.cachedContentTokenCount || 0;
7539
+ const candidates = (meta.candidatesTokenCount || 0) + (meta.thoughtsTokenCount || 0);
7540
+ await addToUsage("tokens", total, aiProvider, targetModel);
7541
+ if (cached > 0) {
7542
+ await addToUsage("cachedTokens", cached, aiProvider, targetModel);
7543
+ }
7544
+ if (candidates > 0) {
7545
+ await addToUsage("candidateTokens", candidates, aiProvider, targetModel);
7546
+ }
7547
+ }
7513
7548
  success = true;
7514
7549
  } catch (err) {
7515
7550
  if (attempts > 3) {
7516
7551
  if (aiProvider === "Google") {
7517
7552
  try {
7518
- const fallback = await generateSimpleContent(settings, "gemini-3.1-flash-lite", prompt, systemInstruction, "Fast");
7553
+ const fallbackModel = "gemini-3.1-flash-lite";
7554
+ const fallback = await generateSimpleContent(settings, fallbackModel, prompt, systemInstruction, "Fast");
7555
+ if (fallback && fallback.usageMetadata) {
7556
+ const meta = fallback.usageMetadata;
7557
+ const total = meta.totalTokenCount || 0;
7558
+ const cached = meta.cachedContentTokenCount || 0;
7559
+ const candidates = (meta.candidatesTokenCount || 0) + (meta.thoughtsTokenCount || 0);
7560
+ await addToUsage("tokens", total, aiProvider, fallbackModel);
7561
+ if (cached > 0) {
7562
+ await addToUsage("cachedTokens", cached, aiProvider, fallbackModel);
7563
+ }
7564
+ if (candidates > 0) {
7565
+ await addToUsage("candidateTokens", candidates, aiProvider, fallbackModel);
7566
+ }
7567
+ }
7519
7568
  return fallback.text || "";
7520
7569
  } catch (e) {
7521
7570
  return "";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "fluxflow-cli",
3
- "version": "2.8.2",
3
+ "version": "2.8.4",
4
4
  "date": "2026-06-18",
5
5
  "description": "A high-fidelity agentic terminal assistant for the Flux Era.",
6
6
  "keywords": [