@openthink/team 0.0.2 → 0.0.3
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 +35 -0
- package/dist/index.js +478 -42
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -78,6 +78,10 @@ oteam config stamp show # print current stamp config
|
|
|
78
78
|
oteam config models set <phase> <id> # pin a model per role-pipeline phase
|
|
79
79
|
oteam config models clear <phase> # remove a per-phase override
|
|
80
80
|
oteam config models show # print current per-phase overrides
|
|
81
|
+
oteam config telemetry set on|off # toggle per-phase telemetry recording
|
|
82
|
+
oteam config telemetry show # print telemetry on/off state
|
|
83
|
+
oteam telemetry summary [--days N] [--phase X] [--model Y]
|
|
84
|
+
oteam telemetry tail [-n 20] # last N telemetry lines (raw JSONL)
|
|
81
85
|
```
|
|
82
86
|
|
|
83
87
|
Most commands accept `--vault <name-or-path>` to operate on a specific vault.
|
|
@@ -190,6 +194,37 @@ oteam config models clear spike # falls back to the role-pipeline default
|
|
|
190
194
|
|
|
191
195
|
Each field is independent. Unset phases fall back to the role-pipeline default (currently `claude-opus-4-7`); validation is "non-empty string", and the SDK rejects unknown ids at spawn time. Re-running `oteam init` against a config that already has any per-phase model set leaves the entire `models` block alone — your customisation wins. A spike that auto-proceeds to implementation in the same session keeps the spike-phase model (one model per spawn).
|
|
192
196
|
|
|
197
|
+
## Telemetry
|
|
198
|
+
|
|
199
|
+
Every role-pipeline spawn records one JSON line capturing wall-clock + token usage to `~/.open-team/telemetry/runs.jsonl`. The intent is data-driven model tuning — the per-phase defaults above are educated guesses, and the only way to know whether Sonnet QA actually catches what Opus QA does is to measure both.
|
|
200
|
+
|
|
201
|
+
Each line looks like:
|
|
202
|
+
|
|
203
|
+
```json
|
|
204
|
+
{ "ticket": "AGT-108", "phase": "implementation", "model": "claude-sonnet-4-6",
|
|
205
|
+
"started-at": "2026-05-04T10:00:00.000Z", "ended-at": "2026-05-04T10:05:42.000Z",
|
|
206
|
+
"wall-clock-ms": 342000,
|
|
207
|
+
"tokens": { "input": 230, "output": 120, "cache-read": 18100, "cache-write": 50 },
|
|
208
|
+
"outcome": "done" }
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
`outcome` is one of `done` / `paused` / `failed` / `unknown`, classified from the STOP banner the role-pipeline body emits (`✅ DONE` / `⏸️ PAUSED` / `🛑 BLOCKED`). A non-zero `claude` exit pins the outcome to `failed` regardless of marker.
|
|
212
|
+
|
|
213
|
+
Inspect:
|
|
214
|
+
|
|
215
|
+
```sh
|
|
216
|
+
oteam telemetry tail # last 20 lines (raw JSONL)
|
|
217
|
+
oteam telemetry summary # aggregate by phase × model
|
|
218
|
+
oteam telemetry summary --days 7
|
|
219
|
+
oteam telemetry summary --phase implementation --model claude-sonnet-4-6
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Knobs:
|
|
223
|
+
|
|
224
|
+
- `OTEAM_TELEMETRY_DIR=<path>` overrides the default `~/.open-team/telemetry/` location.
|
|
225
|
+
- `oteam config telemetry set off` opts out — no JSONL writes occur. Re-enable with `oteam config telemetry set on`. Default is on.
|
|
226
|
+
- Telemetry is best-effort: a write failure (read-only dir, missing session file, malformed log) writes one line to stderr and does not fail the role-pipeline phase. Token fields the agent SDK doesn't expose are omitted from the line rather than recorded as zero.
|
|
227
|
+
|
|
193
228
|
## Config & multiple vaults
|
|
194
229
|
|
|
195
230
|
`open-team` supports any number of named vaults via `~/.open-team/config.json`. Register them with:
|