@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 +32 -70
- package/package.json +2 -2
- package/src/webui/dev/fake-service.ts +4 -1
- package/src/webui/dev/fixtures.ts +2 -1
- package/webui/dist/assets/index-Jq_b8Zkn.js +105 -0
- package/webui/dist/assets/index-SjTXGOCP.css +2 -0
- package/webui/dist/build.json +34 -26
- package/webui/dist/index.html +2 -2
- package/webui/dist/assets/index-BEiuc5X3.css +0 -2
- package/webui/dist/assets/index-Clb_LGTn.js +0 -99
package/README.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Bot-Lobby
|
|
2
2
|
|
|
3
|
-
A [Pi](https://pi.dev) extension for
|
|
4
|
-
|
|
5
|
-
|
|
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
|
+

|
|
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
|
|
14
|
-
|
|
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
|
-
|
|
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
|
-
|
|
24
|
-
|
|
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
|
|
27
|
-
`--
|
|
28
|
-
|
|
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
|
-
|
|
32
|
-
|
|
33
|
-
| Agent | Responsibility |
|
|
28
|
+
| Agent | Does |
|
|
34
29
|
| --- | --- |
|
|
35
|
-
|
|
|
36
|
-
| DESIGN |
|
|
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
|
|
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
|
-
##
|
|
36
|
+
## Keys
|
|
45
37
|
|
|
46
|
-
|
|
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
|
-
|
|
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
|
-
|
|
|
45
|
+
| Plan | Tasks |
|
|
69
46
|
| --- | --- |
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
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
|
+
|  |  |
|
|
48
|
+
| **Thinking** | **Excalidraw** |
|
|
49
|
+
|  |  |
|
|
87
50
|
|
|
88
|
-
|
|
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
|
-
|
|
93
|
-
|
|
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.
|
|
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/
|
|
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)
|
|
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
|
|
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
|
};
|