@polderlabs/bizar 6.0.0-beta.1 → 6.0.1

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 (50) hide show
  1. package/bizar-dash/DESIGN.md +23 -18
  2. package/bizar-dash/bizar-design/canvas.html +60 -46
  3. package/bizar-dash/bizar-design/components.css +317 -122
  4. package/bizar-dash/bizar-design/components.html +154 -60
  5. package/bizar-dash/bizar-design/desktop/agents.html +1 -1
  6. package/bizar-dash/bizar-design/desktop/memory.html +2 -2
  7. package/bizar-dash/bizar-design/desktop/metrics.html +2 -2
  8. package/bizar-dash/bizar-design/desktop/overview.html +9 -9
  9. package/bizar-dash/bizar-design/desktop/settings.html +1 -1
  10. package/bizar-dash/bizar-design/index.html +77 -66
  11. package/bizar-dash/bizar-design/tokens.css +52 -60
  12. package/bizar-dash/critique.json +6 -6
  13. package/bizar-dash/image-1.png +0 -0
  14. package/bizar-dash/image-2.png +0 -0
  15. package/bizar-dash/image-3.png +0 -0
  16. package/bizar-dash/image-4.png +0 -0
  17. package/bizar-dash/image-5.png +0 -0
  18. package/bizar-dash/image-6.png +0 -0
  19. package/bizar-dash/image-7.png +0 -0
  20. package/bizar-dash/image.png +0 -0
  21. package/cli/doctor.mjs +48 -48
  22. package/cli/install.mjs +22 -46
  23. package/cli/plugin-runtime-deps.mjs +250 -0
  24. package/cli/plugin-runtime-deps.test.mjs +378 -0
  25. package/cli/post-install-smoke.mjs +3 -96
  26. package/cli/post-install-smoke.test.mjs +5 -3
  27. package/cli/provision.mjs +54 -129
  28. package/cli/provision.test.mjs +42 -0
  29. package/config/cline.json.template +75 -16
  30. package/config/skills/9router/SKILL.md +80 -0
  31. package/config/skills/9router-chat/SKILL.md +73 -0
  32. package/config/skills/9router-embeddings/SKILL.md +69 -0
  33. package/config/skills/9router-image/SKILL.md +86 -0
  34. package/config/skills/9router-stt/SKILL.md +79 -0
  35. package/config/skills/9router-tts/SKILL.md +80 -0
  36. package/config/skills/9router-web-fetch/SKILL.md +99 -0
  37. package/config/skills/9router-web-search/SKILL.md +91 -0
  38. package/package.json +1 -1
  39. package/packages/sdk/package.json +1 -1
  40. package/plugins/bizar/index.ts +50 -3
  41. package/plugins/bizar/package.json +1 -1
  42. package/plugins/bizar/src/clineruntime.ts +96 -14
  43. package/plugins/bizar/src/mistake-recovery.ts +98 -0
  44. package/plugins/bizar/src/options.ts +44 -2
  45. package/plugins/bizar/src/tool-discipline.ts +105 -0
  46. package/plugins/bizar/src/trajectory.ts +104 -0
  47. package/plugins/bizar/tests/clineruntime-config.test.ts +177 -0
  48. package/plugins/bizar/tests/mistake-recovery.test.ts +116 -0
  49. package/plugins/bizar/tests/options.test.ts +53 -0
  50. package/plugins/bizar/tests/tool-discipline.test.ts +77 -0
@@ -1,10 +1,9 @@
1
1
  # DESIGN.md — Bizar Dashboard
2
2
 
3
- > The BizarHarness dashboard. Norse-pantheon operator surface, dark-mode
4
- > first, dense by intent. **v7.0** — adds the comprehensive view index,
5
- > per-view data shapes, and the patterns needed for the eight secondary
6
- > tabs (Overview, Agents, Active, Skills, Memory, Mods, Schedules,
7
- > Settings) that v6 didn't fully document.
3
+ > The BizarHarness dashboard. Operator console surface, dark-mode first,
4
+ > dense by intent. **v7.1** — image-led refresh toward flatter product
5
+ > shells, restrained green signaling, and settings-grade control
6
+ > surfaces.
8
7
 
