bullswarm 0.30.0 → 0.32.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.
Files changed (65) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +71 -0
  3. package/README.md +67 -18
  4. package/data/openrouter-benchmarks.json +7951 -7976
  5. package/docs/claude-dynamic-workflow-mechanics.md +1 -1
  6. package/docs/experiments/2026-08-29-dogfood-bullswarm-builds-bullswarm.md +3 -3
  7. package/docs/experiments/2026-08-29-ultracode-vs-bullswarm.md +6 -6
  8. package/docs/guide/concepts.md +42 -0
  9. package/docs/guide/getting-started.md +99 -33
  10. package/docs/guide/index.md +53 -0
  11. package/docs/guide/observing.md +226 -0
  12. package/docs/guide/routing.md +91 -158
  13. package/docs/guide/run.md +106 -0
  14. package/docs/guide/workflows.md +185 -303
  15. package/docs/index.md +28 -50
  16. package/docs/integrations/agent-clis.md +98 -0
  17. package/docs/integrations/claude-code.md +120 -0
  18. package/docs/integrations/issue-watcher.md +142 -0
  19. package/docs/notes/index.md +31 -0
  20. package/docs/public/favicon.svg +7 -0
  21. package/docs/reference/cli.md +1149 -0
  22. package/docs/reference/configuration.md +157 -0
  23. package/docs/reference/program.md +149 -0
  24. package/docs/{guide → reference}/providers.md +53 -79
  25. package/docs/reference/result.md +143 -0
  26. package/docs/workflow-design.md +4 -4
  27. package/mods/bullswarm/.claude-plugin/plugin.json +28 -0
  28. package/mods/bullswarm/README.md +85 -0
  29. package/mods/bullswarm/hooks/hooks.json +4 -0
  30. package/mods/bullswarm/hooks/host.ts +26 -0
  31. package/mods/bullswarm/hooks/names.ts +59 -0
  32. package/mods/bullswarm/hooks/overview.ts +51 -0
  33. package/mods/bullswarm/hooks/pane.tsx +586 -0
  34. package/mods/bullswarm/hooks/pool-rows.tsx +118 -0
  35. package/mods/bullswarm/hooks/pools.ts +226 -0
  36. package/mods/bullswarm/hooks/register.ts +815 -0
  37. package/mods/bullswarm/hooks/route.ts +74 -0
  38. package/mods/bullswarm/hooks/runs.ts +250 -0
  39. package/mods/bullswarm/hooks/strip.tsx +146 -0
  40. package/mods/bullswarm/hooks/verdict.ts +89 -0
  41. package/mods/bullswarm/tsconfig.json +17 -0
  42. package/mods/bullswarm/types/index.d.ts +205 -0
  43. package/package.json +5 -4
  44. package/providers/contrib/README.md +1 -1
  45. package/providers/contrib/opencode2/provider.mjs +1 -1
  46. package/skill/references/providers.md +1 -1
  47. package/src/cli.js +52 -19
  48. package/src/help.js +46 -18
  49. package/src/integrate.js +86 -9
  50. package/src/lib/cli-flags.js +5 -3
  51. package/src/lib/providers.js +1 -1
  52. package/src/provider-cli.js +1 -1
  53. package/src/providers/_schema.json +1 -1
  54. package/src/setup.js +32 -0
  55. package/src/workflow/cli.js +10 -2
  56. package/src/workflow/dashboard.js +1095 -365
  57. package/src/workflow/usage-view.js +444 -0
  58. package/src/workflow/v2-presentation.js +1 -1
  59. package/docs/_config.yml +0 -7
  60. package/docs/guide/dashboard.md +0 -193
  61. package/docs/guide/doctrine.md +0 -63
  62. package/docs/guide/entry-points.md +0 -71
  63. package/docs/guide/operations.md +0 -132
  64. package/docs/guide/repository-operations.md +0 -15
  65. package/docs/guide/strategy.md +0 -171
package/AGENTS.md CHANGED
@@ -16,7 +16,7 @@ content. Published as `bullswarm` on npm.
16
16
  `src/meters/framework.js`).
