vibeostheog 0.23.15 → 0.23.16
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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibeostheog",
|
|
3
|
-
"version": "0.23.
|
|
3
|
+
"version": "0.23.16",
|
|
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",
|
|
@@ -215,6 +215,8 @@ export function syncControlSettings(cv, options = {}) {
|
|
|
215
215
|
const existingSlot = loadSessionSlot(sid);
|
|
216
216
|
if (existingSlot !== slot) {
|
|
217
217
|
writeSessionSlot(sid, slot);
|
|
218
|
+
writeIf("vector_changed_slot", slot);
|
|
219
|
+
writeIf("vector_changed_at", Date.now());
|
|
218
220
|
const applied = applySlot(slot);
|
|
219
221
|
if (!applied?.ok) {
|
|
220
222
|
console.error(`[vibeOS] failed to apply slot ${slot}: ${applied?.reason || "unknown"}`);
|
package/src/lib/hooks/footer.js
CHANGED
|
@@ -296,6 +296,19 @@ async function _appendFooter(input, output, directory) {
|
|
|
296
296
|
if (isApiConnected()) {
|
|
297
297
|
vibeLine += ` | ${vibeBrand}${flashIcon}`;
|
|
298
298
|
}
|
|
299
|
+
try {
|
|
300
|
+
const bb = _latestBlackboxState;
|
|
301
|
+
if (bb?.sub_regime)
|
|
302
|
+
vibeLine += ` | ${bb.sub_regime}`;
|
|
303
|
+
}
|
|
304
|
+
catch { }
|
|
305
|
+
try {
|
|
306
|
+
const sel = loadSelection();
|
|
307
|
+
if (sel?.vector_changed_slot && sel?.vector_changed_at && (Date.now() - sel.vector_changed_at < 60000)) {
|
|
308
|
+
vibeLine += ` | →${sel.vector_changed_slot}`;
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
catch { }
|
|
299
312
|
const footerText = stripped + `\n\n${vibeLine} —`;
|
|
300
313
|
if (_blackboxEnabled) {
|
|
301
314
|
try {
|
package/src/lib/turn-classify.js
CHANGED
|
@@ -85,12 +85,15 @@ function computeControlVector(_state, _action, _optimizationMode) {
|
|
|
85
85
|
const mode = resolveOptimizationMode(_state?.sub_regime, _state?.latest_stress_multiplier, _optimizationMode);
|
|
86
86
|
const isStrict = mode === "quality" || mode === "vibemax";
|
|
87
87
|
const isRelaxed = mode === "budget" || mode === "speed";
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
const subRegime = _state?.sub_regime || "INIT";
|
|
89
|
+
const stress = Number(_state?.latest_stress_multiplier ?? 0);
|
|
90
|
+
const tierBias = stress > 1.5 ? "brain"
|
|
91
|
+
: subRegime === "CONVERGING" || subRegime === "CLOSED" ? "brain"
|
|
92
|
+
: subRegime === "REFINING" || subRegime === "LOOPING" ? "medium"
|
|
93
|
+
: mode === "quality" || mode === "longrun" ? "brain"
|
|
94
|
+
: mode === "speed" || mode === "vibemax" ? "medium"
|
|
95
|
+
: mode === "balanced" ? "auto"
|
|
96
|
+
: "cheap";
|
|
94
97
|
return {
|
|
95
98
|
enforcement_mode: isStrict ? "strict" : isRelaxed ? "relaxed" : "normal",
|
|
96
99
|
enforcement_reason: `[optimize: ${mode}] using safe offline defaults`,
|