9
8
  ## 0 · How to use this file
10
9
 
@@ -19,6 +18,12 @@ Do not hardcode hex outside `:root`. Derive tints with
19
18
  `color-mix(in oklch, var(--accent) 12%, transparent)` rather than
20
19
  inventing new tokens.
21
20
 
21
+ **Reference priority.** When fresh product reference images are
22
+ attached for a redesign pass, they override older stylistic
23
+ assumptions in this document. Preserve the structural rules here, but
24
+ bind the live visual system to the reference shell, spacing, and state
25
+ language.
26
+
22
27
  **Themes.** The dashboard ships two themes — **dark** (default) and
23
28
  **light** (`[data-theme="light"]`). Both share the same token names;
24
29
  only the values change. Every component must read correctly in both
@@ -45,7 +50,7 @@ them in order; if two conflict, the higher rule wins.
45
50
  decoration.
46
51
  2. **One accent, used with intent.** The accent earns its place by
47
52
  signaling primary action, active state, or data emphasis. No AI
48
- gradients. No purple washes behind text. No purple stripes on
53
+ gradients. No decorative color washes behind text. No stripes on
49
54
  container edges.
50
55
  3. **State is signal, not decoration.** Active, streaming, awaiting,
51
56
  error, success — every state must be distinguishable at a glance
@@ -64,8 +69,8 @@ them in order; if two conflict, the higher rule wins.
64
69
 
65
70
  | | |
66
71
  |--|--|
67
- | **Wordmark** | Bizar · runic `ᛒ` glyph in `var(--accent)` |
68
- | **Version pill** | mono text on a `var(--accent)` `oklch(0.55 0.22 25)` gradient |
72
+ | **Wordmark** | Bizar / Agent Console · simple accent glyph in `var(--accent)` |
73
+ | **Version pill** | mono text on a tinted neutral surface with accent border |
69
74
  | **Voice** | Direct, technical, never marketing. "404 not found" not "Oops! Something went wrong." Numbers with units. |
70
75
  | **Tab labels** | Single noun (`Chat`, `Agents`, `Tasks`). No icons-in-paragraphs. |
71
76
  | **Status copy** | "Streaming" not "Loading…". "Awaiting your reply" not "Ready". "13 of 47" not "Lots". |
@@ -91,12 +96,12 @@ or external-tool interop.
91
96
  ### 3.1 Surface scale (dark, default)
92
97
 
93
98
  ```
94
- --bg oklch(15% 0.012 260) #0b0e14 page canvas
95
- --bg-elev oklch(18% 0.012 260) #12161f cards, topbar, sidebars
96
- --bg-elev-2 oklch(22% 0.014 260) #1a1f2b nested surfaces
97
- --bg-elev-3 oklch(27% 0.016 260) #232a39 hover / pressed surfaces
98
- --border oklch(27% 0.016 260) #232a39 hairlines
99
- --border-strong oklch(33% 0.018 260) #2d3648 focus rings, dividers
99
+ --bg oklch(13.5% 0.003 220) page canvas
100
+ --bg-elev oklch(16.5% 0.003 220) cards, topbar, sidebars
101
+ --bg-elev-2 oklch(19.5% 0.004 220) nested surfaces
102
+ --bg-elev-3 oklch(23% 0.005 220) hover / pressed surfaces
103
+ --border oklch(27% 0.004 220) hairlines
104
+ --border-strong oklch(34% 0.005 220) focus rings, dividers
100
105
  ```
101
106
 
102
107
  `--bg-1` and `--bg-2` from v6.x are deprecated; use `--bg-elev` and
@@ -127,9 +132,9 @@ or external-tool interop.
127
132
 
128
133
  | Token | Dark | Light | Use |
129
134
  |---|---|---|---|
