@a-t-h-i/bot-lobby 0.6.21 → 0.6.22

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
@@ -1,8 +1,10 @@
1
1
  # Bot-Lobby
2
2
 
3
- A [Pi](https://pi.dev) extension for intentional, multi-agent software development.
4
- Describe a change, agree on a plan with the oracle, and follow the domain agents in a local browser lobby.
5
- The engine enforces approvals, domain boundaries and QA before completion.
3
+ A [Pi](https://pi.dev) extension for multi-agent software development. Describe a change, agree a plan
4
+ with the oracle, and follow the agents in a local browser lobby. Approvals, domain boundaries and QA
5
+ are enforced before anything is called done.
6
+
7
+ ![The Lobby: the conversation, the agents' activity and the Thinking orb](.github/screenshots/lobby.png)
6
8
 
7
9
  ## Install
8
10
 
@@ -10,84 +12,44 @@ The engine enforces approvals, domain boundaries and QA before completion.
10
12
  pi install npm:@a-t-h-i/bot-lobby
11
13
  ```
12
14
 
13
- Try without installing: `pi -e npm:@a-t-h-i/bot-lobby`.
14
- From a checkout: `pi -e ./src/index.ts` (keep `prompts/` beside `src/`).
15
- Questionnaire and web tools are included; don't also install extensions registering the same tool names.
16
-
17
- ## Quick start
15
+ Try it first with `pi -e npm:@a-t-h-i/bot-lobby`, or from a checkout with `pi -e ./src/index.ts`.
16
+ The questionnaire and web tools are built in, so don't also install extensions with the same tool names.
18
17
 
19
- 1. Run `/bot-lobby add a login page` in Pi; the lobby opens in your browser.
20
- 2. Answer the oracle's questions and approve its proposal, or use Plan to agree on a task first.
21
- 3. Follow the agents in Lobby; configure models, effort and time limits in Settings.
18
+ ## Use
22
19
 
23
- The project switcher (top left, `P`) switches among already-running, authorized project lobbies on one localhost origin.
24
- Upgrading? Reattach older temporary files; previews and attachments are now isolated per project.
20
+ 1. In Pi, run `/bot-lobby add a login page`. The lobby opens in your browser.
21
+ 2. Answer the oracle's questions and approve its plan, or agree one with the panel in **Plan** first.
22
+ 3. Follow the agents in **Lobby**. Models, effort and time limits are in **Settings**.
25
23
 
26
- Small self-contained changes can route to Quick fix. `--task` forces a task;
27
- `--fast` / `--full` picks its workflow, and `--branch` / `--worktree` selects git isolation.
28
- Completed isolated tasks push their branch and attempt a GitHub PR through `gh`.
29
- Missing isolation, base branch, remote or authentication records a note without blocking completion; nothing auto-merges.
24
+ Small changes go to **Quick fix**. `--task` forces a full task, `--fast` / `--full` picks the workflow,
25
+ and `--branch` / `--worktree` isolates it in git. A finished isolated task pushes its branch and tries
26
+ to open a PR through `gh`; nothing merges on its own.
30
27
 
31
- ## Agent split
32
-
33
- | Agent | Responsibility |
28
+ | Agent | Does |
34
29
  | --- | --- |
35
- | Master / oracle | Your Pi session: questions, decisions, plan, delegation and approvals |
36
- | DESIGN | Browser UI, frontend logic, styling and accessibility |
30
+ | Oracle | Your Pi session: questions, plan, delegation and approvals |
31
+ | DESIGN | UI, frontend logic, styling and accessibility |
37
32
  | DEV | Backend, APIs, data, security and integrations |
38
33
  | QA | Targeted tests and the final quality gate |
39
- | RESEARCH | External facts and cited evidence |
40
-
41
- The planning panel brings these domains together before implementation.
42
- Own ordinary Plan messages and Task comments can be edited; Plan edits rerun the panel.
34
+ | RESEARCH | External facts, with sources |
43
35
 
44
- ## Shortcuts
36
+ ## Keys
45
37
 
46
- Browser navigation is ignored while typing, composing with an IME or using an overlay.
38
+ The lobby is keyboard-first, and every action button shows its key (`Archive E`, `Delete Del`).
39
+ `Alt+1`…`Alt+9` switch tabs, `j` / `k` move through lists, `/` focuses search or the message box,
40
+ `p` switches project, `d` flips the theme and `?` lists every key. Alt and Ctrl shortcuts can be
41
+ rebound with `lobby.keys`. In Pi, `Alt+G` toggles auto mode and `Ctrl+Shift+M` hides or restores bot-lobby.
47
42
 
48
- | Key | Action |
49
- | --- | --- |
50
- | `Alt+1`…`Alt+9`, bare `1`…`9` | Jump to the corresponding visible tab |
51
- | `Alt+[` / `Alt+]` | Previous / next tab |
52
- | `j` / `k` | Next / previous selectable list row |
53
- | `g` then a letter | Jump to a named tab (mapping below) |
54
- | `/` | Focus the current tab's search, when available |
55
- | `p` | Open the project switcher |
56
- | `d` | Switch between light and dark |
57
- | `?`, `Alt+H` | Shortcut help |
58
- | `Esc` | Close the top overlay or cancel a pending navigation prefix |
59
- | `Alt+S` | Settings |
60
- | `Alt+O` | Sessions |
61
- | `Alt+A` / `Alt+T` | Fold / expand Activity / Thinking |
62
- | `Ctrl+S` | Save the plan on Plan |
63
-
64
- Every action button prints its key (`Archive E`, `Delete Del`) and the key works while the list or
65
- the detail has focus (press `Esc` first to leave the message box). Keys that cannot be undone ask first;
66
- in that question `Y` confirms and `Esc` keeps.
43
+ ## Screenshots
67
44
 
68
- | Page | Keys |
45
+ | Plan | Tasks |
69
46
  | --- | --- |
70
- | Tasks | `e` archive, `r` restore, `a` auto mode, `Delete` delete |
71
- | Saved plan | `s` start here, `n` new session, `Delete` discard |
72
- | Plan | `a` answer questions, `r` retry, `Ctrl+S` save, `n` new plan |
73
- | Quick fix | `r` run anyway, `t` make it a task, `c` cancel |
74
- | Git | `r` refresh, `v` review, `q` Jev's read, `x` stop the review |
75
- | Issues | `r` refresh |
76
- | Knowledge | `e` edit, `a` add, `c` comment, `f` edit the file, `Delete` delete |
77
- | Excalidraw | `r` reveal, `c` copy, `o` open, `w` let agents draw, `t` check, `Delete` remove |
78
- | Sessions | `m` move here, `s` stop, `b` back to the Lobby |
79
-
80
- `g` mapping: `l` Lobby, `p` Plan, `t` Tasks, `i` Issues, `u` Git,
81
- `s` Sessions, `n` Knowledge, `q` Quick fix, `m` Metrics, `e` Settings, `x` Excalidraw.
82
- Configured Alt/Ctrl actions are rebindable through `lobby.keys`; defaults live in
83
- [`src/lobby/keys.ts`](src/lobby/keys.ts). Bare browser aliases are additional navigation keys.
84
- In Pi, `Alt+G` toggles auto mode and `Ctrl+Shift+M` minimizes/restores the plugin.
85
-
86
- ## Configuration and docs
47
+ | ![The Plan start page: the panel as seats](.github/screenshots/plan.png) | ![A task with its action bar](.github/screenshots/tasks.png) |
48
+ | **Thinking** | **Excalidraw** |
49
+ | ![Each agent's latest thought, in steps](.github/screenshots/thinking.png) | ![A shared Excalidraw session](.github/screenshots/excalidraw.png) |
87
50
 
88
- Settings are user-global in `~/.pi/bot-lobby/config.json`;
89
- `BOT_LOBBY_CONFIG_DIR` overrides the directory. `/bot-lobby config` shows effective settings.
90
- Tasks and project knowledge stay under `.pi/bot-lobby/` in the project.
51
+ ## Configuration
91
52
 
92
- See [Architecture and guide](docs/architecture.md) for commands, workflow, planning,
93
- classifier, web tools, Excalidraw, configuration, recovery and development details.
53
+ Settings live in `~/.pi/bot-lobby/config.json` (`BOT_LOBBY_CONFIG_DIR` moves them), and
54
+ `/bot-lobby config` shows what is in effect. Tasks and project knowledge stay in `.pi/bot-lobby/`
55
+ inside your project.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@a-t-h-i/bot-lobby",
3
- "version": "0.6.21",
3
+ "version": "0.6.22",
4
4
  "description": "Structured multi-agent software engineering orchestrator for Pi",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -35,7 +35,7 @@
35
35
  "extensions": [
36
36
  "./src/index.ts"
37
37
  ],
38
- "image": "https://raw.githubusercontent.com/a-t-h-i/bot-lobby/main/docs/gallery.png"
38
+ "image": "https://raw.githubusercontent.com/a-t-h-i/bot-lobby/main/.github/screenshots/lobby.png"
39
39
  },
40
40
  "scripts": {
41
41
  "typecheck": "tsc --noEmit && tsc -p webui --noEmit",
@@ -236,7 +236,10 @@ function seedFeed(feed: LobbyFeed, fixture: ScenarioFixture): void {
236
236
  if (entry.pending) feed.begin(entry.source, entry.text);
237
237
  else feed.log(entry.source, entry.text, entry.kind);
238
238
  }
239
- for (const entry of fixture.feed.thoughts) feed.thought(entry.source, entry.text);
239
+ for (const entry of fixture.feed.thoughts) {
240
+ if (entry.live) feed.thinkDelta(entry.source, entry.text);
241
+ else feed.thought(entry.source, entry.text);
242
+ }
240
243
  if (fixture.feed.reply) feed.replyDelta(fixture.feed.reply);
241
244
  }
242
245
 
@@ -47,7 +47,8 @@ export interface ScenarioFixture {
47
47
  feed: {
48
48
  chat: Array<{ role: ChatRole; text: string }>;
49
49
  activity: Array<{ source: string; text: string; kind: "info" | "success" | "warning" | "error"; pending: boolean }>;
50
- thoughts: Array<{ source: string; text: string }>;
50
+ /** `live` thoughts are still streaming, as an agent thinking now. */
51
+ thoughts: Array<{ source: string; text: string; live?: boolean }>;
51
52
  reply: string;
52
53
  chatOlder: boolean;
53
54
  };