@polderlabs/bizar-omp 0.5.0 → 0.6.0

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/README.md CHANGED
@@ -10,33 +10,78 @@
10
10
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-18181b?style=flat-square" alt="MIT license" /></a>
11
11
  </p>
12
12
 
13
- <p><strong>Native autonomous engineering workflows for oh-my-pi.</strong><br />
14
- Plan proportionally, run work in durable sessions, and finish with evidence you can inspect.</p>
13
+ <p><strong>Native engineering workflows for oh-my-pi.</strong><br />
14
+ Plan the work, keep sessions alive, verify the result, and inspect the proof.</p>
15
15
  </div>
16
16
 
17
- ---
17
+ > [!IMPORTANT]
18
+ > BizarHarness OMP is an extension for [oh-my-pi](https://github.com/can1357/oh-my-pi), not a second agent runtime. OMP still owns models, credentials, tools, task execution, sessions, and conversation state.
18
19
 
19
- ## What Bizar OMP is
20
+ ## Start here
20
21
 
21
- BizarHarness OMP is a native [oh-my-pi](https://github.com/can1357/oh-my-pi) extension for engineering work. It adds workflow intent, acceptance criteria, evidence freshness, specialist roles, scoped integration, and a durable session launcher while leaving OMP in charge of sessions, models, credentials, tools, task execution, and conversation state.
22
+ Choose the path that matches what you are trying to do:
22
23
 
23
- | You need | Bizar OMP provides |
24
+ | Your goal | Run this | What it gives you |
25
+ | --- | --- | --- |
26
+ | Set up the complete experience | `npx --yes @polderlabs/bizar-omp setup` | `omb`, `bizar-omp`, the OMP extension, native agents, skills, rules, prompts, tools, and model roles |
27
+ | Preview setup before changing anything | `npx --yes @polderlabs/bizar-omp setup --dry-run` | A report of the plugin and missing settings the installer would add |
28
+ | Start one durable engineering session | `omb` | OMP inside a Bizar-owned tmux host, with reconnect support |
29
+ | Switch between projects and sessions | `omb agents` | The full session hub and new-session picker |
30
+ | Watch sessions in a browser | `omb dashboard --open` | A local, loopback-only dashboard with a single-use link |
31
+ | Install only the OMP extension | `omp plugin install @polderlabs/bizar-omp` | Extension discovery without installing the `omb` and `bizar-omp` shell commands |
32
+
33
+ The shortest useful path is:
34
+
35
+ ```sh
36
+ npx --yes @polderlabs/bizar-omp setup
37
+ omb
38
+ ```
39
+
40
+ The setup command is safe to preview and safe to run again. It preserves credentials, provider choices, approval policies, explicit `false` or empty settings, and project overrides. It proposes only settings that are absent.
41
+
42
+ ## How Bizar fits into OMP
43
+
44
+ <img src="docs/assets/bizar-omp-workflow.svg" alt="Bizar OMP workflow: plan, run, verify, integrate" width="100%" />
45
+
46
+ Bizar adds the engineering contract around an OMP session:
47
+
48
+ | You need | Bizar adds |
24
49
  | --- | --- |
25
- | A sensible process | Focused, bounded, and full workflow tiers selected from task scope and risk |
26
- | Background work | `omb` sessions inside tmux (psmux on Windows), with reconnect and a cross-project session hub |
27
- | Useful specialists | Native Bizar roles for orchestration, planning, research, implementation, review, security, verification, and documentation |
28
- | Stronger completion signals | Host-observed checks, fresh evidence, explicit acceptance, and serialized integration |
29
- | A readable operator experience | Native Advisor enabled by default, visible active agents, hidden tool trace, and readable chat output |
50
+ | A proportionate process | Focused, bounded, and full workflow tiers selected from scope and risk |
51
+ | Durable work | `omb` sessions in tmux, or psmux on Windows, with reconnect and a cross-project hub |
52
+ | Specialist help | Native roles for planning, research, implementation, review, security, verification, architecture, and documentation |
53
+ | A stronger finish line | Acceptance criteria, host-observed checks, fresh evidence, review decisions, and serialized integration admission |
54
+ | A readable operator view | OMP's native Advisor, visible agents, session activity, a local dashboard, and inspectable projections |
55
+
56
+ The ownership boundary is deliberate:
30
57
 
31
- Bizar does not start a second agent runtime, replace OMP's task system, or include a Claude Code, MCP, or background daemon compatibility layer.
58
+ | OMP owns | Bizar owns |
59
+ | --- | --- |
60
+ | Models, providers, credentials, tools, task execution, session files, and conversation state | Workflow intent, acceptance, evidence freshness, candidate lineage, resource ownership, review policy, and integration admission |
61
+
62
+ Bizar does not replace OMP's task system, add a parallel scheduler, or provide a Claude Code, MCP, or background-daemon compatibility layer.
32
63
 
33
64
  ## Install
34
65
 
35
- ### Full installation
66
+ ### Requirements
67
+
68
+ - Node.js 22 or newer
69
+ - Bun 1.3.14 or newer
70
+ - OMP 18.2.6 on `PATH`
71
+ - OMP 18.2.5 and 18.2.4 remain regression-qualified
72
+ - tmux on Linux and macOS, or [psmux](https://github.com/psmux/psmux) on Windows for durable sessions
73
+
74
+ Check the host before installing:
75
+
76
+ ```sh
77
+ node --version
78
+ bun --version
79
+ omp --version
80
+ ```
36
81
 
37
- The supported installation path configures the complete OMP experience in one command.
82
+ ### Full installation
38
83
 
39
- Requires Node.js 22 or newer, Bun 1.3.14 or newer, and OMP 18.2.6 on `PATH`. OMP 18.2.5 and 18.2.4 remain regression-qualified.
84
+ This is the supported path for a complete Bizar OMP setup:
40
85
 
41
86
  ```sh
42
87
  npx --yes @polderlabs/bizar-omp setup
@@ -44,31 +89,50 @@ npx --yes @polderlabs/bizar-omp setup
44
89
 
45
90
  The installer:
46
91
 
47
- 1. Installs the exact Bizar version globally, providing `omb` and `bizar-omp`.
48
- 2. Registers and enables the package through `omp plugin install`.
92
+ 1. Installs the exact Bizar package version globally, providing `omb` and `bizar-omp`.
93
+ 2. Registers and enables that same version through OMP's plugin manager.
49
94
  3. Installs the extension, eight specialist agents, skills, rules, prompts, tools, and model roles.
50
95
  4. Makes the Bizar Orchestrator the default conversation and enables OMP's native Advisor.
51
- 5. Proposes only absent compatibility settings for background tasks, visible agents, and readable output; existing values—including approval policies and explicit false/empty settings—are preserved.
52
- 6. Writes a recoverable receipt for values it actually added and preserves credentials, provider choices, approval policies, and project overrides.
96
+ 5. Adds only absent compatibility settings for background work, visible agents, and readable output.
97
+ 6. Writes a recoverable receipt for settings it changed and reads the result back.
98
+
99
+ For a reproducible install, pin the version:
100
+
101
+ ```sh
102
+ npx --yes @polderlabs/bizar-omp@0.5.0 setup
103
+ ```
53
104
 
54
- Interactive terminals show a phase dashboard with detected versions, applied settings, the recovery receipt, and the next commands. Preview or script the same operation with:
105
+ For a named OMP profile or a non-standard OMP binary:
106
+
107
+ ```sh
108
+ npx --yes @polderlabs/bizar-omp setup --profile bizar
109
+ npx --yes @polderlabs/bizar-omp setup --omp /path/to/omp
110
+ ```
111
+
112
+ Preview or script the same operation:
55
113
 
56
114
  ```sh
57
115
  npx --yes @polderlabs/bizar-omp setup --dry-run
58
116
  npx --yes @polderlabs/bizar-omp setup --json
59
117
  ```
60
118
 
61
- ### Start OMP
119
+ The interactive installer shows detected versions, each phase, settings it will add, the recovery receipt, and the next commands. `--json` produces machine-readable output for shell automation.
120
+
121
+ ### Extension-only installation
122
+
123
+ Use this when you already manage `omb` separately or only need the OMP extension:
62
124
 
63
125
  ```sh
64
- omp # normal direct OMP session
65
- omb # durable tmux-backed session
66
- omb agents # session hub and new-session selector
126
+ omp plugin install @polderlabs/bizar-omp
67
127
  ```
68
128
 
69
- `omp` remains untouched. `omb` is the explicit durable mode. Plain `omb` reconnects to the most recently active live session in the current directory, or creates that directory's default session when none exists.
129
+ This does not install `omb` or `bizar-omp` on `PATH`. For checkout development, link the package instead:
70
130
 
71
- ### Verify, repair, or remove
131
+ ```sh
132
+ omp plugin link /path/to/bizaromp
133
+ ```
134
+
135
+ ### Check, repair, or remove
72
136
 
73
137
  ```sh
74
138
  bizar-omp install-doctor
@@ -76,173 +140,224 @@ omp plugin list
76
140
  omp plugin doctor
77
141
  ```
78
142
 
79
- For a profile-scoped installation:
143
+ `install-doctor` reports the active plugin, receipt state, settings drift, and the policies Bizar left under OMP's control. Uninstall only the Bizar integration with:
80
144
 
81
145
  ```sh
82
- npx --yes @polderlabs/bizar-omp setup --profile bizar
83
- omp --profile bizar
84
- bizar-omp install-doctor --profile bizar
146
+ bizar-omp uninstall
85
147
  ```
86
148
 
87
- Each profile has its own OMP login and model configuration. Remove Bizar's plugin configuration with `bizar-omp uninstall`. The command restores settings only when they still contain the values Bizar applied, preserving later edits. Remove the global shell commands separately if needed:
149
+ Uninstall restores a setting only when it still contains the value Bizar applied. If you changed that value later, Bizar preserves your change. Remove the global shell commands separately when needed:
88
150
 
89
151
  ```sh
90
152
  npm uninstall --global @polderlabs/bizar-omp
91
153
  ```
92
154
 
93
- ### Extension-only installation
155
+ ## Your first durable session
94
156
 
95
- Use the native plugin command only when you already manage the shell commands yourself or only need the OMP extension:
157
+ ### 1. Start OMP through `omb`
96
158
 
97
159
  ```sh
98
- omp plugin install @polderlabs/bizar-omp
160
+ omb
161
+ ```
162
+
163
+ `omb` starts OMP inside a Bizar-owned tmux session from the first process. Closing the terminal client detaches from the session; it does not stop the host or its background agents. Run `omb` again in the same directory to reconnect to the most recently active live session.
164
+
165
+ Use a task-specific session when you want an explicit name:
166
+
167
+ ```sh
168
+ omb new "Investigate the API timeout"
169
+ omb --session api-retries
99
170
  ```
100
171
 
101
- This does not install `omb` or `bizar-omp` on `PATH`. For checkout development, use `omp plugin link /path/to/bizaromp`.
172
+ `omp` remains the direct OMP command. Use it when you do not need durable tmux or psmux behavior.
102
173
 
103
- ## How to work with Bizar
174
+ ### 2. Ask for work in the main conversation
104
175
 
105
- The main OMP conversation is the Bizar Orchestrator. It chooses the smallest method that fits the work:
176
+ The main conversation is the Bizar Orchestrator. Give it the outcome and constraints in plain language. It selects the smallest workflow tier that fits the work:
106
177
 
107
- | Tier | Use it for | Typical proof |
178
+ | Tier | Good fit | Typical proof |
108
179
  | --- | --- | --- |
109
- | Focused | A local bug fix, styling change, typo, or narrow documentation edit | Targeted check, diff review, or smoke test |
180
+ | Focused | A typo, small documentation edit, or narrow local fix | Targeted check, diff review, or smoke test |
110
181
  | Bounded | A contained behavior change or small feature | Acceptance criteria and focused tests |
111
- | Full | Security, architecture, migrations, concurrency, unknown regressions, or cross-cutting work | Planning, isolation, fresh evidence, review, and serialized integration |
182
+ | Full | Security, architecture, migrations, concurrency, or cross-cutting work | Planning, isolation, review, fresh evidence, and serialized integration |
183
+
184
+ The tier can escalate when the scope or risk changes. A focused request still gets validation.
112
185
 
113
- The route can escalate when scope or risk changes. A focused task is still validated; it simply avoids ceremony that does not improve the result.
186
+ ### 3. Inspect the work
114
187
 
115
- ### Useful commands inside OMP
188
+ Inside OMP, these commands expose the workflow state and proof:
116
189
 
117
190
  ```text
118
- /bizar run <objective> start a bounded workflow
119
- /bizar status inspect the active workflow
120
- /bizar evidence inspect current proof
121
- /bizar cancel cancel the active workflow
122
- /bizar-models map available OMP models to Bizar roles
123
- /bizar-models health validate Bizar role selectors without changing them
124
- /bizar-dashboard open the local OMB dashboard (open | stop)
191
+ /bizar run <objective> Start a bounded workflow
192
+ /bizar status Show the active workflow state
193
+ /bizar evidence List recorded checks and evidence
194
+ /bizar inspect Explain blockers and evidence lineage
195
+ /bizar recipe <objective> Preview an inspectable recipe
196
+ /bizar capabilities Show native qualification boundaries
197
+ /bizar cancel [reason] Cancel the active workflow
125
198
  ```
126
199
 
127
- `/bizar-models` reads OMP's authenticated model catalog locally, assigns the best available selectors to Bizar roles, validates native resolution, and preserves unrelated roles. Locally hosted models (llama.cpp, Ollama, LM Studio, vLLM, ...) are preferred for the build, verify, and docs roles when one satisfies the role's capability floor; capable cloud models remain the fallback, and high-stakes roles keep capability-first ranking.
200
+ The tools behind these commands keep completion tied to fresh, host-observed checks. A stale check, changed candidate, missing review, or unknown native capability remains a blocker instead of being silently treated as success.
128
201
 
129
- ## Durable sessions and the agents hub
202
+ Useful model and dashboard commands are also available:
130
203
 
131
- Use `omb` when a session must keep running after the terminal client closes. OMP runs inside a Bizar-owned tmux host from the first process. The client can detach without stopping the host or its background agents. For sessions that must survive even a machine-level client restart, and for browser access, use the background daemon and dashboard below.
204
+ ```text
205
+ /bizar-models Map available OMP models to Bizar roles
206
+ /bizar-models health Validate configured role selectors
207
+ /bizar-dashboard Print a single-use local dashboard link
208
+ /bizar-dashboard open Open the dashboard in the default browser
209
+ /bizar-dashboard stop Stop the dashboard daemon
210
+ ```
211
+
212
+ `/bizar-models` reads OMP's authenticated model catalog locally, preserves unrelated roles, and validates the selectors it writes. It does not promise a particular provider, model family, price, or quality level.
132
213
 
133
- On Windows the same flows run through [psmux](https://github.com/psmux/psmux), a native tmux-compatible multiplexer. Install it with `winget install psmux`. The `BIZAR_TMUX_BIN` override wins; otherwise Bizar uses `psmux` on Windows and `tmux` elsewhere, falling back to a direct OMP spawn when no multiplexer is installed.
214
+ ## The `omb agents` hub
215
+
216
+ Open the session switcher from any project:
134
217
 
135
218
  ```sh
136
- omb new "Investigate the API timeout"
137
- omb --session api-retries
138
219
  omb agents
139
220
  ```
140
221
 
141
- The `omb agents` hub provides:
222
+ The hub shows every Bizar-owned session across projects. It includes:
142
223
 
143
- - A workspace rail and grouped session list across projects.
144
- - A global registry of every Bizar session, including sessions running outside the directory where `omb agents` was opened.
145
- - Session attach, rename, delete, refresh, settings, help, and reconnect controls.
224
+ - One full-width, workspace-grouped session list with a compact selected-session strip.
225
+ - Attach, rename, delete, refresh, settings, help, and reconnect controls.
146
226
  - A new-session selector opened with `n`.
147
- - `Tab` focus for the workspace rail. Select a workspace with `Up`/`Down`, then press `Enter` to immediately launch a new session rooted in that workspace; use `n` for the full new-session menu.
148
- - Workspace separators in the session list so sessions from different projects are easy to scan.
149
- - Inline rename from the hub with `e`; the name is saved without leaving the TUI for a separate prompt.
150
- - Mouse support for clicking sessions and workspaces and scrolling either list. The hub enables terminal SGR mouse reporting only while it is open.
151
- - Fuzzy directory search with recursive subdirectory indexing, parent navigation, recent project shortcuts, path autocomplete, and direct absolute paths.
152
- - A configurable Project directory root in Settings; it becomes the default new-session root and its full subdirectory tree is indexed for quick dispatch from anywhere.
153
- - Optional initial task text and session naming without leaving the TUI.
154
- - Native OMP session titles with deterministic project/task fallbacks.
155
- - An optional native system-tray menu for opening the hub, creating a session, attaching a named session, stopping the daemon, or quitting the tray.
156
-
157
- Key controls are `Enter` attach, `Tab` focus workspaces, workspace `Enter` immediate new session, `n` full new-session menu, `e` rename, `d` delete, `s` settings, `r` refresh, `?` help, and `q` exit. Inside a session, `Ctrl-d` or `Ctrl-c` returns to the hub without sending EOF or interrupt input to OMP. Mouse interaction in the hub supports row clicks and scrolling; mouse scrolling for attached OMP sessions remains configurable in Settings.
158
-
159
- To configure fast project picking, open `s`, select `Project directory root`, press `Enter`, enter a path such as `~/projects`, and press `s` to save. The new-session selector keeps direct absolute paths and parent navigation, while also indexing the configured folder's recursive subdirectories.
160
-
161
- The tray is opt-in. In the hub Settings (`s`), enable `system tray icon`, or run `omb tray start`; use `omb tray status` and `omb tray stop` to inspect or disable it. The tray uses the native backend on supported Linux x64/arm64, macOS x64/arm64, and Windows x64/arm64 hosts. Unsupported desktop environments keep the daemon and terminal workflows available without failing.
227
+ - Recursive search inside the configured Project directory root, parent navigation, recent paths, autocomplete, and direct absolute paths.
228
+ - Optional task text and an explicit session name.
229
+ - Privacy-safe activity summaries derived from the session journal. Prompts, thinking text, shell commands, tool output, credentials, and raw terminal history are not rendered.
230
+ - Optional native tray controls for opening the hub, creating a session, attaching a named session, stopping the daemon, and quitting the tray.
162
231
 
163
- ### Session state and live activity
232
+ ### Hub controls
164
233
 
165
- The hub reports every session in one of five states:
234
+ | Key | Action |
235
+ | --- | --- |
236
+ | `Enter` | Attach to the selected live session |
237
+ | `n` | Open the full new-session menu |
238
+ | `e` | Rename the selected session inline |
239
+ | `d` | Delete the selected Bizar session |
240
+ | `s` | Open settings |
241
+ | `r` | Refresh without moving selection or scroll |
242
+ | `?` | Open help |
243
+ | `q` | Exit the hub |
166
244
 
167
- | State | Marker | Color | Meaning |
168
- | --- | --- | --- | --- |
169
- | `working` | `●` | green | The session journal shows unfinished work. |
170
- | `waiting` | `◐` | amber | The agent finished its turn and is waiting for input. |
171
- | `connected` | `◉` | blue | A client is attached and no structured activity has been journaled yet. |
172
- | `disconnected` | `◌` | gray | The host is live and unattached, with no work in progress. |
173
- | `stopped` | `○` | dim gray | No host is observed and the journal went silent. |
245
+ Mouse clicks select sessions and a second click opens a live one. Mouse scrolling moves through the session list while the hub is open. The hub enables terminal SGR mouse reporting only for its own lifetime. Mouse behavior inside an attached OMP session follows the session's OMP and multiplexer settings.
174
246
 
175
- Each state renders with its own marker and color. State follows the agent, not tmux attachment alone: detach the client while the agent is still processing and the session keeps reporting `working`. Liveness comes from the journal too: a session whose tmux host is gone but whose journal was written inside the freshness window is still reported as `working`, `waiting`, or `disconnected`, and only becomes `stopped` once that journal is silent.
247
+ To configure project discovery, open `s`, select `Project directory root`, press `Enter`, enter a path such as `~/projects`, and save. Use `Show stopped sessions in this view` when you need to inspect sessions whose host is no longer running. Deleting a session also tombstones its native journal so a recent history entry cannot reappear as an unopenable session; deleting an already unhosted row removes that stale history entry.
176
248
 
177
- Every row, and the inspector for the selected session, shows a live activity line: the current phase with a short safe target, such as `Editing src/cli/agents.ts` or `Running tests`. Activity that stopped advancing is labeled `· stalled`, journal silence beyond the freshness window is labeled `· stale`, and a session with nothing journaled yet reads `No recent activity`. The inspector also reports the `IN STATE` duration of the current phase.
249
+ ### Session states
178
250
 
179
- Activity is derived from the structure of the session journal: entry types, roles, tool names, and file paths. Prompt text, thinking text, shell command text, tool output, environment values, and raw terminal history are never rendered. A session name is identity, not activity: the hub shows OMP's own title when there is one and otherwise a seven-word, single-line compaction of the first prompt, which is the same text OMP titles are derived from.
251
+ | State | Meaning |
252
+ | --- | --- |
253
+ | `working` | The journal shows unfinished work. |
254
+ | `waiting` | The agent finished its turn and is waiting for input. |
255
+ | `connected` | A client is attached and no structured activity has been journaled yet. |
256
+ | `disconnected` | The host is live and unattached, with no work in progress. |
257
+ | `stopped` | No host is observed and the journal is silent. |
180
258
 
181
- Stopped sessions are listed only while `Show stopped sessions in this view` is enabled in hub Settings (`s`). Status refreshes every few seconds in place, without moving the selection or the scroll position.
259
+ State follows journal activity and host liveness, not tmux attachment alone. A detached session can remain `working`. Activity that stops advancing is marked `stalled`; old journal data is marked `stale`.
182
260
 
183
- ## Model roles and native assets
261
+ ### Optional tray
184
262
 
185
- Bizar registers visible `bizar_*` roles without replacing operator-owned mappings. The Orchestrator and Advisor are enabled by default; specialist definitions are available to OMP when the orchestrator delegates work. Installation also provides the `bizar-omp` orientation skill, workflow skills, native rules, prompts, tools, and the OMP-native development reference skill.
263
+ Enable the tray from hub Settings or use:
186
264
 
187
- ## Security boundaries
265
+ ```sh
266
+ omb tray start
267
+ omb tray status
268
+ omb tray stop
269
+ ```
188
270
 
189
- - Bizar is trusted in-process extension code. OMP extensions and shell commands are not an OS sandbox.
190
- - API keys, tokens, `.env` contents, and private control links are never written to source, logs, commits, or evidence.
191
- - Credentials, providers, explicit tool policies, model selections, and project overrides remain owned by OMP.
192
- - Managed worker changes remain isolated and are retained for explicit parent integration. Bizar does not silently apply worker patches.
193
- - Install only in projects and environments you trust. Review changes with `setup --dry-run` and `bizar-omp install-doctor`.
271
+ The native tray backend is available on supported Linux, macOS, and Windows hosts. Unsupported desktop environments keep the terminal hub and daemon available.
194
272
 
195
- ## Background daemon and the OMB dashboard
273
+ ## Browser dashboard and daemon
196
274
 
197
- `omb daemon` owns long-running sessions independently of any terminal client. The daemon serves the local dashboard and keeps the on-disk session snapshot fresh, so a browser can show live state without an OMP session open.
275
+ The daemon keeps a session snapshot fresh independently of a terminal client. The dashboard binds to loopback and uses a single-use access code that expires after five minutes.
198
276
 
199
277
  ```sh
200
- omb daemon start # detached, loopback only
201
- omb daemon status # state, pid, port, last scan, state counts, log path
278
+ omb daemon start
279
+ omb daemon status
202
280
  omb daemon restart
203
281
  omb daemon stop
204
282
  ```
205
283
 
206
- `omb dashboard` starts the daemon when needed and prints a single-use link:
284
+ Open the dashboard:
207
285
 
208
286
  ```sh
209
- omb dashboard # prints http://127.0.0.1:<port>/dash?oc=…
210
- omb dashboard --open # also opens the default browser
211
- omb dashboard --json # { url, port, pid, code } for scripts
212
- omb dashboard stop # stops the daemon; tmux sessions keep running
287
+ omb dashboard # print the local URL
288
+ omb dashboard --open # print and open it in the default browser
289
+ omb dashboard --json # emit { url, port, pid, code }
290
+ omb dashboard stop # stop the daemon; tmux sessions keep running
213
291
  ```
214
292
 
215
- Inside an OMP session, `/bizar-dashboard` dispatches the same CLI and prints the link; `/bizar-dashboard open` launches a browser, and `/bizar-dashboard stop` stops the daemon.
293
+ The dashboard is organized around the active session. Choose a workspace session, read its live tmux console, and send a message from the composer with **Ctrl Enter**. Console output refreshes automatically without pulling you back to the bottom when you scroll up. **Open terminal** remains available for full-screen OMP interaction.
294
+
295
+ Create, rename, attach, and stop actions stay alongside the selected session. Dashboard settings edit the same project-root, auto-attach, mouse-forwarding, stopped-session, and tray preferences used by the terminal hub. Attach uses a terminal emulator from `PATH`; set `BIZAR_TERMINAL` to override detection. If no emulator is available, the dashboard returns the exact attach command.
296
+
297
+ The dashboard does not fetch a remote frontend. It serves one self-contained page, binds to `127.0.0.1`, and keeps the exchanged token in browser session memory. The session-list payload excludes credentials, environment values, pane commands, process ids, prompts, and terminal history. Opening a session console makes a separate authenticated request for a bounded, control-sequence-stripped capture of that exact Bizar-owned tmux pane; composer input is length-limited and sent literally to that pane.
298
+
299
+ ## Native roles and assets
300
+
301
+ Installation registers visible `bizar_*` roles without replacing operator-owned mappings. The default package includes:
302
+
303
+ - Bizar Orchestrator and Advisor integration.
304
+ - Specialist agents for architecture, planning, research, implementation, review, security, verification, and documentation.
305
+ - The `bizar-omp` orientation and workflow skills.
306
+ - Native rules, prompts, tools, evidence schemas, and the OMP-native development reference skill.
216
307
 
217
- The dashboard is a single self-contained page that needs no network access: it binds to `127.0.0.1` only, exchanges its one-time access code for the daemon token, keeps that token in session memory, and never renders environment variables, credentials, or terminal history. Sessions are grouped by workspace, and attach, create, rename, and stop are confirmed before they act. Stopping a session is scoped to Bizar-owned tmux sessions; a foreign or unknown session is refused.
308
+ The role names are selectors, not guarantees of speed, cost, provider, or model quality. Inspect the resolved OMP catalog when those properties matter.
218
309
 
219
- Attach hands `tmux attach-session` to a terminal emulator it detects on `PATH` (`$BIZAR_TERMINAL` overrides the probe). When no emulator exists, the dashboard returns the exact command instead of failing silently.
310
+ ## Safety and ownership boundaries
311
+
312
+ - Bizar is trusted in-process extension code. OMP extensions and shell commands are not an OS sandbox.
313
+ - Credentials, API keys, `.env` contents, and private control links are excluded from logs, commits, and evidence bundles.
314
+ - OMP keeps ownership of credentials, providers, model selections, approval policies, tool policies, and project overrides.
315
+ - Managed worker changes stay isolated and require explicit parent integration. Bizar never silently applies worker patches.
316
+ - Git worktree cleanup is preview-first, ownership-aware, and non-forced. Ignored or uncertain content blocks cleanup.
317
+ - Install only in projects and environments you trust. Review `setup --dry-run` and `bizar-omp install-doctor` before making changes.
318
+
319
+ ### Qualification boundary
320
+
321
+ The 0.5.0 release qualifies candidate-bound integration, journal v2 validation and recovery, acceptance inspection, bounded resources, evidence bundles, and the packed native OMP extension contract on the declared Node, Bun, Git, and OMP environments.
322
+
323
+ The release does not claim OS sandboxing, provider model quality, universal native task or eval interception, automatic cleanup of an unqualified native isolation backend, or Claude Code/AO compatibility. See the [support matrix](docs/releases/support-matrix.md) for the current boundary.
220
324
 
221
325
  ## Compatibility
222
326
 
223
327
  | Component | Qualified baseline |
224
328
  | --- | --- |
225
329
  | OMP | 18.2.6, with 18.2.5 and 18.2.4 regression-qualified |
226
- | Node.js | 22.x and 24.x in CI |
330
+ | Node.js | 22.x and 24.x |
227
331
  | Bun | 1.3.14 compatibility job |
228
332
  | Package | `@polderlabs/bizar-omp@0.5.0` |
229
333
 
230
334
  Upstream OMP changes require a new compatibility baseline and contract run. The package does not widen a version range to hide an unqualified runtime.
231
335
 
232
- ## Development
336
+ ## Development and verification
233
337
 
234
338
  ```sh
235
- npm install
339
+ npm ci
340
+ npm run typecheck
341
+ npm test
236
342
  make verify
237
343
  ```
238
344
 
239
- The verification gate runs typecheck, tests, package checks, generated documentation checks, and secret scanning. A native OMP qualification run is also available when the OMP source package is installed:
345
+ `make verify` runs typecheck, tests, package verification, generated documentation checks, and secret scanning. Build the package directly with:
346
+
347
+ ```sh
348
+ npm run build
349
+ npm run verify:package
350
+ npm run pack:check
351
+ ```
352
+
353
+ The native OMP qualification needs the OMP source package. When it is available:
240
354
 
241
355
  ```sh
242
356
  npm run verify:omp
357
+ npm run verify:omp:registry
243
358
  ```
244
359
 
245
- See [CONTRIBUTING.md](CONTRIBUTING.md) for branches, Conventional Commits, release tags, and trusted publishing. Release notes live in [`docs/releases/`](docs/releases/).
360
+ Release notes and compatibility records live in [`docs/releases/`](docs/releases/). See [CONTRIBUTING.md](CONTRIBUTING.md) for branch conventions, release tags, and trusted publishing.
246
361
 
247
362
  ## License
248
363
 
@@ -1 +1 @@
1
- {"version":3,"file":"agents-ink.d.ts","sourceRoot":"","sources":["../../src/cli/agents-ink.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA0C,KAAK,cAAc,EAAwB,MAAM,wBAAwB,CAAC;AAE3H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAkyBhD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAO5M"}
1
+ {"version":3,"file":"agents-ink.d.ts","sourceRoot":"","sources":["../../src/cli/agents-ink.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA0C,KAAK,cAAc,EAAwB,MAAM,wBAAwB,CAAC;AAE3H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAI1D,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,cAAc,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,WAAW,CAAA;CAAE,CAAC;AAgqBhD,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAE,MAAM,EAAE,cAAc,UAAQ,GAAG,OAAO,CAAC,eAAe,CAAC,CAO5M"}