17
17
  3. Provider quirks live in the provider's directory (`src/providers/<name>/`,
18
18
  `providers/contrib/<name>/`, or `~/.bullswarm/providers/<name>/`), never in
19
- core logic (see `docs/guide/providers.md`).
19
+ core logic (see `docs/reference/providers.md`).
20
20
  4. Quarantine always auto-releases; recursion depth is core-owned via env
21
21
  (`BULLSWARM_DEPTH`).
22
22
  5. Workflow dispatches must honor the same guarantees as single runs:
@@ -84,7 +84,7 @@ providers live in `src/providers/<name>/`, contrib providers in
84
84
  `bullswarm provider scaffold <name> [--from <template>]`, then
85
85
  `bullswarm provider validate` and `bullswarm provider probe <pool>`. Write a
86
86
  `readUsage` export only if the vendor exposes a usage API — declared meters
87
- are the fallback, never the goal. The contract is `docs/guide/providers.md`;
87
+ are the fallback, never the goal. The contract is `docs/reference/providers.md`;
88
88
  the authoring method is `skill/references/providers.md`.
89
89
 
90
90
  ## Releasing
package/CHANGELOG.md CHANGED
@@ -1,5 +1,76 @@
1
1
  # bullswarm changelog
2
2
 
3
+ ## 0.32.0 — the dashboard is the main screen
4
+
5
+ - wording: a program run's dependency levels are called phases everywhere the
6
+ product prints them (`Phase 2 · integrate`), matching what the planner's runs
7
+ already say; the ids in the events are unchanged.
8
+ - dashboard: the full-screen Home, Run, Step, Usage, and Help pages now share
9
+ a sticky header and bottom nav, keyboard shortcuts, mouse clicks, and wheel
10
+ scrolling, so a live workflow can be understood in one place.
11
+ - usage and edit: Usage renders every meter window, elapsed mark, reset, pace,
12
+ credit meter, and rung record with the same coloured cells as the status
13
+ view; its read-only note hands `[edit]` to setup and returns with fresh data.
14
+ - install: Home's `[install]` action runs the same integration install as
15
+ `bullswarm integrate install --yes`, then shows each agent's skill,
16
+ awareness, and Claude Mod status.
17
+ - bare command: after setup, bare `bullswarm` opens the dashboard; the first
18
+ run and `bullswarm --setup` or `bullswarm setup` open setup, while
19
+ `bullswarm workflow tui` remains the explicit dashboard form.
20
+ - docs: the README, guides, CLI reference, and Claude Code pages now make the
21
+ dashboard the main screen and describe the Claude Mod as its read-only
22
+ counterpart — the same Run, Step, and Usage pages in the same colours, with
23
+ no edit or install action.
24
+
25
+ ## 0.31.0 — the Claude Mod, and a documentation site
26
+
27
+ - mod: `mods/bullswarm` puts Bullswarm inside Claude Code's own interface as a
28
+ Claude Mod (function hooks, early access behind
29
+ `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1`). Claude's general-purpose subagents
30
+ are routed to the pool with spare quota through `bullswarm run --no-caller`
31
+ and answered with the verified output; the verdict of every `bullswarm run`
32
+ and `workflow goal` the model runs is appended to its Bash result; the pool
33
+ meters are named in the model's context; a strip above the prompt lists
34
+ the ongoing workflow runs; and a docked pane shows one run as
35
+ `bullswarm workflow tui` draws it, every step a button that opens the
36
+ step laid out as the TUI's agent panel. `/bullswarm pools|status|on|off|
37
+ refresh|runs|pane|open <step> [run]|routed` answer from the mod; anything
38
+ else still reaches the packaged skill. The pool rows draw a white mark
39
+ where the window's elapsed time falls, and `usage` in the pane's bottom
40
+ nav opens a page with every meter window of every pool, its reset time
41
+ and pace, the credit meter where there is one, and every pool × tier rung
42
+ with its model, reasoning and record, grouped by lane or by provider. A
43
+ `route` tool lets the model switch routing when the person asks. Pool
44
+ display names come from the
45
+ `poolAliases` option; `strip` picks `runs`, `full` or `off`.
46
+ - integrate: `bullswarm integrate install --agents claude --yes` also links
47
+ the mod under `~/.claude/skills/bullswarm-mod` and sets
48
+ `env.CLAUDE_CODE_ENABLE_FUNCTION_HOOKS` to `"1"` in `~/.claude/settings.json`;
49
+ `status` reports both and `remove` undoes both. A `settings.json` that is
50
+ not a JSON object is left alone and reported. `.claude-plugin/marketplace.json`
51
+ at the repository root makes `claude plugin marketplace add Bulls-Work/bullswarm`
52
+ and `claude plugin install bullswarm@bullswarm` work too.
53
+ - workflow tui: the Preflight milestone now states the accepted goal (wrapped)
54
+ with the paths of `goal.json` and `initial-planner-response.json`, and the
55
+ planner milestone says how many actions in how many dependency levels the
56
+ plan has. The Live section lists the planner only while it is planning;
57
+ the "waiting for N workers" planner row and the "· N waiting" count are
58
+ gone, since Next already says that. The first plan's own milestone is gone
59
+ too: the levels that follow it say what it planned; plan revisions and
60
+ rejected planning attempts still appear. A goal with several lines wraps
61
+ line by line instead of carrying a line break inside one row. `workflow tui <run> --overview
62
+ [--width <cols>] [--height <rows>]` prints one overview frame (or `--json`)
63
+ for a caller that draws its own.
64
+ - docs: the documentation site is now a VitePress site under `docs-site/`,
65
+ built from `docs/` and deployed to GitHub Pages by
66
+ `.github/workflows/docs.yml` at https://bulls-work.github.io/bullswarm/.
67
+ Guide (introduction, getting started, concepts, run, workflows, observing,
68
+ routing), Reference (CLI, workflow program, configuration, providers,
69
+ result envelope) and Integrations (Claude Code, Codex and Grok, issue
70
+ watcher) replace the Jekyll pages; the historical notes are indexed under
71
+ `/notes/`. `tests/unknown-flags.test.js` now checks every command form on
72
+ the new pages against the CLI.
73
+
3
74
  ## 0.30.0 — a run never waits: it finishes and hands back what is left
4
75
 
5
76
  - workflow: a run no longer waits for anyone. Every point where a
package/README.md CHANGED
@@ -43,12 +43,53 @@ version in place (`bullswarm update --check` only reports). Requires Node.js
43
43
  22.12 or later. `bullswarm setup` walks through detecting your
44
44
  installed agent CLIs, showing their quota state, and writing a routing
45
45
  configuration. See
46
- [Getting started](https://cowcow02.github.io/bullswarm/guide/getting-started/)
46
+ [Getting started](https://bulls-work.github.io/bullswarm/guide/getting-started)
47
47
  for integrating Bullswarm's skill into Codex, Claude, and Grok, and for the
48
48
  full quick-start command list.
49
49
 
50
+ ## Claude Mod (early access)
51
+
52
+ `mods/bullswarm` is the same routing injected into Claude Code's own engine
53
+ as a Claude Mod (a plugin of TypeScript function hooks, behind
54
+ `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1`): the pool meters drawn above the
55
+ prompt, the pools named in the model's context, Claude's general-purpose
56
+ subagents routed to whichever pool has surplus and answered with the
57
+ verified output, and the verdict appended to every `bullswarm run` the model
58
+ runs. The Mod is the dashboard's read-only counterpart: the same Run, Step and
59
+ Usage pages in the same meter colours, with no edit or install action. See
60
+ [mods/bullswarm/README.md](mods/bullswarm/README.md).
61
+
62
+ Three ways to load it:
63
+
64
+ ```bash
65
+ # with the CLI: links the mod under ~/.claude/skills and sets the flag in ~/.claude/settings.json
66
+ bullswarm integrate install --agents claude --yes
67
+
68
+ # from Claude Code's plugin marketplace (a copy that `claude plugin update` refreshes)
69
+ claude plugin marketplace add Bulls-Work/bullswarm
70
+ claude plugin install bullswarm@bullswarm
71
+
72
+ # one session only, from the installed package
73
+ CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 claude --plugin-dir "$(npm root -g)/bullswarm/mods/bullswarm"
74
+ ```
75
+
76
+ The marketplace route still needs `CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1`, in
77
+ the shell or under `env` in `~/.claude/settings.json`, and the `bullswarm`
78
+ CLI on `PATH`. Pick one route: an installed marketplace copy takes precedence
79
+ over the skills-dir link, and Claude says so at startup.
80
+
50
81
  ## Quick start
51
82
 
83
+ Once setup is complete, bare `bullswarm` opens the dashboard on its Home page.
84
+ Use `bullswarm --setup` or `bullswarm setup` to open setup again, and use
85
+ `bullswarm workflow tui` when you want the explicit dashboard command. The
86
+ pages are Home, Run, Step, Usage, and Help. A sticky header and bottom nav
87
+ (`[ 1.<run> ] … [ usage ] [ help ] [ quit ]`, each button's key
88
+ underlined inside its label) carry `q` (quit),
89
+ `h` or `?` (help), `u` (usage), `e` (edit), `i` (install), `l`/`p` (Usage tabs), arrows or
90
+ PgUp/PgDn (scroll), and Enter; click any button, tab, run or step, or use the
91
+ wheel to scroll.
92
+
52
93
  One bounded outcome — a task with a clear finish line:
53
94
 
54
95
  ```bash
