@siriuslan/team-discuss 0.0.0-stage → 0.2.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/LICENSE +28 -0
- package/README.md +178 -2
- package/dist/main.js +6142 -0
- package/package.json +51 -4
package/LICENSE
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 blan
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
This license covers the original text of this package only. The ideas it
|
|
26
|
+
summarizes come from "A Philosophy of Software Design" by John Ousterhout
|
|
27
|
+
(Yaknyam Press, 2018). That book is copyrighted by its author and is not
|
|
28
|
+
included in or licensed by this package.
|
package/README.md
CHANGED
|
@@ -1,3 +1,179 @@
|
|
|
1
|
-
#
|
|
1
|
+
# team-discuss
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
A terminal app for moderated discussions between AI agents. **The app is the
|
|
4
|
+
moderator**: it decides who speaks, pauses when a participant needs you, and has a
|
|
5
|
+
moderator agent write the summary. You watch live and can join in at any time.
|
|
6
|
+
|
|
7
|
+
- **Reusable participants.** A participant is a saved profile: an agent, model,
|
|
8
|
+
thinking level and either a **project folder** (it reads and can change your code)
|
|
9
|
+
or a **role** (instructions plus its own reference folder, read-only).
|
|
10
|
+
- **Teams.** Save an ordered set of participants and load it when starting.
|
|
11
|
+
- **Global history.** One dashboard lists every discussion on this machine. Opening
|
|
12
|
+
old history never spends tokens: it always opens **paused**.
|
|
13
|
+
- **Guided start.** Topic → Participants → Review & start. Agents only run after you
|
|
14
|
+
choose **Start discussion** on the final Review step.
|
|
15
|
+
|
|
16
|
+
It is the standalone sibling of the
|
|
17
|
+
[`discuss` pi extension](https://www.npmjs.com/package/@siriuslan/discuss). The two do
|
|
18
|
+
not share data.
|
|
19
|
+
|
|
20
|
+
## Status: 0.2.0 (early release)
|
|
21
|
+
|
|
22
|
+
- **New in 0.2.0:** project participants can change files and run commands during
|
|
23
|
+
rounds. Role participants stay read-only; ask `@builder` to create output in the
|
|
24
|
+
discussion's `files/` folder. Commands run as you, without folder confinement.
|
|
25
|
+
- **Compatibility:** 0.1.0 cannot read discussions after 0.2.0 records builder turns
|
|
26
|
+
or tool-action lists. Use 0.2.0 to reopen them; the data is not lost.
|
|
27
|
+
|
|
28
|
+
- **Only [pi](https://www.npmjs.com/package/@earendil-works/pi-coding-agent) is
|
|
29
|
+
offered** for participants and the moderator. Claude Code and Codex seats stay
|
|
30
|
+
disabled, because their read-only/no-tools behavior could not be verified: Claude
|
|
31
|
+
Code's startup writes project settings into the workspace, and the tested Codex
|
|
32
|
+
setup needs a disabled feature. The app shows the reason instead of weakening the
|
|
33
|
+
limits.
|
|
34
|
+
- Tested on **macOS (Apple Silicon) with Node 26**. Node 22 and Linux are supported
|
|
35
|
+
targets but have **not** been re-tested against this release. Desktop clipboard
|
|
36
|
+
paste and IME (input method) typing have not been verified by hand.
|
|
37
|
+
- The terminal layout follows the approved design within terminal limits; spacing
|
|
38
|
+
differs slightly in places.
|
|
39
|
+
|
|
40
|
+
Please report problems on
|
|
41
|
+
[GitHub](https://github.com/siriuslan/pi-packages/issues).
|
|
42
|
+
|
|
43
|
+
## Requirements
|
|
44
|
+
|
|
45
|
+
- macOS or Linux (no Windows).
|
|
46
|
+
- Node.js **22.19 or newer**.
|
|
47
|
+
- An interactive terminal. `team-discuss --help` and `--version` work without one.
|
|
48
|
+
- To run discussions: [pi](https://www.npmjs.com/package/@earendil-works/pi-coding-agent)
|
|
49
|
+
installed on `PATH` and logged in to a model provider. Browsing history needs no
|
|
50
|
+
agent at all.
|
|
51
|
+
|
|
52
|
+
## Install
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npm install -g @siriuslan/team-discuss
|
|
56
|
+
team-discuss
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Uninstall with `npm uninstall -g @siriuslan/team-discuss`. Your data in
|
|
60
|
+
`~/.team-discuss` is kept; delete that folder yourself if you want it gone.
|
|
61
|
+
|
|
62
|
+
## Quick start
|
|
63
|
+
|
|
64
|
+
1. Run `team-discuss`. Use **Tab** to move between Discussions, Participants and
|
|
65
|
+
Teams.
|
|
66
|
+
2. On Participants press **n** and create a profile. The default model is
|
|
67
|
+
`anthropic/claude-opus-5-5` with `xhigh` thinking; type any model/thinking value pi
|
|
68
|
+
accepts, or press **Ctrl+G** for suggestions. **Ctrl+S** saves.
|
|
69
|
+
3. On Discussions press **n**: write the topic, pick participants (Space adds,
|
|
70
|
+
Alt+↑/↓ reorders, Alt+T loads a team), review the cost warning, then **Start
|
|
71
|
+
discussion** (or Ctrl+Enter).
|
|
72
|
+
4. Watch. Type a comment and press **Enter** to join in. **Esc** pauses after the
|
|
73
|
+
current turn, **Ctrl+X** stops the current response, **F1** lists every control.
|
|
74
|
+
|
|
75
|
+
When everyone is satisfied, the moderator writes a summary. Checkpoints (by default
|
|
76
|
+
every *participants × 3* turns) pause the discussion so you can steer it.
|
|
77
|
+
|
|
78
|
+
### When does a participant stop for you?
|
|
79
|
+
|
|
80
|
+
Ordinary mentions of `@Human` do **not** pause anything. A participant blocks for
|
|
81
|
+
your answer only by starting a line with:
|
|
82
|
+
|
|
83
|
+
```text
|
|
84
|
+
HUMAN INPUT REQUIRED: <the question>
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
The discussion then waits; **Ctrl+Q** jumps to the question and your reply resumes it.
|
|
88
|
+
|
|
89
|
+
### Asking the builder for files
|
|
90
|
+
|
|
91
|
+
Role participants only read, so every discussion also has a **builder**. Mention
|
|
92
|
+
`@builder` in a comment together with a request, for example
|
|
93
|
+
`@builder write the agreed plan to plan.md`. The builder runs before anyone else
|
|
94
|
+
speaks, works in the discussion's own folder (`discussions/<id>/files/`) and replies
|
|
95
|
+
with what it did; the discussion then continues as after any comment. It uses the
|
|
96
|
+
moderator's agent, model and thinking level.
|
|
97
|
+
|
|
98
|
+
Only your comments start it: a participant's `@builder` or `@all` never does.
|
|
99
|
+
`/reset @builder` cancels a request it hasn't started.
|
|
100
|
+
|
|
101
|
+
## Controls
|
|
102
|
+
|
|
103
|
+
| Where | Keys |
|
|
104
|
+
|---|---|
|
|
105
|
+
| Everywhere | Tab / Shift+Tab: next/previous section or field · Ctrl+C: quit |
|
|
106
|
+
| Lists | ↑/↓ select · Enter open · n new · r refresh · q quit · / filter (Discussions) · e edit, d delete (Participants, Teams; asks first) |
|
|
107
|
+
| Forms | Ctrl+S save · Ctrl+G suggestions · Esc cancel |
|
|
108
|
+
| New discussion | Alt+→ / Alt+← next/previous step · Alt+N add participant · Alt+T load team · Ctrl+Enter start (Review only) |
|
|
109
|
+
| Discussion | Enter send · Shift+Enter or Alt+Enter newline · Esc or `/pause` pause after turn · `/resume` · Ctrl+X stop response · Ctrl+Q question · Ctrl+B latest · F1 help · F2 details |
|
|
110
|
+
| Discussion commands | `@builder <request>` (in a comment) · `/next @name [note]` · `/mute @name` · `/unmute @name` · `/reset @name` · `/wrap` · `/retry` · `/back` |
|
|
111
|
+
|
|
112
|
+
Destructive confirmations (delete, take over, leave while an agent is speaking)
|
|
113
|
+
always default to **Cancel**; you have to move to the named action deliberately.
|
|
114
|
+
|
|
115
|
+
## What it runs, and what leaves your machine
|
|
116
|
+
|
|
117
|
+
- **Model providers receive the discussion.** Every turn sends the topic, the
|
|
118
|
+
discussion so far, the participant's instructions and **any files the participant
|
|
119
|
+
reads** to that participant's model provider. Do not include secrets.
|
|
120
|
+
- **Project participants can change their project.** pi runs them in the project
|
|
121
|
+
folder with `read`, `bash`, `edit`, `write`, `grep`, `find` and `ls`, no MCP
|
|
122
|
+
(`--tools read,bash,edit,write,grep,find,ls --exclude-tools mcp__* --no-mcp`), and they
|
|
123
|
+
may do so during rounds without asking. **Commands run as you**, so nothing confines
|
|
124
|
+
them to the folder; they are only told to stay in it. Use version control in project
|
|
125
|
+
folders you add.
|
|
126
|
+
- **Role participants are read-only.** pi runs them in their role folder with only
|
|
127
|
+
`read`, `grep`, `find` and `ls`, no MCP. They cannot edit files or run commands.
|
|
128
|
+
- **The builder changes files only when you ask**, with the same tools as project
|
|
129
|
+
participants, in `discussions/<id>/files/`. Its commands also run as you; it is told
|
|
130
|
+
to keep its changes in that folder and away from the discussion's record.
|
|
131
|
+
- **Changes are listed under each turn.** The files a turn wrote or edited and the
|
|
132
|
+
commands it ran are taken from pi's tool events, not from the reply. A stopped or
|
|
133
|
+
failed turn is not recorded, so it may have changed files without a list.
|
|
134
|
+
- **The moderator has no tools** (`--no-tools --no-mcp`). It only writes summaries.
|
|
135
|
+
- pi otherwise uses your normal pi login and settings, so its own configuration and
|
|
136
|
+
extensions still apply. `TEAM_DISCUSS_PI_BIN` can point at a specific `pi` binary.
|
|
137
|
+
- **Nothing runs in the background.** A discussion only runs while its view is open.
|
|
138
|
+
Leaving or quitting stops the current turn and waits for the agent processes to
|
|
139
|
+
exit. One exception: a command that a project participant or the builder starts in
|
|
140
|
+
the background (such as a dev server) can outlive its turn, because pi runs commands
|
|
141
|
+
in their own process group.
|
|
142
|
+
- **Costs.** Displayed costs and tokens are for **completed, recorded turns only**.
|
|
143
|
+
Stopped, failed or interrupted turns can still be billed by your provider. The
|
|
144
|
+
default model and thinking level are expensive; choose cheaper ones per profile if
|
|
145
|
+
you like.
|
|
146
|
+
|
|
147
|
+
## Your data
|
|
148
|
+
|
|
149
|
+
Everything is stored locally in `~/.team-discuss` (override with
|
|
150
|
+
`TEAM_DISCUSS_HOME`). Keep it on a **local disk**, not a network or cloud-synced
|
|
151
|
+
folder. Folders are private (`0700`) and files `0600`.
|
|
152
|
+
|
|
153
|
+
| Path | Contents |
|
|
154
|
+
|---|---|
|
|
155
|
+
| `config.json` | Default moderator agent/model/thinking and checkpoint factor |
|
|
156
|
+
| `participants/<name>/` | Profile, and for roles a `workspace/` reference folder shared by that role's discussions |
|
|
157
|
+
| `teams/<name>.json` | Team name and ordered member names |
|
|
158
|
+
| `discussions/<id>/` | `events/` (the authoritative record), a generated `transcript.md` and `files/`, the builder's folder |
|
|
159
|
+
|
|
160
|
+
- Discussions keep a frozen copy of their participants, so editing or deleting a
|
|
161
|
+
profile never changes old history.
|
|
162
|
+
- Deleting a profile deletes its role reference folder and removes it from teams;
|
|
163
|
+
it never touches project folders or history. The app always shows what will be
|
|
164
|
+
removed and asks first.
|
|
165
|
+
- `transcript.md` is regenerated from `events/`; manual edits to it are overwritten.
|
|
166
|
+
- Opening a discussion takes a lock. A second window opens it read-only and can
|
|
167
|
+
take over after a warning.
|
|
168
|
+
|
|
169
|
+
## More
|
|
170
|
+
|
|
171
|
+
- [Design](https://github.com/siriuslan/pi-packages/blob/main/apps/team-discuss/DESIGN.md)
|
|
172
|
+
and [development notes](https://github.com/siriuslan/pi-packages/blob/main/apps/team-discuss/docs/DEVELOPMENT.md)
|
|
173
|
+
(building, tests, verification record).
|
|
174
|
+
- [Agent capability probes](https://github.com/siriuslan/pi-packages/blob/main/apps/team-discuss/PROBES.md).
|
|
175
|
+
- [Release checklist](https://github.com/siriuslan/pi-packages/blob/main/apps/team-discuss/docs/RELEASE.md).
|
|
176
|
+
|
|
177
|
+
## License
|
|
178
|
+
|
|
179
|
+
MIT
|