130
- | `--accent` | `oklch(0.62 0.18 273)` | `oklch(0.55 0.20 273)` | Primary action, active state, focus |
131
- | `--accent-2` | `oklch(0.72 0.16 273)` | `oklch(0.48 0.20 273)` | Hover state on accent |
132
- | `--accent-3` | `oklch(0.82 0.10 273)` | `oklch(0.40 0.18 273)` | Subdued accent text |
135
+ | `--accent` | `oklch(74% 0.13 154)` | `oklch(56% 0.13 154)` | Primary action, active state, focus |
136
+ | `--accent-2` | `oklch(67% 0.10 154)` | `oklch(50% 0.10 154)` | Hover state on accent |
137
+ | `--accent-3` | `oklch(58% 0.07 154)` | `oklch(42% 0.08 154)` | Subdued accent text |
133
138
  | `--accent-bg` | `color-mix(in oklch, var(--accent) 12%, transparent)` | same, 8% | Tinted panel backgrounds |
134
139
  | `--accent-border` | `color-mix(in oklch, var(--accent) 40%, transparent)` | same, 30% | Tinted borders |
135
140
  | `--accent-glow` | `color-mix(in oklch, var(--accent) 18%, transparent)` | same | Focus glow shadow |
@@ -1149,4 +1154,4 @@ component in `src/web/views/settings/`.
1149
1154
  semantic spacing aliases, command palette.
1150
1155
  - v2.x — Light theme, kanban board, hooks refactor.
1151
1156
 
1152
- Future changes update this file first, then ship.
1157
+ Future changes update this file first, then ship.
@@ -3,59 +3,65 @@
3
3
  <head>
4
4
  <meta charset="utf-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1">
6
- <title>Bizar Dashboard Canvas</title>
6
+ <title>Bizar Operator Canvas</title>
7
7
  <link rel="stylesheet" href="./tokens.css">
8
8
  <link rel="stylesheet" href="./components.css">
9
9
  </head>
10
10
  <body>
11
11
  <div class="design-shell has-sidebar">
12
12
  <header class="shell-topbar" data-od-id="canvas-topbar">
13
- <div class="brand-mark">
14
- <div class="brand-glyph">B</div>
15
- <div class="brand-copy">
16
- <strong>Bizar</strong>
17
- <span>Operator command surface</span>
13
+ <div class="shell-topbar-start">
14
+ <div class="brand-mark">
15
+ <div class="brand-glyph">B</div>
16
+ <div class="brand-copy">
17
+ <strong>Agent Console</strong>
18
+ <span>Operator command surface</span>
19
+ </div>
18
20
  </div>
21
+ <nav class="topbar-nav" aria-label="Design package">
22
+ <a class="section-tab" href="./index.html"><svg class="nav-icon"><use href="./icons.svg#icon-link"></use></svg><span>Launcher</span></a>
23
+ <a class="section-tab is-active" href="./canvas.html"><svg class="nav-icon"><use href="./icons.svg#icon-canvas"></use></svg><span>Canvas</span></a>
24
+ <a class="section-tab" href="./components.html"><svg class="nav-icon"><use href="./icons.svg#icon-components"></use></svg><span>Components</span></a>
25
+ </nav>
19
26
  </div>
20
- <nav class="topbar-nav" aria-label="Design package">
21
- <a class="section-tab" href="./index.html"><svg class="nav-icon"><use href="./icons.svg#icon-link"></use></svg><span>Launcher</span></a>
22
- <a class="section-tab is-active" href="./canvas.html"><svg class="nav-icon"><use href="./icons.svg#icon-canvas"></use></svg><span>Canvas</span></a>
23
- <a class="section-tab" href="./components.html"><svg class="nav-icon"><use href="./icons.svg#icon-components"></use></svg><span>Components</span></a>
24
- </nav>
25
- <div class="project-pill mono">project · bizar-harness</div>
26
- <div class="topbar-search">
27
- <span>Search sessions, tasks, memory, artifacts</span>
28
- <span class="kbd">⌘K</span>
27
+ <div class="shell-topbar-center">
28
+ <div class="project-pill mono">project · bizar-harness</div>
29
+ <div class="topbar-search">
30
+ <span>Search agents, memory, settings, sessions</span>
31
+ <span class="kbd">⌘K</span>
32
+ </div>
29
33
  </div>
