@clubnet/seedclub 0.2.29 → 0.2.30
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 +7 -239
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,14 +28,11 @@ seedclub
|
|
|
28
28
|
|
|
29
29
|
### First run
|
|
30
30
|
|
|
31
|
-
On a fresh install, the normal setup flow is:
|
|
32
|
-
|
|
33
31
|
1. Run `seedclub`
|
|
34
|
-
2. Seed Club
|
|
35
|
-
3. `/login`
|
|
36
|
-
4. `/model`
|
|
37
|
-
|
|
38
|
-
After that, run `/seedclub` to open the main Seed Club menu.
|
|
32
|
+
2. Complete Seed Club sign-in when the browser opens
|
|
33
|
+
3. Run `/login`
|
|
34
|
+
4. Run `/model`
|
|
35
|
+
5. Open `/seedclub`
|
|
39
36
|
|
|
40
37
|
### Alternative: curl | bash
|
|
41
38
|
|
|
@@ -45,17 +42,15 @@ curl -fsSL https://raw.githubusercontent.com/seedclub/seedclub-agent/main/instal
|
|
|
45
42
|
|
|
46
43
|
### Package access
|
|
47
44
|
|
|
48
|
-
`@clubnet/seedclub` is a public npm package. Install access is open; runtime access is enforced
|
|
45
|
+
`@clubnet/seedclub` is a public npm package. Install access is open; runtime access is enforced inside the app.
|
|
49
46
|
|
|
50
47
|
## Core workflow
|
|
51
48
|
|
|
52
|
-
The normal interactive flow is:
|
|
53
|
-
|
|
54
49
|
1. Start the app with `seedclub`
|
|
55
|
-
2. Complete Seed Club
|
|
50
|
+
2. Complete Seed Club sign-in when the browser opens
|
|
56
51
|
3. Complete `/login` and `/model` if this is your first run
|
|
57
52
|
4. Open `/seedclub`
|
|
58
|
-
5. Choose the
|
|
53
|
+
5. Choose the workflow you need
|
|
59
54
|
|
|
60
55
|
## Commands
|
|
61
56
|
|
|
@@ -70,233 +65,6 @@ The normal interactive flow is:
|
|
|
70
65
|
|
|
71
66
|
Natural-language transcript retrieval is also supported (no slash command required). Examples: `download vibhu transcripts from 11am`, `i need transcripts for all guests on 11am last week`. Seed Club will run metadata-first export confirmation and then write VTT files.
|
|
72
67
|
|
|
73
|
-
## Auth
|
|
74
|
-
|
|
75
|
-
There are two separate auth layers in the product:
|
|
76
|
-
|
|
77
|
-
1. Seed Club auth: auto-start on launch or `/connect`
|
|
78
|
-
This connects the CLI to your Seed Club account so Seed Club tools and commands can read and write account data.
|
|
79
|
-
2. Model auth: `/login`
|
|
80
|
-
This signs you into the LLM provider you want the agent to use.
|
|
81
|
-
3. Personal calendar connect: `/connect-calendar`
|
|
82
|
-
This connects a Google Calendar to your Seed Club account for booking and availability workflows. It is only needed if you want the agent to schedule using your personal calendar.
|
|
83
|
-
|
|
84
|
-
Seed Club auth is the first gate. Until it succeeds, normal harness usage is blocked and only the setup commands are available.
|
|
85
|
-
|
|
86
|
-
`/seedclub` is the main entry point for Seed Club actions. If you are not connected yet, it will start the Seed Club connect flow automatically.
|
|
87
|
-
|
|
88
|
-
CLI auth now prefers an authorization-code exchange:
|
|
89
|
-
- browser callback: `http://127.0.0.1:<port>/callback?code=...&state=...`
|
|
90
|
-
- CLI exchange: `POST ${SEEDCLUB_API_URL}/auth/cli/exchange` with `{ code, state }`
|
|
91
|
-
|
|
92
|
-
Power-user env overrides:
|
|
93
|
-
|
|
94
|
-
```bash
|
|
95
|
-
export SEEDCLUB_API_URL=http://localhost:3001
|
|
96
|
-
export SEEDCLUB_AUTH_URL=http://localhost:3000
|
|
97
|
-
export SEEDCLUB_ACCESS_TOKEN=<bearer-token>
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
Production defaults are already built into the auth extension:
|
|
101
|
-
|
|
102
|
-
```bash
|
|
103
|
-
SEEDCLUB_API_URL=https://api.seedclub.com
|
|
104
|
-
SEEDCLUB_AUTH_URL=https://auth.seedclub.com
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
You do not need to export those for normal use. Only set env vars when you want to override them for local/dev.
|
|
108
|
-
|
|
109
|
-
## How it works
|
|
110
|
-
|
|
111
|
-
seedclub is an npm package (`@clubnet/seedclub`) that wraps [pi](https://github.com/badlogic/pi-mono) as a dependency. Installing the package globally gives you the `seedclub` command.
|
|
112
|
-
|
|
113
|
-
The `seedclub` CLI wrapper does three things:
|
|
114
|
-
1. Sets `PI_CODING_AGENT_DIR` to point pi at `~/.seedclub/agent/`
|
|
115
|
-
2. Sets `PI_SKIP_VERSION_CHECK=1` so pi's update banner never shows
|
|
116
|
-
3. Spawns the pi binary from the package's own `node_modules/`
|
|
117
|
-
|
|
118
|
-
A `postinstall` script runs after every install/update and sets up:
|
|
119
|
-
|
|
120
|
-
```
|
|
121
|
-
~/.seedclub/
|
|
122
|
-
└── agent/
|
|
123
|
-
├── extensions/
|
|
124
|
-
│ ├── seedclub/ ← core: auth, tools, commands
|
|
125
|
-
│ └── seedclub-ui/ ← UI: welcome screen, update check
|
|
126
|
-
├── themes/
|
|
127
|
-
│ ├── dark.json
|
|
128
|
-
│ └── light.json
|
|
129
|
-
├── settings.json
|
|
130
|
-
└── .seedclub-version
|
|
131
|
-
```
|
|
132
|
-
|
|
133
|
-
This means:
|
|
134
|
-
- Running `seedclub` → uses `~/.seedclub/agent/` config, package-local pi binary
|
|
135
|
-
- Running `pi` (if installed separately) → uses `~/.pi/agent/` config, totally independent
|
|
136
|
-
- **seedclub never modifies pi's installation**
|
|
137
|
-
|
|
138
|
-
## Version pinning
|
|
139
|
-
|
|
140
|
-
seedclub pins versions in `package.json`:
|
|
141
|
-
|
|
142
|
-
```json
|
|
143
|
-
{
|
|
144
|
-
"version": "0.2.19",
|
|
145
|
-
"dependencies": {
|
|
146
|
-
"@mariozechner/pi-coding-agent": "0.65.2"
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
Users never interact with pi's npm package directly. When they run `seedclub update`, it runs `npm install -g @clubnet/seedclub@latest`.
|
|
152
|
-
|
|
153
|
-
## Theme
|
|
154
|
-
|
|
155
|
-
Themes live under `assets/theme/` and are installed to `~/.seedclub/agent/themes/` (currently `dark.json` and `light.json`).
|
|
156
|
-
|
|
157
|
-
It's a standard pi theme with 51 color tokens. Edit it to change any visual aspect of the app:
|
|
158
|
-
|
|
159
|
-
| Section | What it controls |
|
|
160
|
-
|---|---|
|
|
161
|
-
| **Core UI** | `accent`, `border`, `success`, `error`, `warning`, `muted`, `text` |
|
|
162
|
-
| **Backgrounds** | User messages, tool boxes (pending/success/error), selection highlight |
|
|
163
|
-
| **Markdown** | Headings, links, code blocks, quotes, list bullets |
|
|
164
|
-
| **Syntax** | Comments, keywords, functions, strings, numbers, types |
|
|
165
|
-
| **Thinking borders** | Editor border color per thinking level (off → xhigh) |
|
|
166
|
-
| **Diffs** | Added/removed/context lines in tool output |
|
|
167
|
-
|
|
168
|
-
The `vars` block at the top defines reusable colors (e.g. `brand: "#00C853"`) that are referenced throughout `colors`. To change the brand color, just update `vars.brand`.
|
|
169
|
-
|
|
170
|
-
Seed Club keeps product-level names in `vars` (`editorBg`, `messageBg`, `successBg`, `errorBg`) and maps pi's required tokens to those names (`selectedBg`, `userMessageBg`, `toolPendingBg`, etc.). The CLI probes the terminal background with OSC 11 and sets `COLORFGBG` before pi starts when no explicit theme is configured, so light/dark defaults track the actual terminal window instead of pi's fallback.
|
|
171
|
-
|
|
172
|
-
**Hot reload:** Edit the theme file while seedclub is running and it reloads instantly.
|
|
173
|
-
|
|
174
|
-
Colors can be hex (`"#00C853"`), 256-color palette index (`242`), a reference to a `vars` entry (`"brand"`), or empty string (`""`) for the terminal default.
|
|
175
|
-
|
|
176
|
-
## Development
|
|
177
|
-
|
|
178
|
-
### Setup
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
git clone https://github.com/seedclub/seedclub-agent.git
|
|
182
|
-
cd seedclub-agent
|
|
183
|
-
|
|
184
|
-
# Install deps, then install locally from the repo
|
|
185
|
-
npm install
|
|
186
|
-
npm install -g ./
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
For day-to-day work, run `seedclub version` after installing to confirm your shell is using this repo's wrapper build.
|
|
190
|
-
|
|
191
|
-
### Repo structure
|
|
192
|
-
|
|
193
|
-
```
|
|
194
|
-
seedclub/
|
|
195
|
-
├── package.json ← npm package definition (@clubnet/seedclub)
|
|
196
|
-
├── bin/cli.js ← Node.js CLI wrapper (the `seedclub` command)
|
|
197
|
-
├── postinstall.js ← runs after npm install (sets up ~/.seedclub/agent/)
|
|
198
|
-
├── install.sh ← curl | bash installer (just runs npm install -g)
|
|
199
|
-
├── README.md
|
|
200
|
-
└── assets/
|
|
201
|
-
├── theme/
|
|
202
|
-
│ ├── dark.json
|
|
203
|
-
│ └── light.json
|
|
204
|
-
└── extensions/
|
|
205
|
-
├── seedclub/ ← core extension source
|
|
206
|
-
└── seedclub-ui/ ← UI extension source
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
The `assets/` directory contains the canonical source for extensions and themes. The postinstall script copies these into `~/.seedclub/agent/`.
|
|
210
|
-
|
|
211
|
-
### Updating pi
|
|
212
|
-
|
|
213
|
-
When a new pi version comes out, upgrading it for Seed Club users means shipping a new `@clubnet/seedclub` package that depends on the newer pi release.
|
|
214
|
-
|
|
215
|
-
Recommended flow:
|
|
216
|
-
|
|
217
|
-
1. **Update and test locally:**
|
|
218
|
-
```bash
|
|
219
|
-
npm install @mariozechner/pi-coding-agent@NEW_VERSION
|
|
220
|
-
npm install -g ./
|
|
221
|
-
seedclub version
|
|
222
|
-
seedclub
|
|
223
|
-
```
|
|
224
|
-
|
|
225
|
-
Verify the wrapper still launches, the Seed Club UI loads, and the core flows you care about still work.
|
|
226
|
-
|
|
227
|
-
2. **Commit the dependency change and bump the package version:**
|
|
228
|
-
The pi version is carried by this package, so users only receive it once the Seed Club package version is bumped and released.
|
|
229
|
-
```json
|
|
230
|
-
{
|
|
231
|
-
"version": "0.3.0",
|
|
232
|
-
"dependencies": {
|
|
233
|
-
"@mariozechner/pi-coding-agent": "NEW_VERSION"
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
```
|
|
237
|
-
|
|
238
|
-
3. **Push the release:**
|
|
239
|
-
```bash
|
|
240
|
-
git add -A
|
|
241
|
-
git commit -m "bump pi to NEW_VERSION"
|
|
242
|
-
npm version patch|minor|major
|
|
243
|
-
git push --follow-tags
|
|
244
|
-
```
|
|
245
|
-
|
|
246
|
-
4. **Users pull the update:**
|
|
247
|
-
Users get the newer pi runtime when they run:
|
|
248
|
-
```bash
|
|
249
|
-
seedclub update
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
A fresh `npm install -g @clubnet/seedclub` also installs the new packaged pi version.
|
|
253
|
-
|
|
254
|
-
### Updating extensions
|
|
255
|
-
|
|
256
|
-
Extensions live in `assets/extensions/`. Edit them there, then:
|
|
257
|
-
|
|
258
|
-
```bash
|
|
259
|
-
# Test locally
|
|
260
|
-
npm install -g ./
|
|
261
|
-
seedclub # test
|
|
262
|
-
|
|
263
|
-
# When ready, bump package version and publish
|
|
264
|
-
git add -A
|
|
265
|
-
git commit -m "update extensions"
|
|
266
|
-
npm version patch|minor|major
|
|
267
|
-
git push --follow-tags
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
For reproducible extension dependency installs, commit `assets/extensions/seedclub/package-lock.json` and keep it in sync when changing extension deps.
|
|
271
|
-
|
|
272
|
-
### Release process
|
|
273
|
-
|
|
274
|
-
Publishing is now handled by npm trusted publishing from GitHub Actions.
|
|
275
|
-
|
|
276
|
-
Workflow:
|
|
277
|
-
|
|
278
|
-
1. Create a branch and make changes
|
|
279
|
-
2. Merge to `main`
|
|
280
|
-
3. Pull `main`, run `npm install`, then `npm install -g ./`
|
|
281
|
-
4. Smoke test with `seedclub version` and, if relevant, a quick interactive run
|
|
282
|
-
5. Bump version: `npm version patch|minor|major`
|
|
283
|
-
6. Push commits + tags: `git push --follow-tags`
|
|
284
|
-
7. GitHub Actions publishes the tagged release to npm automatically via `.github/workflows/publish.yml`
|
|
285
|
-
|
|
286
|
-
### Trusted publishing
|
|
287
|
-
|
|
288
|
-
The npm package is configured to publish from GitHub Actions, not from long-lived local npm tokens.
|
|
289
|
-
|
|
290
|
-
Trusted publisher settings for `@clubnet/seedclub`:
|
|
291
|
-
|
|
292
|
-
- Provider: GitHub Actions
|
|
293
|
-
- Organization or user: `seedclub`
|
|
294
|
-
- Repository: `seedclub-agent`
|
|
295
|
-
- Workflow filename: `publish.yml`
|
|
296
|
-
- Environment name: blank
|
|
297
|
-
|
|
298
|
-
Once trusted publishing is working, npm package publishing access should stay on the stricter setting that disallows token-based publishing.
|
|
299
|
-
|
|
300
68
|
## Update
|
|
301
69
|
|
|
302
70
|
```bash
|
package/package.json
CHANGED