@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.
Files changed (4) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +178 -2
  3. package/dist/main.js +6142 -0
  4. 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
- # Temporary Holding Version
1
+ # team-discuss
2
2
 
3
- This version is a temporary placeholder for this package. An operational version to replace this has been submitted for review and is awaiting a staged release.
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