30
- <div class="topbar-cluster">
34
+ <div class="shell-topbar-end">
31
35
  <div class="runtime-pill mono"><span class="dot"></span> ws · live</div>
32
- <div class="runtime-pill mono" style="color: var(--success);"><span class="dot"></span> cline · active</div>
33
- <button class="button is-primary">New session</button>
36
+ <div class="runtime-pill mono" style="color: var(--success);"><span class="dot"></span> agents · active</div>
37
+ <button class="button is-primary">New run</button>
34
38
  </div>
35
39
  </header>
36
40
 
37
41
  <div class="shell-body">
38
- <aside class="sidebar" data-od-id="canvas-sidebar">
42
+ <aside class="sidebar shell-sidebar" data-od-id="canvas-sidebar">
39
43
  <div class="sidebar-header">
40
- <button class="nav-button sidebar-toggle" data-sidebar-toggle>
44
+ <button class="nav-button sidebar-toggle" data-sidebar-toggle title="Toggle sidebar">
41
45
  <svg class="nav-icon"><use href="./icons.svg#icon-link"></use></svg>
42
46
  <span class="nav-link-copy"><span class="nav-link-label">Toggle sidebar</span><span class="nav-link-meta">Cmd/Ctrl+B</span></span>
43
47
  </button>
44
48
  </div>
45
- <nav class="sidebar-nav">
46
- <a class="nav-link" href="./index.html" title="Launcher"><svg class="nav-icon"><use href="./icons.svg#icon-link"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Launcher</span><span class="nav-link-meta">Package</span></span></a>
47
- <a class="nav-link is-active" href="./canvas.html" title="Canvas"><svg class="nav-icon"><use href="./icons.svg#icon-canvas"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Canvas</span><span class="nav-link-meta">System</span></span></a>
48
- <a class="nav-link" href="./components.html" title="Components"><svg class="nav-icon"><use href="./icons.svg#icon-components"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Components</span><span class="nav-link-meta">Library</span></span></a>
49
- </nav>
50
- <div class="sidebar-group">
51
- <div class="sidebar-group-label">Screens</div>
49
+ <div class="shell-sidebar-body">
52
50
  <nav class="sidebar-nav">
53
- <a class="nav-link" href="./desktop/overview.html" title="Overview"><svg class="nav-icon"><use href="./icons.svg#icon-overview"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Overview</span><span class="nav-link-meta">Desktop</span></span></a>
54
- <a class="nav-link" href="./desktop/agents.html" title="Agents"><svg class="nav-icon"><use href="./icons.svg#icon-agents"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Agents</span><span class="nav-link-meta">Desktop</span></span></a>
55
- <a class="nav-link" href="./desktop/memory.html" title="Memory"><svg class="nav-icon"><use href="./icons.svg#icon-memory"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Memory</span><span class="nav-link-meta">Desktop</span></span></a>
56
- <a class="nav-link" href="./desktop/metrics.html" title="Metrics"><svg class="nav-icon"><use href="./icons.svg#icon-metrics"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Metrics</span><span class="nav-link-meta">Desktop</span></span></a>
57
- <a class="nav-link" href="./desktop/settings.html" title="Settings"><svg class="nav-icon"><use href="./icons.svg#icon-settings"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Settings</span><span class="nav-link-meta">Desktop</span></span></a>
51
+ <a class="nav-link" href="./index.html" title="Launcher"><svg class="nav-icon"><use href="./icons.svg#icon-link"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Launcher</span><span class="nav-link-meta">Package</span></span></a>
52
+ <a class="nav-link is-active" href="./canvas.html" title="Canvas"><svg class="nav-icon"><use href="./icons.svg#icon-canvas"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Canvas</span><span class="nav-link-meta">System</span></span></a>
53
+ <a class="nav-link" href="./components.html" title="Components"><svg class="nav-icon"><use href="./icons.svg#icon-components"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Components</span><span class="nav-link-meta">Library</span></span></a>
58
54
  </nav>