@@ -107,7 +148,7 @@ instead.
107
148
  and never retried early.
108
149
 
109
150
  The full mechanics behind each of these are in
110
- [Routing](https://cowcow02.github.io/bullswarm/guide/routing/).
151
+ [Routing](https://bulls-work.github.io/bullswarm/guide/routing).
111
152
 
112
153
  ## What you get back
113
154
 
@@ -121,7 +162,7 @@ The full mechanics behind each of these are in
121
162
  content still verified; read it before re-running
122
163
 
123
164
  A non-zero exit from the delegate is never treated as success on its own. See
124
- [Doctrine](https://cowcow02.github.io/bullswarm/guide/doctrine/) for the full
165
+ [Result envelope](https://bulls-work.github.io/bullswarm/reference/result) for the full
125
166
  verdict shape.
126
167
 
127
168
  A workflow produces a durable, versioned result envelope — a JSON document
@@ -137,29 +178,37 @@ bullswarm workflow runs result <shortId> --json --summary # compact status once
137
178
  the exact flags to keep polling; `runs result --summary` is what to read once
138
179
  a run finishes, and `runs result --json` (no `--summary`) gives the full
139
180
  envelope for a failed or partial run. See
140
- [Operations](https://cowcow02.github.io/bullswarm/guide/operations/) for the
181
+ [Observing runs](https://bulls-work.github.io/bullswarm/guide/observing) for the
141
182
  full shape of both.
142
183
 
143
184
  ## Documentation
144
185
 
145
186
  The full documentation is published at
146
- [cowcow02.github.io/bullswarm](https://cowcow02.github.io/bullswarm/) once
147
- GitHub Pages is enabled for this repository (Settings → Pages → deploy from
148
- branch `main`, folder `/docs`). Until then, the same pages are readable
149
- directly under [`docs/guide/`](docs/guide/) in this repository.
187
+ [bulls-work.github.io/bullswarm](https://bulls-work.github.io/bullswarm/).
188
+
189
+ The dashboard is the main screen after setup: bare `bullswarm` opens Home,
190
+ `bullswarm --setup` or `bullswarm setup` opens setup, and
191
+ `bullswarm workflow tui` is the explicit form. The [Observing runs](https://bulls-work.github.io/bullswarm/guide/observing)
192
+ page maps its pages, keys, and mouse controls.
150
193
 
151
194
  | Page | What it covers |
152
195
  |---|---|
153
- | [Entry points](https://cowcow02.github.io/bullswarm/guide/entry-points/) | `run` vs `workflow goal`, and every top-level verb |
154
- | [Doctrine](https://cowcow02.github.io/bullswarm/guide/doctrine/) | The non-negotiable rules, and the result verdict shape |
155
- | [Getting started](https://cowcow02.github.io/bullswarm/guide/getting-started/) | Install, agent integration, quick-start commands |
156
- | [Strategy](https://cowcow02.github.io/bullswarm/guide/strategy/) | Model/provider configuration, rungs (model plus reasoning level per effort tier), benchmark evidence |
157
- | [Workflows](https://cowcow02.github.io/bullswarm/guide/workflows/) | Authoring a program, kinds, advisories, plan contract/validate/goal |
158
- | [Operations](https://cowcow02.github.io/bullswarm/guide/operations/) | Listing/inspecting runs, the result envelope, context diet |
159
- | [Dashboard](https://cowcow02.github.io/bullswarm/guide/dashboard/) | `workflow watch`, the interactive TUI, terminal glyph fallback |
160
- | [Repository operations](https://cowcow02.github.io/bullswarm/guide/repository-operations/) | The issue-watcher launchd agent |
161
- | [Routing](https://cowcow02.github.io/bullswarm/guide/routing/) | How a pool is picked: pace, headroom, urgency, load, quarantine |
162
- | [Providers](https://cowcow02.github.io/bullswarm/guide/providers/) | Adding your own agent CLI or reseller account as a provider plugin |
196
+ | [Introduction](https://bulls-work.github.io/bullswarm/guide/) | What Bullswarm is, the two entry points, and the four rules it never breaks |
197
+ | [Getting started](https://bulls-work.github.io/bullswarm/guide/getting-started) | Install, `setup`, `doctor`, agent integration, and your first verified run |
198
+ | [Concepts](https://bulls-work.github.io/bullswarm/guide/concepts) | Pools, lanes, surplus, the two windows, verdicts, quarantine, and the run directory |
199
+ | [Run one task](https://bulls-work.github.io/bullswarm/guide/run) | Every `bullswarm run` option, and what each verdict asks you to do |
200
+ | [Workflows](https://bulls-work.github.io/bullswarm/guide/workflows) | Authoring the program `workflow goal` executes: territories, dependencies, integration, acceptance |
201
+ | [Observing runs](https://bulls-work.github.io/bullswarm/guide/observing) | `workflow watch`, the Home/Run/Step/Usage/Help dashboard pages, keys, mouse, and terminal glyphs |
202
+ | [Routing](https://bulls-work.github.io/bullswarm/guide/routing) | How a pool is picked: pace, 5-hour headroom, urgency, load, quarantine |
203
+ | [CLI reference](https://bulls-work.github.io/bullswarm/reference/cli) | Every verb and nested subcommand, with its flags and defaults |
204
+ | [Workflow program](https://bulls-work.github.io/bullswarm/reference/program) | The `bullswarm.workflow.program.v2` document: action fields, kinds, validation rules |
205
+ | [Configuration](https://bulls-work.github.io/bullswarm/reference/configuration) | The Bullswarm home, `state.json`, strategy models and rungs, environment variables |
206
+ | [Providers](https://bulls-work.github.io/bullswarm/reference/providers) | Adding your own agent CLI or reseller account as a provider plugin |
207
+ | [Result envelope](https://bulls-work.github.io/bullswarm/reference/result) | Every field of `run --json` and of the workflow result document |
208
+ | [Claude Code](https://bulls-work.github.io/bullswarm/integrations/claude-code) | The packaged skill, the MCP server, and the read-only Claude Mod counterpart under `mods/bullswarm` |
209
+ | [Codex and Grok](https://bulls-work.github.io/bullswarm/integrations/agent-clis) | What `bullswarm integrate` writes for each agent CLI, and how to check it |
210
+ | [Issue watcher](https://bulls-work.github.io/bullswarm/integrations/issue-watcher) | The launchd agent that triages and fixes new GitHub issues |
211
+ | [Historical notes](https://bulls-work.github.io/bullswarm/notes/) | Working notes, audits, and experiment writeups, kept as records |
163
212
 
164
213
  ## License
165
214