vibeostheog 0.24.3 → 0.24.5

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/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ ## 0.24.5
2
+ - fix: cap saveEst at to prevent runaway pricing data corruption
3
+ - chore: v0.24.4
4
+
5
+
1
6
  ## 0.23.61
2
7
  - chore: clean TS source warnings and bump patch
3
8
 
package/dist/vibeOS.js CHANGED
@@ -6081,7 +6081,7 @@ function classifyTurnSimple(userText) {
6081
6081
  if (new RegExp("^I (need|want|would like) to (" + IMPL_VERBS + ")\\b", "i").test(lower)) {
6082
6082
  return "REFINING";
6083
6083
  }
6084
- if (/^(the |there is |there are |i think |looks like |seems like |i see |why (is|are|does|did) )/.test(lower)) {
6084
+ if (/^(the |there is |there are |i think |looks like |seems like |i see |why (is|are|does|did) )/i.test(lower)) {
6085
6085
  return "EXPLORING";
6086
6086
  }
6087
6087
  if (/^(how|what|why|when|where|who|can you|could you|let me|tell me|explain|describe|show|list|check|is there|are there|does|do you|summarize|elaborate|clarify|inspect|trace|find|search|look|read|show me|dump|debug)/i.test(lower)) {
@@ -9371,9 +9371,11 @@ function observeToolPattern(toolName, input, output, directory3) {
9371
9371
  } catch {
9372
9372
  }
9373
9373
  }
9374
+ var MAX_SAVE_EST_PER_WARN = 5;
9374
9375
  function recordSaving(tool2, reason, saveEst, meta = {}) {
9375
9376
  try {
9376
9377
  if (!saveEst || saveEst <= 0) return 0;
9378
+ if (saveEst > MAX_SAVE_EST_PER_WARN) saveEst = MAX_SAVE_EST_PER_WARN;
9377
9379
  const firstWord = meta?.firstWord || tool2 || "";
9378
9380
  updateState((s) => {
9379
9381
  s.lifetime ??= { total_savings_usd: 0, cache_savings_usd: 0, missed_context7_usd: 0, session_count: 0, warn_count: 0 };
@@ -9597,7 +9599,7 @@ async function apiComputeControlVector(state, action, optimizationMode) {
9597
9599
  const res = await remoteCall("blackboxControlVector", [state, action, optimizationMode], null);
9598
9600
  if (res?.control_vector) {
9599
9601
  const local = computeControlVector2(state, action, optimizationMode);
9600
- return { ...res.control_vector, tier_bias: local.tier_bias, optimization_mode: local.optimization_mode };
9602
+ return { ...res.control_vector, tier_bias: local.tier_bias, optimization_mode: local.optimization_mode, enforcement_mode: local.enforcement_mode, flow_mode: local.flow_mode, tdd_mode: local.tdd_mode, thinking_mode: local.thinking_mode };
9601
9603
  }
9602
9604
  } catch {
9603
9605
  }
@@ -10268,6 +10270,17 @@ var onSystemTransform = async (_input, output) => {
10268
10270
  };
10269
10271
 
10270
10272
  // src/lib/hooks/shared-footer.ts
10273
+ var REGIME_TAG = {
10274
+ INIT: "INIT",
10275
+ DIVERGENT: "DVRG",
10276
+ EXPLORING: "XPLR",
10277
+ REFINING: "RFNE",
10278
+ CONVERGING: "CVGE",
10279
+ CLOSED: "CLSD",
10280
+ LOOPING: "LOOP",
10281
+ AUDIT: "AUDT",
10282
+ FORENSIC: "FRNC"
10283
+ };
10271
10284
  var BRAND_MAP = {
10272
10285
  vibeultrax: "VibeUltraX",
10273
10286
  vibeqmax: "VibeQMaX",
@@ -10331,9 +10344,10 @@ function buildEnforcementTags(opts) {
10331
10344
  return tags;
10332
10345
  }
10333
10346
  function buildFooterLine(input) {
10334
- const { activeSlot, sessionSlot, providerLabel, modelName, ltTotal, ltTrend, vibeBrand, optMode, flashIcon, enfTags, vectorChangedSlot } = input;
10347
+ const { activeSlot, sessionSlot, providerLabel, modelName, ltTotal, ltTrend, vibeBrand, optMode, flashIcon, enfTags, vectorChangedSlot, subRegime } = input;
10335
10348
  const tierIcon = resolveTierIcon(activeSlot);
10336
- let line = `\u2014 ${tierIcon} ${activeSlot} | ${providerLabel} | ${modelName}`;
10349
+ const regimeTag = subRegime ? REGIME_TAG[subRegime] || subRegime.slice(0, 4) : null;
10350
+ let line = `\u2014 ${tierIcon} ${activeSlot} | ${providerLabel} | ${modelName}${regimeTag ? ` \u25B6 ${regimeTag}` : ""}`;
10337
10351
  if (ltTotal > 0) {
10338
10352
  const savingsPulse = formatSavingsPulse(ltTotal, ltTrend);
10339
10353
  if (savingsPulse) line += ` | ${savingsPulse}`;
@@ -10568,6 +10582,7 @@ async function _appendFooter(input, output, directory3) {
10568
10582
  const vibeBrand = resolveBrand(optModeFooter, activeSlot);
10569
10583
  const flashIcon = isApiConnected2() ? " \u26A1" : "";
10570
10584
  const displayMode = selNowFooter?.optimization_mode || optMode || "auto";
10585
+ const currentSubRegime = _latestBlackboxState?.sub_regime || classifyTurnSimple2(latestUserIntent || "");
10571
10586
  const vibeLine = buildFooterLine({
10572
10587
  activeSlot,
10573
10588
  providerLabel: execution.provider_label,
@@ -10579,7 +10594,8 @@ async function _appendFooter(input, output, directory3) {
10579
10594
  flashIcon,
10580
10595
  enfTags,
10581
10596
  sessionSlot,
10582
- vectorChangedSlot: selNowFooter?.vector_changed_slot
10597
+ vectorChangedSlot: selNowFooter?.vector_changed_slot,
10598
+ subRegime: currentSubRegime
10583
10599
  });
10584
10600
  const footerText = stripped + `
10585
10601
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibeostheog",
3
- "version": "0.24.3",
3
+ "version": "0.24.5",
4
4
  "description": "Cost-aware delegation enforcer for OpenCode. Tracks model usage, routes Task subagents to cheaper tiers, surfaces cumulative savings in chat. Includes research audit, reporting framework, project memory, progressive scratchpad decadence, and trinity CLI for brain/medium/cheap slot switching.",
5
5
  "scripts": {
6
6
  "release": "node scripts/release.mjs",