55
+ <div class="sidebar-group">
56
+ <div class="sidebar-group-label">Screens</div>
57
+ <nav class="sidebar-nav">
58
+ <a class="nav-link" href="./desktop/overview.html" title="Overview"><svg class="nav-icon"><use href="./icons.svg#icon-overview"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Overview</span><span class="nav-link-meta">Desktop</span></span></a>
59
+ <a class="nav-link" href="./desktop/agents.html" title="Agents"><svg class="nav-icon"><use href="./icons.svg#icon-agents"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Agents</span><span class="nav-link-meta">Desktop</span></span></a>
60
+ <a class="nav-link" href="./desktop/memory.html" title="Memory"><svg class="nav-icon"><use href="./icons.svg#icon-memory"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Memory</span><span class="nav-link-meta">Desktop</span></span></a>
61
+ <a class="nav-link" href="./desktop/metrics.html" title="Metrics"><svg class="nav-icon"><use href="./icons.svg#icon-metrics"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Metrics</span><span class="nav-link-meta">Desktop</span></span></a>
62
+ <a class="nav-link" href="./desktop/settings.html" title="Settings"><svg class="nav-icon"><use href="./icons.svg#icon-settings"></use></svg><span class="nav-link-copy"><span class="nav-link-label">Settings</span><span class="nav-link-meta">Desktop</span></span></a>
63
+ </nav>
64
+ </div>
59
65
  </div>
60
66
  </aside>
61
67
 
@@ -65,11 +71,11 @@
65
71
  <div class="workspace-header" data-od-id="canvas-header">
66
72
  <div>
67
73
  <p class="eyebrow">System canvas</p>
68
- <h1 class="page-title">Operator dashboard reference with stronger hierarchy</h1>
74
+ <h1 class="page-title">Console reference for controlling and configuring agents</h1>
69
75
  <p class="hero-lead">
70
- This page is the north star for the dashboard shell: compact chrome, dense
71
- signal surfaces, clear intervention points, and modules that can be translated
72
- directly into product code without inventing new patterns.
76
+ This is the integrated view built from the component library: compact shell,
77
+ dense state surfaces, settings-grade clarity, and intervention points that read
78
+ like a real operating console instead of a presentation mockup.
73
79
  </p>
74
80
  </div>
75
81
  <div class="toolbar">
@@ -83,16 +89,16 @@
83
89
  </div>
84
90
  </div>
85
91
  <div class="signal-grid">
86
- <div class="signal-tile"><span class="label">active sessions</span><span class="value mono">189</span><span class="detail">32 approval-bound</span></div>
87
- <div class="signal-tile"><span class="label">median latency</span><span class="value mono">842ms</span><span class="detail">healthy but spiky on eval</span></div>
88
- <div class="signal-tile"><span class="label">token burn</span><span class="value mono">1.42M/h</span><span class="detail">+12.4% vs previous window</span></div>
92
+ <div class="signal-tile"><span class="label">active runs</span><span class="value mono">189</span><span class="detail">32 need operator attention</span></div>
93
+ <div class="signal-tile"><span class="label">median latency</span><span class="value mono">842ms</span><span class="detail">healthy with brief eval spikes</span></div>
94
+ <div class="signal-tile"><span class="label">token burn</span><span class="value mono">1.42M/h</span><span class="detail">chat + eval dominate usage</span></div>
89
95
  <div class="signal-tile"><span class="label">error pressure</span><span class="value mono">0.21%</span><span class="detail">2 routes degraded</span></div>
90
96
  </div>
91
97
  </div>
92
98
  <aside class="canvas-command" data-od-id="canvas-command">
93
99
  <div>
94
100
  <p class="eyebrow">Command posture</p>
