vibeostheog 0.25.50 → 0.25.52
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/.opencode/skills/vibe/SKILL.md +27 -0
- package/CHANGELOG.md +68 -1
- package/README.md +259 -110
- package/dist/assets/dashboard/index.html +494 -18
- package/dist/assets/dashboard/vibeos-dashboard-config.js +1 -1
- package/dist/vibeOS.js +5560 -2726
- package/package.json +2 -1
- package/scripts/deploy.mjs +10 -0
- package/scripts/lib/vibe-skill.mjs +44 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vibe
|
|
3
|
+
description: Use when the user asks for the primary vibeOS entrypoint, says /vibe, wants a fast dashboard/status check, or wants to control sessions, templates, model slots, TDD, flow, blackbox, reports, or diagnostics through vibeOS.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# /vibe
|
|
7
|
+
|
|
8
|
+
Use this as the default workspace command for vibeOS.
|
|
9
|
+
|
|
10
|
+
## Route quickly
|
|
11
|
+
|
|
12
|
+
- `vibe status` for the one-line system summary
|
|
13
|
+
- `vibe dashboard` for the live dashboard URL and browser view
|
|
14
|
+
- `vibe help` when the user wants the available command surface
|
|
15
|
+
|
|
16
|
+
## What belongs here
|
|
17
|
+
|
|
18
|
+
- Session orchestration and session templates
|
|
19
|
+
- Model slots, mode, lock, enforcement, flow, and TDD controls
|
|
20
|
+
- Blackbox, patterns, reports, and diagnostics
|
|
21
|
+
- Remote API-backed features when available
|
|
22
|
+
|
|
23
|
+
## Working rules
|
|
24
|
+
|
|
25
|
+
- Keep the implementation device-agnostic so it works for every user who installs the plugin.
|
|
26
|
+
- Prefer the built-in `vibe` and `trinity` command surface over shell workarounds.
|
|
27
|
+
- Treat the dashboard as the canonical UI for session-level control when the user asks for a visual view.
|
package/CHANGELOG.md
CHANGED
|
@@ -1,7 +1,74 @@
|
|
|
1
|
-
## 0.25.
|
|
1
|
+
## 0.25.52
|
|
2
|
+
- feat: ship universal /vibe command
|
|
3
|
+
- feat: add stable dashboard command alias
|
|
4
|
+
- fix: publish dashboard url and harden cascade proof (#290)
|
|
5
|
+
- fix: make footer alerts cover nested desktop outputs
|
|
6
|
+
- fix: preserve tool titles in footer hook (#275)
|
|
2
7
|
- fix: restore reward footer persistence (#274)
|
|
3
8
|
- fix: keep scratchpad cache session-only (#271)
|
|
9
|
+
- refactor: simplify backend-first control flow (#296)
|
|
10
|
+
- test: add missing integration tests for #274, #275, dashboard sync; fix orphaned cache isolation test
|
|
4
11
|
- test: cover empty reward input (#269)
|
|
12
|
+
- chore: v0.25.51
|
|
13
|
+
Fix live dashboard and API state handling (#299)
|
|
14
|
+
Codex/rebase api state fix (#298)
|
|
15
|
+
Fix live home and dashboard runtime sync (#297)
|
|
16
|
+
Repair live session truth and loop closure (#295)
|
|
17
|
+
Fix dashboard URL publication and state recovery (#294)
|
|
18
|
+
Fix README code fence syntax (#292)
|
|
19
|
+
Add real session orchestration and cascade coverage (#293)
|
|
20
|
+
Update README.md (#291)
|
|
21
|
+
Make VibeUltraX the default mode (#289)
|
|
22
|
+
Document vibe command surface (#288)
|
|
23
|
+
Merge pull request #287 from DrunkkToys/codex/dashboard-url-ready
|
|
24
|
+
Merge remote-tracking branch 'origin/master'
|
|
25
|
+
Merge branch 'codex/fix-blackbox-role-shape'
|
|
26
|
+
Fix blackbox role-only session tracking
|
|
27
|
+
Guard slow hot-path calls and compact pivot cache
|
|
28
|
+
Clarify README command syntax
|
|
29
|
+
Fix startup repair and delegation fallbacks
|
|
30
|
+
Cover recent session edge cases
|
|
31
|
+
Fix free-model seed precedence
|
|
32
|
+
Use explicit free-model seed
|
|
33
|
+
Seed free model tiers on fresh installs
|
|
34
|
+
Fix dashboard URL recovery
|
|
35
|
+
Fix startup repair and delegation fallbacks
|
|
36
|
+
Cover recent session edge cases
|
|
37
|
+
Fix free-model seed precedence
|
|
38
|
+
Use explicit free-model seed
|
|
39
|
+
Seed free model tiers on fresh installs
|
|
40
|
+
Fix dashboard URL recovery
|
|
41
|
+
Default fresh installs to vibeultrax
|
|
42
|
+
Merge pull request #278 from DrunkkToys/codex/strat
|
|
43
|
+
Fix dashboard sync path for web search
|
|
44
|
+
Merge origin/master into codex/strat
|
|
45
|
+
Add web search frontend
|
|
46
|
+
Update README.md
|
|
47
|
+
Fix footer claim alert visibility (#277)
|
|
48
|
+
Merge remote-tracking branch 'origin/master' into codex/strat
|
|
49
|
+
Fix footer claim alert visibility
|
|
50
|
+
Improve cache reuse and routing (#276)
|
|
51
|
+
Improve cache reuse and routing
|
|
52
|
+
fix pivot counter-pivot handoff + compressed project memory savings (#273)
|
|
53
|
+
fix pivot counter-pivot handoff (#272)
|
|
54
|
+
Merge remote-tracking branch 'origin/release/v0.25.48'
|
|
55
|
+
Stabilize claim status footer (#270)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## 0.25.51
|
|
59
|
+
- fix: preserve tool titles in footer hook (#275)
|
|
60
|
+
- fix: restore reward footer persistence (#274)
|
|
61
|
+
- fix: keep scratchpad cache session-only (#271)
|
|
62
|
+
- test: cover empty reward input (#269)
|
|
63
|
+
Fix dashboard sync path for web search
|
|
64
|
+
Merge origin/master into codex/strat
|
|
65
|
+
Add web search frontend
|
|
66
|
+
Update README.md
|
|
67
|
+
Fix footer claim alert visibility (#277)
|
|
68
|
+
Merge remote-tracking branch 'origin/master' into codex/strat
|
|
69
|
+
Fix footer claim alert visibility
|
|
70
|
+
Improve cache reuse and routing (#276)
|
|
71
|
+
Improve cache reuse and routing
|
|
5
72
|
fix pivot counter-pivot handoff + compressed project memory savings (#273)
|
|
6
73
|
fix pivot counter-pivot handoff (#272)
|
|
7
74
|
Merge remote-tracking branch 'origin/release/v0.25.48'
|
package/README.md
CHANGED
|
@@ -1,61 +1,131 @@
|
|
|
1
|
-
# vibeOS for OpenCode
|
|
1
|
+
# vibeOS for OpenCode -- Innocence v0.25.52
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A quality-first control plane for AI-assisted coding.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
When AI coding is cheap, you use more of it. That is the upside of the current moment -- the marginal cost of a code suggestion has collapsed. But volume does not equal quality. The more you delegate to AI, the more often a mediocre suggestion slips through: a half-implemented fix, a fabricated API call, a test that passes only because the assertions are stubs. The quality problem gets worse as the cost problem gets better. vibeOS exists to solve the quality problem. The savings are a side effect.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
OpenCode Desktop gives you access to the most capable language models ever created -- Opus, Sonnet, DeepSeek v4 Pro -- but running them on every single turn adds up fast. More importantly, routing every turn through the most expensive model does not guarantee the best output. A cheap model proposing, a mid-tier model reviewing, and a top-tier model polishing often produces better results than a single expensive model guessing alone. vibeOS makes that routing decision automatically, on every turn, based on what you are actually doing.
|
|
8
8
|
|
|
9
9
|
## How It Feels
|
|
10
10
|
|
|
11
|
-
The first thing you notice is the footer. A single line at the bottom of every assistant response, barely visible, shows you what model handled the turn and
|
|
11
|
+
The first thing you notice is the footer. A single line at the bottom of every assistant response, barely visible, shows you what model handled the turn and the regime classification for what just happened. It is not a warning. It is not a nag. It is a quality receipt.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
The dashboard now opens on an executive Home summary instead of a dense table, so you can see the active session, project, mode, stress, savings, blackbox state, open TODOs, and next action at a glance.
|
|
14
|
+
|
|
15
|
+
```text
|
|
16
|
+
— brain | DeepSeek | v4-flash -> RFNE | $198.93 saved | VibeUltraX . Quality >>> | guarded | _
|
|
15
17
|
```
|
|
16
18
|
|
|
17
|
-
When you write code, the system routes implementation work to cheaper tiers automatically if the brain is reserved for strategy. You never see a block screen. You never get a cost warning interrupting your flow. The enforcement happens transparently
|
|
19
|
+
When you write code, the system routes implementation work to cheaper tiers automatically if the brain is reserved for strategy. You never see a block screen. You never get a cost warning interrupting your flow. The enforcement happens transparently -- the work gets done, just on the right tier.
|
|
18
20
|
|
|
19
21
|
The VibeBoX decision engine watches how you work. Are you exploring a new codebase? It keeps the cheap model active and stays out of your way. Are you converging on a solution? It quietly upgrades to full quality mode with strict enforcement. Are you stuck in a loop fixing the same test? It detects the frustration pattern and escalates before you ask. You never configure any of this. It just adapts.
|
|
20
22
|
|
|
21
|
-
The stress detector reads your messages for signs of frustration
|
|
23
|
+
The stress detector reads your messages for signs of frustration -- repeated failures, urgency, abrupt tone. When it senses stress above a threshold, it upgrades your model tier automatically. You get the best possible assistance while you are in the weeds, and you never had to ask.
|
|
24
|
+
|
|
25
|
+
The lie detector flags when the assistant claims success without evidence. The laziness detector catches short outputs, TODO placeholders, and skipped delegation on brain tier. The reward engine gamifies quality with XP credits for good outcomes and penalties for bad ones. You forget vibeOS is even running. That is the point.
|
|
26
|
+
|
|
27
|
+
## The Cascade Engine
|
|
28
|
+
|
|
29
|
+
vibeOS uses a three-tier cascade to route every turn through the cheapest model that can produce a quality result.
|
|
22
30
|
|
|
23
|
-
|
|
31
|
+
### How It Works
|
|
24
32
|
|
|
25
|
-
|
|
33
|
+
1. **Cheap proposal** -- Your configured cheap slot generates an initial response (e.g., a local Ollama model via `vibe set cheap magiccoder:7b`, or any API model).
|
|
34
|
+
2. **Flash review** -- A mid-tier model (DeepSeek v4 Flash) critiques and refines the proposal.
|
|
35
|
+
3. **Pro polish** -- The brain-tier model (DeepSeek v4 Pro) applies a final quality pass on complex sections.
|
|
26
36
|
|
|
27
|
-
|
|
37
|
+
Not every turn goes through all three stages. The cascade router estimates input difficulty and routes simple queries directly to the cheap tier. Complex reasoning, multi-file edits, and ambiguous instructions escalate to medium or brain. The router learns from session outcomes and calibrates its thresholds over time.
|
|
28
38
|
|
|
29
|
-
|
|
39
|
+
Benchmarked at **107% of raw brain quality at 58% of cost**. Local inference is free; only the Flash and Pro stages incur API costs. This is the first routing strategy that Pareto-dominates the raw brain baseline -- better quality, lower cost.
|
|
30
40
|
|
|
31
|
-
|
|
41
|
+
### Research Foundation
|
|
32
42
|
|
|
33
|
-
|
|
34
|
-
2. **Flash review** — DeepSeek v4 Flash critiques and refines the proposal.
|
|
35
|
-
3. **Pro polish** — DeepSeek v4 Pro applies final quality pass on complex sections.
|
|
43
|
+
The cascade design is informed by recent work in LLM routing and cascade inference:
|
|
36
44
|
|
|
37
|
-
|
|
45
|
+
**Dekoninck et al. (2024)** -- "A Unified Approach to Routing and Cascading for LLMs" (arXiv:2410.10347, 52 citations). Foundational framework showing cascade routing is theoretically optimal when calibrated routers can estimate input difficulty. Proves cascades Pareto-dominate single-model inference on the quality-cost curve. This is the theoretical basis for vibeOS's claim that a three-stage cascade can outperform a single expensive model on both quality and cost simultaneously.
|
|
46
|
+
|
|
47
|
+
**Moslem & Kelleher (2026)** -- "Dynamic Model Routing and Cascading for Efficient LLM Inference: A Survey" (arXiv:2603.04445, 10 citations). Comprehensive survey covering all routing paradigms: classifier-based, embedding-based, RL-based, hybrid. Establishes cascade routing as a well-studied class with practical deployment strategies. Validates that the cheap-propose / mid-review / pro-polish pattern is a known and effective architecture, not an ad hoc design.
|
|
48
|
+
|
|
49
|
+
**Jiang et al. (2025)** -- "Cascadia: An Efficient Cascade Serving System for Large Language Models" (arXiv:2506.04203, 3 citations). Co-optimizes deployment and routing -- reduces compute cost 42% and latency 50% vs. naive cascade serving. Demonstrates that cascades work in practice, not just in theory. The cost reduction numbers align closely with vibeOS's measured 58% cost reduction under VibeUltraX.
|
|
50
|
+
|
|
51
|
+
**Bouchard (2026)** -- "Is Escalation Worth It? A Decision-Theoretic Characterization of Cascade Routing at Inference Time" (arXiv:2604.04408, 1 citation). Models escalation as a binary decision problem. Shows cascades pay off when router accuracy exceeds 84% and cheaper model failure rate is above 5%. Below that, flat routing dominates. This work informs vibeOS's escalation thresholds: the cascade only escalates when the router confidence exceeds the point where flat routing would be better.
|
|
38
52
|
|
|
39
53
|
### VibeBoX Decision Engine
|
|
40
54
|
|
|
41
55
|
At the core of vibeOS is a real-time decision engine that classifies every user turn into one of seven sub-regimes:
|
|
42
56
|
|
|
43
|
-
- **INIT / DIVERGENT / EXPLORING**
|
|
44
|
-
- **REFINING**
|
|
45
|
-
- **CONVERGING / CLOSED**
|
|
46
|
-
- **LOOPING**
|
|
57
|
+
- **INIT / DIVERGENT / EXPLORING** -- You are learning the codebase, asking questions, browsing. cheap model, relaxed enforcement. Stay out of your way.
|
|
58
|
+
- **REFINING** -- You are iterating on a solution. Default mode: VibeUltraX, auto-escalate on complexity.
|
|
59
|
+
- **CONVERGING / CLOSED** -- You are finalizing. Full quality mode, brain tier, strict enforcement and flow checks.
|
|
60
|
+
- **LOOPING** -- You are stuck. Speed mode, medium tier, cycle-breaking interventions.
|
|
47
61
|
|
|
48
62
|
Classification uses 11 derived features per turn: message length, code block density, question ratio, urgency signals, sentiment, complexity estimate, repetition, instruction density, and more. Four escalating intervention levels prevent infinite loops. PIVOT/SWITCH detection recognizes context changes and injects scope-confirmation directives.
|
|
49
63
|
|
|
50
|
-
When the VibeBoX is disabled, a lightweight
|
|
64
|
+
When the VibeBoX is disabled, a lightweight classifyTurnSimple fallback distinguishes Q&A from implementation intent using regex patterns.
|
|
51
65
|
|
|
52
66
|
### Stress-Aware Routing
|
|
53
67
|
|
|
54
|
-
A real-time stress scoring pipeline analyzes user messages for frustration signals. When stress exceeds 1.5 (on a 0
|
|
68
|
+
A real-time stress scoring pipeline analyzes user messages for frustration signals. When stress exceeds 1.5 (on a 0-3 scale), any regime is escalated to quality mode. The stress gauge renders in the footer as a subtle indicator. Inoculation directives are injected into system prompts to adjust the assistant's tone -- slower, more structured, more thorough.
|
|
55
69
|
|
|
56
70
|
### Pattern Learner
|
|
57
71
|
|
|
58
|
-
Per-project friction and routine tracking. The pattern learner observes which tools you use, what errors recur, and where you spend most of your time. Over time, it surfaces optimization suggestions and learns struggle/tech co-occurrence mappings. Cross-project patterns are stored in
|
|
72
|
+
Per-project friction and routine tracking. The pattern learner observes which tools you use, what errors recur, and where you spend most of your time. Over time, it surfaces optimization suggestions and learns struggle/tech co-occurrence mappings. Cross-project patterns are stored in global-learning.json and inform pricing hints and routing hints.
|
|
73
|
+
|
|
74
|
+
### Token Compression
|
|
75
|
+
|
|
76
|
+
Three-layer compression pipeline reduces token waste without losing semantic content:
|
|
77
|
+
|
|
78
|
+
1. **Web fetch stripping** (`compressText`) -- Applied immediately after webfetch tool execution. Strips verbose status lines, file-operation prefixes, and bullet markers. Collapses blank lines. If the result still exceeds 2000 characters, extracts bullet-priority lines and truncates to 30% of original size. Threshold: 2000 characters minimum.
|
|
79
|
+
|
|
80
|
+
2. **Cold-storage context compression** (`compressToolOutputs`) -- Runs on every LLM turn via the messages transform hook. Tool outputs older than the last 10 messages (the "hot window") are written to content-addressed cold storage (`~/.claude/scratchpad/by-hash/{hash}.txt`) and replaced with a ~200-character summary reference. Hot messages stay fully expanded so the LLM can reference recent context. Savings are estimated per-model using `cacheSavePer1MInputTokens()` and recorded to the delegation state.
|
|
81
|
+
|
|
82
|
+
3. **Project memory directives** (`projectMemoryDirective`) -- Compresses per-project state (sessions, reports, tech stack, topics) into a single-line directive injected into the system prompt. Full JSON stored for audit; prompt gets only the compact form.
|
|
83
|
+
|
|
84
|
+
The remote API also exposes a `POST /api/v1/compress/context` endpoint for server-side bullet-point extraction, available as a fallback for arbitrary text compression.
|
|
85
|
+
|
|
86
|
+
### Rotation Memory (Scratchpad Decadence)
|
|
87
|
+
|
|
88
|
+
The scratchpad rotation system manages the lifecycle of cached tool outputs through four age-based tiers:
|
|
89
|
+
|
|
90
|
+
| Age | Action | Content Preserved |
|
|
91
|
+
|-----|--------|-------------------|
|
|
92
|
+
| < 5 minutes | Kept as-is | Full content |
|
|
93
|
+
| 5 min - 24 hours | Warm storage | 500-char summary + pointer |
|
|
94
|
+
| 24 - 48 hours | Cold storage | 200-char summary + pointer |
|
|
95
|
+
| > 48 hours | Deleted | Nothing |
|
|
96
|
+
|
|
97
|
+
Rotation runs opportunistically on every tool execution and message transform, throttled to once per minute via `_lastDecadenceRun`. The effect is graceful degradation: fresh cache hits return full content, warm hits return summaries, cold hits return minimal previews, and expired entries are gone.
|
|
98
|
+
|
|
99
|
+
Global caps prevent unbounded growth: 1000 files / 10 MB total, 200 files / 2 MB per session. Stale session directories are cleaned up after 48 hours.
|
|
100
|
+
|
|
101
|
+
### Smart Cache Prediction
|
|
102
|
+
|
|
103
|
+
The smart cache predicts whether a tool query will hit scratchpad cache before execution, using three similarity functions blended into a composite score:
|
|
104
|
+
|
|
105
|
+
- **Jaccard similarity** (weight 0.3) -- Word-level overlap between current and cached prompts
|
|
106
|
+
- **Cosine bigram similarity** (weight 0.3) -- Word-pair co-occurrence angle
|
|
107
|
+
- **Keyword overlap** (weight 0.4) -- Domain-weighted overlap (code/file/fix/test keywords weighted 3x)
|
|
108
|
+
|
|
109
|
+
The prediction engine (`predictCacheHit`) computes a confidence score and returns whether caching is worthwhile, estimated savings, and the most similar cached entries. Per-tool hit rates are tracked with exponential decay (DECAY = 0.9) so recent performance matters more than historical averages.
|
|
110
|
+
|
|
111
|
+
Cache state persists across sessions in `~/.claude/global-learning.json` with a 7-day TTL eviction. The prediction results feed into the delegation enforcer's cost calculations and appear in the live footer savings display.
|
|
112
|
+
|
|
113
|
+
### Pivot and Counter-Pivot
|
|
114
|
+
|
|
115
|
+
Two complementary mechanisms manage context transitions:
|
|
116
|
+
|
|
117
|
+
**Forward pivot** -- Detects when you abruptly change topic mid-session. Uses a composite score of word-overlap distance, instruction-density delta, message-length ratio, and action-type change. Fires when `pivotScore > 0.45`. When detected:
|
|
118
|
+
1. Snapshots the current workflow (intent, files, decisions, blockers, code) to `~/.claude/.vibeos-pivot-cache.json`
|
|
119
|
+
2. Downgrades mode to budget (cheap tier, thinking off, relaxed enforcement)
|
|
120
|
+
3. Injects a context-shift directive into the system prompt
|
|
121
|
+
|
|
122
|
+
**Counter-pivot** -- Detects when you return to a previously abandoned workflow. Compares current query tokens against all cached workflow snapshots using Jaccard similarity with exact-match and recency bonuses. Fires when confidence >= 0.5. When detected:
|
|
123
|
+
1. Restores files, decisions, blockers, and code snippets from the cached workflow
|
|
124
|
+
2. Injects a `[PIVOT BACK]` context-restoration string into the system prompt
|
|
125
|
+
3. Warms the smart cache with tool outputs from the cached workflow
|
|
126
|
+
4. Increments `access_count` on the cached entry (learning which workflows get revisited)
|
|
127
|
+
|
|
128
|
+
The pivot system integrates with the loop intervention escalation: assertive loop-breaking uses "PIVOT: list 3 alternative approaches", and escalated intervention uses "STOP entirely. Reset strategy, SWITCH topics."
|
|
59
129
|
|
|
60
130
|
## The Numbers
|
|
61
131
|
|
|
@@ -69,7 +139,7 @@ The savings are real and measurable. Every write/edit on the brain tier is inter
|
|
|
69
139
|
| Opus -> Sonnet | $0.0264 | $0.26 | $2.64 | $26.40 |
|
|
70
140
|
| Sonnet -> Haiku | $0.0044 | $0.04 | $0.44 | $4.40 |
|
|
71
141
|
|
|
72
|
-
The running total is persisted in
|
|
142
|
+
The running total is persisted in ~/.claude/delegation-state.json and displayed in the live footer. Cache savings are tracked separately under cache_savings_usd.
|
|
73
143
|
|
|
74
144
|
### Model Tiers
|
|
75
145
|
|
|
@@ -77,10 +147,10 @@ Benchmarked on the DeepSeek v4 family. Prices based on 700 input + 300 output to
|
|
|
77
147
|
|
|
78
148
|
| Slot | Model | API ID | Per Turn | Per 1K Turns | Tier |
|
|
79
149
|
|------|-------|--------|----------|--------------|------|
|
|
80
|
-
| brain | v4 Pro |
|
|
81
|
-
| medium | v4 Flash |
|
|
82
|
-
| cheap | DeepSeek Chat |
|
|
83
|
-
| cheap (local) | MagicCoder:7b |
|
|
150
|
+
| brain | v4 Pro | deepseek/deepseek-v4-pro | $0.00057 | $0.58 | high |
|
|
151
|
+
| medium | v4 Flash | deepseek/deepseek-v4-flash | $0.000182 | $0.18 | mid |
|
|
152
|
+
| cheap | DeepSeek Chat | deepseek/deepseek-chat | $0.00 | $0.00 | budget |
|
|
153
|
+
| cheap (local) | MagicCoder:7b | magiccoder:7b (Ollama) | $0.00 | $0.00 | budget |
|
|
84
154
|
|
|
85
155
|
DeepSeek Chat costs $0/turn when routed through the Direct DeepSeek provider (no OpenRouter markup).
|
|
86
156
|
|
|
@@ -94,13 +164,13 @@ DeepSeek Chat costs $0/turn when routed through the Direct DeepSeek provider (no
|
|
|
94
164
|
| VibeMaX | ~75% | 0.18x | 82% | trained cascade (conservative escalate) |
|
|
95
165
|
| Budget | ~40% | 0.00x | 100% | direct routing |
|
|
96
166
|
|
|
97
|
-
**VibeUltraX**
|
|
167
|
+
**VibeUltraX** -- Default mode. Cheap slot proposes, medium reviews, brain refines. 107% quality at 58% cost.
|
|
98
168
|
|
|
99
|
-
**VibeQMaX**
|
|
169
|
+
**VibeQMaX** -- Routes strategic turns through v4 Pro with full thinking, strict enforcement, strict flow checks, and quality TDD. Write/edit delegated per enforcement rules. Blended cost ~$0.00029/turn (50% of brain baseline).
|
|
100
170
|
|
|
101
|
-
**VibeMaX**
|
|
171
|
+
**VibeMaX** -- ML-optimized medium mode. Routes through v4 Flash with a random forest classifier (29 trees, gini-split, trained on telemetry) that decides each turn. ~75% quality at 18% cost.
|
|
102
172
|
|
|
103
|
-
**Budget**
|
|
173
|
+
**Budget** -- DeepSeek Chat. Direct routing. ~40% quality at zero cost.
|
|
104
174
|
|
|
105
175
|
### Mode Configuration
|
|
106
176
|
|
|
@@ -115,7 +185,7 @@ DeepSeek Chat costs $0/turn when routed through the Direct DeepSeek provider (no
|
|
|
115
185
|
|
|
116
186
|
### Auto-Mode Behavior
|
|
117
187
|
|
|
118
|
-
When auto-mode is active, the VibeBoX control vector is the authority.
|
|
188
|
+
When auto-mode is active, the VibeBoX control vector is the authority. syncControlSettings() writes enforcement, flow, TDD, and thinking mode to model-tiers.json every turn:
|
|
119
189
|
|
|
120
190
|
| Regime | Mode | Enforce | Flow | TDD | Tier | Think |
|
|
121
191
|
|--------|------|---------|------|-----|------|-------|
|
|
@@ -130,8 +200,8 @@ Stress > 1.5 escalates any regime to quality mode regardless of the above mappin
|
|
|
130
200
|
| Feature | What it does |
|
|
131
201
|
|---------|-------------|
|
|
132
202
|
| Delegation enforcement | Blocks write/edit on brain tier, routes to cheaper tiers transparently |
|
|
133
|
-
| Live savings footer | Tier, provider, model name, total savings, mode
|
|
134
|
-
| Web dashboard | SolidJS SPA with SSE real-time push for model split, savings, session history, controls |
|
|
203
|
+
| Live savings footer | Tier, provider, model name, total savings, mode -- one line of reassurance |
|
|
204
|
+
| Web dashboard | Session-first SolidJS SPA with executive Home summary, session actions, per-session templates, SSE real-time push for model split, savings, session history, controls |
|
|
135
205
|
| Trinity runtime | Switch tiers mid-session, change optimization mode, toggle subsystems live |
|
|
136
206
|
| Flow enforcer | Pattern-rule checks on write/edit. Extracts TODO/FIXME into append-only queue. |
|
|
137
207
|
| TDD enforcer | Auto-creates test skeletons for changed source. Strict mode fails TODO tests. |
|
|
@@ -142,11 +212,21 @@ Stress > 1.5 escalates any regime to quality mode regardless of the above mappin
|
|
|
142
212
|
| Report tools | report-save, report-list, report-read, research-audit |
|
|
143
213
|
| MCP server | Extended tool capabilities + dashboard serving + SSE push endpoint |
|
|
144
214
|
| Remote API | Fastify server at api.vibetheog.com with token auth and seat management |
|
|
145
|
-
| Session lock | vibe lock on
|
|
215
|
+
| Session lock | `vibe lock on\|off` -- freezes model at session start |
|
|
146
216
|
| Model locking | Per-session lock that skips auto-reconcile with OpenCode config changes |
|
|
147
217
|
| Blackbox decision engine | Dialogue trajectory tracking, loop prevention, outcome calibration |
|
|
148
218
|
| TensorTAG routing | WBP protocol synthesizes delegated task output in assistant chat |
|
|
149
|
-
| Pattern learner runtime |
|
|
219
|
+
| Pattern learner runtime | vibe patterns, vibe patterns clear, vibe patterns suggest |
|
|
220
|
+
| Reward engine | Quality credits, saving bonus, lie/laziness penalties -- gamified quality assurance |
|
|
221
|
+
| Lie detector | Detects fabricated claims, invented function names, hallucinated APIs |
|
|
222
|
+
| Laziness detector | Flags short outputs, TODO placeholders, skipped delegation on brain tier |
|
|
223
|
+
| Claim verification | Scans assistant output for made-up references, validates against codebase |
|
|
224
|
+
| Token compression | Web fetch output stripped to 30% of original size -- verbose lines, bullet prefixes, and blank lines collapsed. Tool output history compressed to cold-storage references after the hot window (last 10 messages). Project memory condensed to single-line directives for system prompts. |
|
|
225
|
+
| Rotation memory | Scratchpad files age through a four-stage lifecycle: fresh (< 5 min, full content), warm (5 min - 24 hr, 500-char summary), cold (24 - 48 hr, 200-char summary), expired (> 48 hr, deleted). Rotation runs opportunistically on every tool execution, throttled to once per minute. Cache hits degrade gracefully over time instead of failing abruptly. |
|
|
226
|
+
| Smart cache | Predicts whether a tool query will hit scratchpad cache using composite similarity scoring (Jaccard + cosine bigram + weighted keyword overlap). Per-tool hit rates tracked with exponential decay. Estimated savings calculated and displayed in the live footer. Cache entries persisted across sessions via global-learning.json with 7-day TTL eviction. |
|
|
227
|
+
| Pivot / counter-pivot | Detects when you switch topics mid-session (forward pivot) and when you return to a previously abandoned workflow (counter-pivot). Forward pivots snapshot the old workflow context and downgrade to budget mode. Counter-pivots restore files, decisions, blockers, and code snippets from cached workflow snapshots into the system prompt. |
|
|
228
|
+
| Deferred reports | saveReport deferred to setTimeout to avoid blocking tool output |
|
|
229
|
+
| Stress gauge footer | Live indicator in footer -- ▁▂▃▅▆█ (none/minimal/calm/elevated/high/critical) |
|
|
150
230
|
|
|
151
231
|
## Install
|
|
152
232
|
|
|
@@ -157,6 +237,7 @@ npx vibeostheog setup --help # full usage
|
|
|
157
237
|
```
|
|
158
238
|
|
|
159
239
|
One command. Deploys plugin files and registers in opencode.json. Restart OpenCode Desktop.
|
|
240
|
+
It also ships the `/vibe` entrypoint so the slash-command surface works on user installs.
|
|
160
241
|
|
|
161
242
|
Local dev checkout:
|
|
162
243
|
|
|
@@ -168,30 +249,40 @@ Local dev checkout:
|
|
|
168
249
|
|
|
169
250
|
## Commands
|
|
170
251
|
|
|
171
|
-
`vibe help`
|
|
252
|
+
`vibe help` for full reference. Commands register in the TUI sidebar.
|
|
253
|
+
`/vibe` is the fast slash-command entrypoint for the same command surface.
|
|
172
254
|
|
|
173
255
|
| Command | Effect |
|
|
174
256
|
|---------|--------|
|
|
175
|
-
|
|
|
257
|
+
| `/vibe` | OpenCode slash-command entrypoint for status, dashboard, sessions, templates, and diagnostics |
|
|
258
|
+
| `vibe status` | Tier, enforcement, savings, stress, lock state |
|
|
259
|
+
| `vibe dashboard` / `vibe gui` | Live dashboard URL and browser entrypoint |
|
|
176
260
|
| `vibe set brain\|medium\|cheap [model=<model_id>]` | Switch active model tier or override slot |
|
|
177
261
|
| `vibe brain\|medium\|cheap` | Shorthand tier switch |
|
|
178
|
-
| `vibe enable
|
|
179
|
-
| `vibe mode budget
|
|
180
|
-
| `vibe thinking full
|
|
181
|
-
| `vibe enforce on
|
|
182
|
-
| `vibe lock on
|
|
183
|
-
| `vibe flow on
|
|
184
|
-
| `vibe flow enforce on
|
|
185
|
-
| `vibe tdd on
|
|
186
|
-
| `vibe
|
|
262
|
+
| `vibe enable|disable` | Toggle plugin on/off |
|
|
263
|
+
| `vibe mode budget|quality|speed|longrun|auto|balanced|audit|forensic` | Set optimization mode |
|
|
264
|
+
| `vibe thinking full|brief|off` | Reasoning depth |
|
|
265
|
+
| `vibe enforce on|off` | Toggle delegation enforcement |
|
|
266
|
+
| `vibe lock on|off` | Freeze model for session |
|
|
267
|
+
| `vibe flow on|off` | Toggle flow enforcer |
|
|
268
|
+
| `vibe flow enforce on|off` | Toggle auto-extract TODOs |
|
|
269
|
+
| `vibe tdd on|off` | Toggle TDD skeleton generation |
|
|
270
|
+
| `vibe tdd strict on|off` | Toggle strict failing TODO test templates |
|
|
271
|
+
| `vibe tdd quality on|off` | Toggle quality assertion stubs |
|
|
272
|
+
| `vibe rebuild` | Re-detect models from all providers |
|
|
187
273
|
| `vibe project` | Per-project analytics |
|
|
188
|
-
| `vibe patterns` / `vibe patterns clear` | Pattern inspection |
|
|
274
|
+
| `vibe patterns` / `vibe patterns clear` / `vibe patterns suggest` | Pattern inspection |
|
|
275
|
+
| `vibe todo` / `vibe todo-done <id>` / `vibe todo-sync` | View pending todos, mark done, sync flow todos |
|
|
276
|
+
| `vibe verify-claims` | Audit recent claim output against cascade evidence |
|
|
189
277
|
| `vibe diagnose` | Health check |
|
|
190
|
-
| `vibe blackbox on
|
|
191
|
-
| `
|
|
278
|
+
| `vibe blackbox on|off|status|reset` | Decision engine control |
|
|
279
|
+
| `vibe repair-state preview|apply` | Fix state collisions |
|
|
192
280
|
| `vibe guard` | Refresh AGENTS.md / README.md |
|
|
193
|
-
| `
|
|
194
|
-
| `
|
|
281
|
+
| `vibe reality-check` | Read verified live state, report evidence-backed facts only |
|
|
282
|
+
| `vibe setup` | Create a compatibility profile for first-time users; fresh installs start in VibeUltraX |
|
|
283
|
+
| `vibe api-token <token|invalidate>` | Manage remote API token |
|
|
284
|
+
| `vibe api-bootstrap-token <token>` | Bootstrap token exchange |
|
|
285
|
+
| `vibe report savings` | Deep savings breakdown from the append-only ledger |
|
|
195
286
|
|
|
196
287
|
**Report commands**: report-save, report-list, report-read, research-audit
|
|
197
288
|
|
|
@@ -203,26 +294,26 @@ vibeOS hooks into OpenCode Desktop through 8 extension points:
|
|
|
203
294
|
|
|
204
295
|
| Hook | Purpose |
|
|
205
296
|
|------|---------|
|
|
206
|
-
|
|
|
207
|
-
|
|
|
208
|
-
|
|
|
209
|
-
|
|
|
210
|
-
|
|
|
211
|
-
|
|
|
212
|
-
|
|
|
213
|
-
|
|
|
297
|
+
| experimental.text.complete | Appends footer to assistant responses |
|
|
298
|
+
| experimental.chat.messages.transform | Injects delegation protocol content |
|
|
299
|
+
| experimental.chat.system.transform | Injects cost optimization, stress inoculation, enforcement directives |
|
|
300
|
+
| tool.execute.before | Blocks write/edit on brain tier |
|
|
301
|
+
| tool.execute.after | Injects delegation UI notes |
|
|
302
|
+
| message.updated | Fallback footer for versions without text.complete |
|
|
303
|
+
| experimental.session.compacting | Preserves savings state |
|
|
304
|
+
| shell.env | Injects OPENCODE_MODEL_TIER and OPENCODE_MODEL |
|
|
214
305
|
|
|
215
306
|
### State Files (~/.claude/)
|
|
216
307
|
|
|
217
|
-
The plugin persists state to
|
|
308
|
+
The plugin persists state to ~/.claude/ for cross-session continuity:
|
|
218
309
|
|
|
219
|
-
- **delegation-state.json**
|
|
220
|
-
- **model-tiers.json**
|
|
221
|
-
- **project-states.json**
|
|
222
|
-
- **blackbox-state.json**
|
|
223
|
-
- **savings-ledger.jsonl**
|
|
224
|
-
- **global-learning.json**
|
|
225
|
-
- **active-jobs.json**
|
|
310
|
+
- **delegation-state.json** -- Sessions, warns, cache hits, lifetime totals
|
|
311
|
+
- **model-tiers.json** -- Brain/medium/cheap model IDs
|
|
312
|
+
- **project-states.json** -- Per-project memory, analytics, report references
|
|
313
|
+
- **blackbox-state.json** -- Per-project resolution tracker, session outcomes
|
|
314
|
+
- **savings-ledger.jsonl** -- Append-only savings event log
|
|
315
|
+
- **global-learning.json** -- Cross-project pattern learning
|
|
316
|
+
- **active-jobs.json** -- In-flight delegation records
|
|
226
317
|
|
|
227
318
|
### Local vs Remote
|
|
228
319
|
|
|
@@ -230,50 +321,108 @@ Core features work fully offline: model tier classification, static pricing, str
|
|
|
230
321
|
|
|
231
322
|
Remote API (api.vibetheog.com) enables: bootstrap token exchange, advanced VibeBoX with full session history, dynamic per-prompt delegation, cross-session calibration, live pricing fetch, learned subagent routing. Falls back gracefully when unreachable.
|
|
232
323
|
|
|
324
|
+
### What Is Missing For A True Session Orchestrator
|
|
325
|
+
|
|
326
|
+
The live dashboard now covers the executive Home summary, session actions, and session-scoped templates. Still missing: session versioning/undo, template versioning, batch operations, real-time WebSocket updates, session comparison, and export/import.
|
|
327
|
+
|
|
233
328
|
### Live Footer
|
|
234
329
|
|
|
235
330
|
The footer is the primary status line, appended to every assistant response. It surfaces model assignment, savings, mode, alerts, and session metrics in a single line.
|
|
236
331
|
|
|
332
|
+
```text
|
|
333
|
+
— brain | DeepSeek | v4-flash -> RFNE | $198.93 saved | VibeUltraX . Quality >>> | guarded | _
|
|
237
334
|
```
|
|
238
|
-
|
|
239
|
-
|
|
335
|
+
|
|
336
|
+
#### Tier Icons
|
|
337
|
+
|
|
338
|
+
| Icon | Slot | Meaning |
|
|
339
|
+
|------|------|---------|
|
|
340
|
+
| 🧠 | brain | Highest-tier model, reserved for complex reasoning |
|
|
341
|
+
| ◉ | medium | Mid-tier model, balance of quality and cost |
|
|
342
|
+
| ⚡ | cheap | Budget tier, fast and free or near-free |
|
|
343
|
+
| 🎁 | free | Free-tier model (e.g. HuggingFace free inference) |
|
|
344
|
+
|
|
345
|
+
#### Regime Icons
|
|
346
|
+
|
|
347
|
+
| Icon | Regime | Behavior |
|
|
348
|
+
|------|--------|----------|
|
|
349
|
+
| ◌ | INIT | Session starting, gathering context |
|
|
350
|
+
| ⇄ | DIVERGENT | Exploring multiple directions |
|
|
351
|
+
| ⌕ | EXPLORING | Investigating codebase, asking questions |
|
|
352
|
+
| ✎ | REFINING | Iterating on a solution |
|
|
353
|
+
| ⚙ | IMPLEMENTING | Active code generation |
|
|
354
|
+
| ⌁ | RESEARCH | Deep investigation, reading docs |
|
|
355
|
+
| ✓ | REVIEWING | Code review, verification |
|
|
356
|
+
| ◫ | DESIGNING | Architecture, planning |
|
|
357
|
+
| ⟲ | CONVERGING | Narrowing to final solution |
|
|
358
|
+
| ◆ | CLOSED | Task complete |
|
|
359
|
+
| ↻ | LOOPING | Detected stuck pattern, intervention active |
|
|
360
|
+
| ☑ | AUDIT | Audit mode active |
|
|
361
|
+
| ⟁ | FORENSIC | Forensic analysis mode active |
|
|
362
|
+
|
|
363
|
+
#### Stress Gauge
|
|
364
|
+
|
|
365
|
+
| Gauge | Threshold | Meaning |
|
|
366
|
+
|-------|-----------|---------|
|
|
367
|
+
| ▁ | 0 - 0.10 | None -- calm session |
|
|
368
|
+
| ▂ | 0.10 - 0.30 | Minimal -- slight friction detected |
|
|
369
|
+
| ▃ | 0.30 - 0.50 | Calm -- normal working state |
|
|
370
|
+
| ▅ | 0.50 - 0.70 | Elevated -- user showing signs of frustration |
|
|
371
|
+
| ▆ | 0.70 - 0.85 | High -- repeated failures, urgency signals |
|
|
372
|
+
| █ | 0.85+ | Critical -- system intervening with quality escalation |
|
|
373
|
+
|
|
374
|
+
#### Cascade Depth Icons
|
|
375
|
+
|
|
376
|
+
| Icon | Depth | Pipeline |
|
|
377
|
+
|------|-------|----------|
|
|
378
|
+
| (no icon) | 1 | Direct response, no cascade routing |
|
|
379
|
+
| ▸▸ | 2 | Two-stage: medium -> brain refinement |
|
|
380
|
+
| ▸▸▸ | 3 | Full cascade: cheap -> medium -> brain |
|
|
381
|
+
|
|
382
|
+
#### Enforcement and Status Tags
|
|
383
|
+
|
|
384
|
+
| Tag | Meaning |
|
|
385
|
+
|-----|---------|
|
|
386
|
+
| guarded | Delegation enforcement active -- write/edit on brain tier blocked |
|
|
387
|
+
| flow steady | Flow enforcer active, pattern rules being checked |
|
|
388
|
+
| flow strict | Flow enforcer in strict mode -- LGTM banned, debug artifacts flagged |
|
|
389
|
+
| tests live | TDD enforcer active -- test skeletons auto-generated |
|
|
390
|
+
| quiet | Quiet mode -- reduced footer verbosity |
|
|
391
|
+
| locked | Model lock active -- tier frozen for session |
|
|
392
|
+
|
|
393
|
+
#### Savings Display
|
|
394
|
+
|
|
395
|
+
| Format | Meaning |
|
|
396
|
+
|--------|---------|
|
|
397
|
+
| $X saved | Cumulative delegation + cache savings this session |
|
|
398
|
+
| $X saved ↗ | Savings trending upward (savings rate increasing) |
|
|
399
|
+
| $X saved ↘ | Savings trending downward (less delegation happening) |
|
|
400
|
+
| $0 saved | No savings yet this session |
|
|
401
|
+
|
|
402
|
+
#### Vector Pulse
|
|
403
|
+
|
|
404
|
+
| Tag | Meaning |
|
|
405
|
+
|-----|---------|
|
|
406
|
+
| ⟡ cheap | Active slot changed to cheap this turn |
|
|
407
|
+
| ⟡ medium | Active slot changed to medium this turn |
|
|
408
|
+
| ⟡ brain | Active slot changed to brain this turn |
|
|
240
409
|
|
|
241
410
|
**Segments (left to right):**
|
|
242
411
|
|
|
243
412
|
| Segment | Format | Example | Meaning |
|
|
244
413
|
|---------|--------|---------|---------|
|
|
245
|
-
| Tier icon + slot | icon tier |
|
|
246
|
-
| Provider + model | provider modelName |
|
|
247
|
-
| Regime | regimeIcon regimeTag |
|
|
248
|
-
| Savings |
|
|
249
|
-
| Flash icon | flashIcon |
|
|
250
|
-
| Brand + mode label | VibeBrand . modeLabel |
|
|
251
|
-
| Cascade icon | >>> or >> |
|
|
252
|
-
| Enforcement tags | guarded, flow steady, tests live |
|
|
253
|
-
| Stress gauge | gaugeChar |
|
|
254
|
-
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
**Stress gauge levels:**
|
|
258
|
-
|
|
259
|
-
| Gauge | Range | Meaning |
|
|
260
|
-
|-------|-------|---------|
|
|
261
|
-
| `_` | 0 - 0.1 | None |
|
|
262
|
-
| `_` | 0.1 - 0.3 | Minimal |
|
|
263
|
-
| `_` | 0.3 - 0.5 | Calm |
|
|
264
|
-
| `_` | 0.5 - 0.7 | Elevated |
|
|
265
|
-
| `_` | 0.7 - 0.85 | High |
|
|
266
|
-
| `_` | 0.85+ | Critical |
|
|
267
|
-
|
|
268
|
-
**Cascade icon (VibeUltraX mode only):**
|
|
269
|
-
|
|
270
|
-
| Icon | cascade_depth | Meaning |
|
|
271
|
-
|------|---------------|---------|
|
|
272
|
-
| (none) | 1 | Direct response, no cascade |
|
|
273
|
-
| `>>` | 2 | Standard cascade (medium -> brain) |
|
|
274
|
-
| `>>>` | 3+ | Deep cascade (cheap -> medium -> brain) |
|
|
275
|
-
|
|
276
|
-
Controls: `vibe status` (or `vibe status`) for full state, `vibe enable/disable` to toggle. Persisted in `~/.claude/delegation-state.json`.
|
|
414
|
+
| Tier icon + slot | icon tier | 🧠 brain | Active model slot |
|
|
415
|
+
| Provider + model | provider modelName | DeepSeek / v4-flash | Current model |
|
|
416
|
+
| Regime | regimeIcon regimeTag | -> RFNE | Current sub-regime classification |
|
|
417
|
+
| Savings | $X saved | $198.93 saved | Lifetime savings |
|
|
418
|
+
| Flash icon | flashIcon | ⚡ | API connected indicator |
|
|
419
|
+
| Brand + mode label | VibeBrand . modeLabel | VibeUltraX . Quality | Requested mode + regime-derived label |
|
|
420
|
+
| Cascade icon | >>> or >> | >>> | VibeUltraX cascade depth >= 3 |
|
|
421
|
+
| Enforcement tags | guarded, flow steady, tests live | guarded | Guard state summary |
|
|
422
|
+
| Stress gauge | gaugeChar | _ | Current stress level |
|
|
423
|
+
| Vector pulse | slot | cheap | Active slot changed this turn |
|
|
424
|
+
|
|
425
|
+
Controls: `vibe status` for full state, `vibe enable/disable` to toggle. Persisted in ~/.claude/delegation-state.json.
|
|
277
426
|
|
|
278
427
|
### Environment Variables
|
|
279
428
|
|
|
@@ -292,12 +441,12 @@ Controls: `vibe status` (or `vibe status`) for full state, `vibe enable/disable`
|
|
|
292
441
|
| Symptom | Fix |
|
|
293
442
|
|---------|-----|
|
|
294
443
|
| Plugin not loading | Check opencode.json entry. Restart Desktop. |
|
|
295
|
-
| Model won't switch |
|
|
296
|
-
| Writes/edits blocked | Enforcement active
|
|
444
|
+
| Model won't switch | vibe rebuild then vibe set brain/medium/cheap |
|
|
445
|
+
| Writes/edits blocked | Enforcement active -- delegate to cheap tier |
|
|
297
446
|
| No footer visible | Verify plugin enabled, completions running |
|
|
298
|
-
| Dashboard blank |
|
|
299
|
-
| State looks wrong |
|
|
447
|
+
| Dashboard blank | npm run build then restart |
|
|
448
|
+
| State looks wrong | vibe diagnose then vibe repair-state preview |
|
|
300
449
|
|
|
301
450
|
---
|
|
302
451
|
|
|
303
|
-
|
|
452
|
+
*vibe help is the canonical command reference. This README stays high-level so command details follow the code without a rewrite.*
|