95
- <h2 class="card-title">What the dashboard must make obvious</h2>
101
+ <h2 class="card-title">What the console must make obvious</h2>
96
102
  </div>
97
103
  <div class="terminal-line"><span>agents</span><span>who is running, paused, or stuck</span></div>
98
104
  <div class="terminal-line"><span>budget</span><span>where tokens and spend are concentrating</span></div>
@@ -112,8 +118,8 @@
112
118
  <section class="card" data-od-id="canvas-activity">
113
119
  <div class="card-header">
114
120
  <div>
115
- <h2 class="card-title">Live activity and intervention queue</h2>
116
- <p class="card-meta">One dominant stream for recent runtime events, approvals, and recoveries.</p>
121
+ <h2 class="card-title">Live activity and intervention queue</h2>
122
+ <p class="card-meta">One dominant stream for runtime events, approvals, failures, and recoveries.</p>
117
123
  </div>
118
124
  <span class="pill success">streaming</span>
119
125
  </div>
@@ -182,7 +188,7 @@
182
188
  <div class="card-header">
183
189
  <div>
184
190
  <h2 class="card-title">Token spend and model mix</h2>
185
- <p class="card-meta">The chart is the cost story; the summary blocks explain why the line looks that way.</p>
191
+ <p class="card-meta">Thin, readable charting backed by cost summary blocks and explicit model attribution.</p>
186
192
  </div>
187
193
  <div class="cluster">
188
194
  <span class="pill success">budget healthy</span>
@@ -191,11 +197,19 @@
191
197
  </div>
192
198
  <div class="card-body">
193
199
  <div class="sparkline">
194
- <svg viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true">
195
- <path d="M0 24 L10 22 L20 21 L30 17 L40 18 L50 12 L60 9 L70 11 L80 8 L90 7 L100 10" fill="none" stroke="var(--accent)" stroke-width="1.8"></path>
196
- <path d="M0 30 L0 24 L10 22 L20 21 L30 17 L40 18 L50 12 L60 9 L70 11 L80 8 L90 7 L100 10 L100 30 Z" fill="color-mix(in oklch, var(--accent) 16%, transparent)"></path>
200
+ <svg class="chart-svg" viewBox="0 0 100 30" preserveAspectRatio="none" aria-hidden="true">
201
+ <path class="chart-area" d="M0 30 L0 23.7 L10 22.5 L20 21.8 L30 18.1 L40 18.6 L50 14.3 L60 11.2 L70 12.6 L80 9.6 L90 8.4 L100 10.3 L100 30 Z"></path>
202
+ <path class="chart-line secondary" d="M0 21.8 L10 21.3 L20 20.4 L30 18.9 L40 18.1 L50 16.4 L60 15.1 L70 14.5 L80 13.2 L90 12.2 L100 11.8"></path>
203
+ <path class="chart-line" d="M0 23.7 L10 22.5 L20 21.8 L30 18.1 L40 18.6 L50 14.3 L60 11.2 L70 12.6 L80 9.6 L90 8.4 L100 10.3"></path>
204
+ <circle class="chart-point" cx="80" cy="9.6" r="0.95"></circle>
205
+ <circle class="chart-point" cx="90" cy="8.4" r="0.95"></circle>
197
206
  </svg>
198
207
  </div>
208
+ <div class="chart-legend">
209
+ <span class="chart-legend-item"><span class="legend-swatch" style="color: var(--accent);"></span>token volume</span>
210
+ <span class="chart-legend-item"><span class="legend-swatch secondary"></span>budget baseline</span>
211
+ </div>
212
+ <div class="chart-axis"><span>00h</span><span>06h</span><span>12h</span><span>18h</span><span>24h</span></div>
199
213
  <div class="metric-strip" style="margin-top: var(--space-4);">
200
214
  <div class="mini-card"><h4>Model mix</h4><p>sonnet 47% · minimax 31% · haiku 14% · local 8%</p></div>
201
215
  <div class="mini-card"><h4>Top path</h4><p class="mono">chat.send → 38% of total tokens</p></div>