pi-cockpit 0.5.0 → 0.5.1
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 +22 -9
- package/package.json +70 -70
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
A list-mode **agent cockpit** for [Pi](https://pi.dev): a status stack pinned **above the editor** showing live teammates and the current todo plan, plus a Starship-style footer. Everything is drawn through Pi's public extension APIs only (`setWidget` / `setFooter`) — no core patches.
|
|
4
4
|
|
|
5
|
-
It is the third plugin of the `pi-maestro-flow` project (alongside `pi-maestro-flow` and `pi-maestro-teammate`). Since `pi-maestro-flow@0.6.1` it is an exact-pinned dependency of `pi-maestro-flow` — installed together and auto-registered into Pi's `settings.packages` on postinstall — but it also installs and runs standalone.
|
|
5
|
+
It is the third plugin of the `pi-maestro-flow` project (alongside `pi-maestro-flow` and `pi-maestro-teammate`). Since `pi-maestro-flow@0.6.1` it is an exact-pinned dependency of `pi-maestro-flow` — installed together and auto-registered into Pi's `settings.packages` on postinstall — but it also installs and runs standalone. Current version: **0.4.0**.
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
┌─ AGENTS · 2 running ─────────────────────────────┐ ← setWidget(aboveEditor)
|
|
@@ -20,7 +20,7 @@ It is the third plugin of the `pi-maestro-flow` project (alongside `pi-maestro-f
|
|
|
20
20
|
|
|
21
21
|
## Install
|
|
22
22
|
|
|
23
|
-
`pi-cockpit` comes automatically with the orchestration layer — installing `pi-maestro-flow
|
|
23
|
+
`pi-cockpit` comes automatically with the orchestration layer — installing `pi-maestro-flow` pulls `pi-cockpit` and registers it into `settings.packages` on postinstall, no manual setup required. To use it on its own:
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
26
|
pi install npm:pi-cockpit # standalone from npm
|
|
@@ -30,9 +30,11 @@ pi -e ./packages/pi-cockpit
|
|
|
30
30
|
|
|
31
31
|
## What it shows
|
|
32
32
|
|
|
33
|
-
- **AGENTS** — every running teammate as a table row (status spinner · role · id · label · live tail), sorted running-first. Collapses to a one-line `N agents running` summary in compact mode.
|
|
33
|
+
- **AGENTS** — every running teammate as a table row (status spinner · role · id · label · live tail), sorted running-first. Completed/failed agents show their total duration. Collapses to a one-line `N agents running` summary in compact mode.
|
|
34
34
|
- **TODO** — the active plan as numbered rows with four states (done ✓ / in-progress spinner / blocked ! / pending ·). Collapses to a segmented progress bar + current step + percent.
|
|
35
|
-
- **Footer** — `provider/model · context gauge · ↑in ↓out · $cost · elapsed · git branch`.
|
|
35
|
+
- **Footer** — `provider/model · context gauge · ↑in ↓out · $cost · elapsed · git branch`. `bash_bg` background-job state lives on a **dedicated second footer row** so it no longer competes with the primary line.
|
|
36
|
+
- **Thinking timer** — while the model is thinking, the folded thinking row shows a spinner and running elapsed time; when the run ends, it settles to the actual duration (e.g. `thoughts · 8.4s`).
|
|
37
|
+
- **Quiet mode** — compresses the seven built-in tool calls (read/bash/edit/write/grep/find/ls) into single-line ✓/✗/⋯ summaries and folds thinking blocks. Two glyph sets available: `check` (✓/✗/⋯) and `dot` (●/○/◌). Toggle with `/cockpit quiet`; turning off requires `/reload` to restore native tool renderers.
|
|
36
38
|
|
|
37
39
|
Toggle each block between list and compact with `/cockpit`.
|
|
38
40
|
|
|
@@ -55,18 +57,29 @@ This is the whole coupling story: cockpit has **no package dependency on `pi-mae
|
|
|
55
57
|
```json
|
|
56
58
|
{
|
|
57
59
|
"enabled": true,
|
|
60
|
+
"quietMode": false,
|
|
61
|
+
"quietSymbols": "check",
|
|
58
62
|
"agentsMode": "list",
|
|
59
63
|
"todoMode": "list",
|
|
60
|
-
"
|
|
64
|
+
"todoExpanded": false,
|
|
65
|
+
"hideNativeAgents": true,
|
|
66
|
+
"icons": { "mode": "auto" },
|
|
67
|
+
"theme": ""
|
|
61
68
|
}
|
|
62
69
|
```
|
|
63
70
|
|
|
71
|
+
- `quietMode`: when `true`, compresses built-in tool rendering and folds thinking blocks.
|
|
72
|
+
- `quietSymbols`: `"check"` (✓/✗/⋯) or `"dot"` (●/○/◌) lifecycle glyphs for quiet tool rows.
|
|
64
73
|
- `agentsMode` / `todoMode`: `"list"` or `"compact"`.
|
|
65
|
-
- `
|
|
74
|
+
- `todoExpanded`: when `true`, expands the todo widget by default.
|
|
75
|
+
- `hideNativeAgents`: when `true`, clears the teammate extension's own `teammate-agents` widget (it draws a similar list *below* the editor) so the two don't duplicate. On by default.
|
|
76
|
+
- `icons.mode`: `"auto"` (detect Nerd Font), `"nerd"`, or `"ascii"`.
|
|
77
|
+
- `theme`: named theme override; empty string follows the Pi session theme.
|
|
66
78
|
|
|
67
|
-
##
|
|
79
|
+
## Commands
|
|
68
80
|
|
|
69
|
-
`/cockpit` opens an overlay to toggle `enabled`, `agentsMode`, `todoMode`, and `hideNativeAgents
|
|
81
|
+
- `/cockpit` — opens an overlay to toggle `enabled`, `agentsMode`, `todoMode`, `quietMode`, and `hideNativeAgents`. `/cockpit quiet` toggles quiet mode directly; `/cockpit bg` shows background jobs.
|
|
82
|
+
- `/theme` — switch theme with live preview; `/theme <name>` applies directly. Pi ships no standalone theme command; cockpit provides one.
|
|
70
83
|
|
|
71
84
|
## Terminal feasibility — what this design deliberately does NOT do
|
|
72
85
|
|
|
@@ -87,7 +100,7 @@ node --test --experimental-transform-types tests/agents-store.test.ts tests/todo
|
|
|
87
100
|
../../node_modules/.bin/tsc -p tsconfig.json # type-check (uses the monorepo root's tsc + types)
|
|
88
101
|
```
|
|
89
102
|
|
|
90
|
-
The package lives inside the `pi-maestro-flow` monorepo under `packages/` so it resolves `@earendil-works/*` types from the root `node_modules`.
|
|
103
|
+
The package lives inside the `pi-maestro-flow` monorepo under `packages/` so it resolves `@earendil-works/*` types from the root `node_modules`. It is also an exact-pinned dependency of `pi-maestro-flow` and ships as its own npm package (`pi-cockpit`).
|
|
91
104
|
|
|
92
105
|
## License
|
|
93
106
|
|
package/package.json
CHANGED
|
@@ -1,70 +1,70 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "pi-cockpit",
|
|
3
|
-
"version": "0.5.
|
|
4
|
-
"description": "Agent cockpit for Pi: a list-mode status stack (live teammates + todo plan) pinned above the editor, plus a Starship-style footer. Renders only via public extension APIs (setWidget/setFooter).",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"keywords": [
|
|
7
|
-
"pi-package",
|
|
8
|
-
"pi",
|
|
9
|
-
"pi-extension",
|
|
10
|
-
"tui",
|
|
11
|
-
"teammate",
|
|
12
|
-
"todo"
|
|
13
|
-
],
|
|
14
|
-
"license": "MIT",
|
|
15
|
-
"files": [
|
|
16
|
-
"src/",
|
|
17
|
-
"themes/",
|
|
18
|
-
"README.md"
|
|
19
|
-
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"test": "node --test --experimental-transform-types tests/config.test.ts tests/quiet-tools.test.ts tests/agents-store.test.ts tests/bash-bg-store.test.ts tests/bash-bg-widget.test.ts tests/bash-bg-overlay.test.ts tests/todo-store.test.ts tests/render.test.ts tests/footer.test.ts tests/extension-status.test.ts tests/integration-contract.test.ts tests/stack-widget.test.ts tests/settings-view.test.ts tests/thinking-fold.test.ts tests/thinking-timer.test.ts tests/ambient.test.ts tests/viewport.test.ts tests/theme-picker.test.ts",
|
|
22
|
-
"typecheck": "tsc --noEmit"
|
|
23
|
-
},
|
|
24
|
-
"pi": {
|
|
25
|
-
"extensions": [
|
|
26
|
-
"./src/extension/index.ts"
|
|
27
|
-
],
|
|
28
|
-
"themes": [
|
|
29
|
-
"./themes"
|
|
30
|
-
]
|
|
31
|
-
},
|
|
32
|
-
"peerDependencies": {
|
|
33
|
-
"@earendil-works/pi-agent-core": "*",
|
|
34
|
-
"@earendil-works/pi-ai": "*",
|
|
35
|
-
"@earendil-works/pi-coding-agent": "*",
|
|
36
|
-
"@earendil-works/pi-tui": "*",
|
|
37
|
-
"pi-maestro-teammate": "^1.0.0"
|
|
38
|
-
},
|
|
39
|
-
"peerDependenciesMeta": {
|
|
40
|
-
"@earendil-works/pi-agent-core": {
|
|
41
|
-
"optional": true
|
|
42
|
-
},
|
|
43
|
-
"@earendil-works/pi-ai": {
|
|
44
|
-
"optional": true
|
|
45
|
-
},
|
|
46
|
-
"@earendil-works/pi-coding-agent": {
|
|
47
|
-
"optional": true
|
|
48
|
-
},
|
|
49
|
-
"@earendil-works/pi-tui": {
|
|
50
|
-
"optional": true
|
|
51
|
-
},
|
|
52
|
-
"pi-maestro-teammate": {
|
|
53
|
-
"optional": true
|
|
54
|
-
}
|
|
55
|
-
},
|
|
56
|
-
"devDependencies": {
|
|
57
|
-
"@earendil-works/pi-agent-core": "0.82.1",
|
|
58
|
-
"@earendil-works/pi-ai": "0.82.1",
|
|
59
|
-
"@earendil-works/pi-coding-agent": "0.82.1",
|
|
60
|
-
"@earendil-works/pi-tui": "0.82.1",
|
|
61
|
-
"@types/node": "^22.0.0",
|
|
62
|
-
"pi-maestro-teammate": "1.3.
|
|
63
|
-
"typescript": "^5.5.0"
|
|
64
|
-
},
|
|
65
|
-
"main": "./src/index.ts",
|
|
66
|
-
"exports": {
|
|
67
|
-
".": "./src/index.ts",
|
|
68
|
-
"./src/*": "./src/*"
|
|
69
|
-
}
|
|
70
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "pi-cockpit",
|
|
3
|
+
"version": "0.5.1",
|
|
4
|
+
"description": "Agent cockpit for Pi: a list-mode status stack (live teammates + todo plan) pinned above the editor, plus a Starship-style footer. Renders only via public extension APIs (setWidget/setFooter).",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"pi-package",
|
|
8
|
+
"pi",
|
|
9
|
+
"pi-extension",
|
|
10
|
+
"tui",
|
|
11
|
+
"teammate",
|
|
12
|
+
"todo"
|
|
13
|
+
],
|
|
14
|
+
"license": "MIT",
|
|
15
|
+
"files": [
|
|
16
|
+
"src/",
|
|
17
|
+
"themes/",
|
|
18
|
+
"README.md"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"test": "node --test --experimental-transform-types tests/config.test.ts tests/quiet-tools.test.ts tests/agents-store.test.ts tests/bash-bg-store.test.ts tests/bash-bg-widget.test.ts tests/bash-bg-overlay.test.ts tests/todo-store.test.ts tests/render.test.ts tests/footer.test.ts tests/extension-status.test.ts tests/integration-contract.test.ts tests/stack-widget.test.ts tests/settings-view.test.ts tests/thinking-fold.test.ts tests/thinking-timer.test.ts tests/ambient.test.ts tests/viewport.test.ts tests/theme-picker.test.ts",
|
|
22
|
+
"typecheck": "tsc --noEmit"
|
|
23
|
+
},
|
|
24
|
+
"pi": {
|
|
25
|
+
"extensions": [
|
|
26
|
+
"./src/extension/index.ts"
|
|
27
|
+
],
|
|
28
|
+
"themes": [
|
|
29
|
+
"./themes"
|
|
30
|
+
]
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"@earendil-works/pi-agent-core": "*",
|
|
34
|
+
"@earendil-works/pi-ai": "*",
|
|
35
|
+
"@earendil-works/pi-coding-agent": "*",
|
|
36
|
+
"@earendil-works/pi-tui": "*",
|
|
37
|
+
"pi-maestro-teammate": "^1.0.0"
|
|
38
|
+
},
|
|
39
|
+
"peerDependenciesMeta": {
|
|
40
|
+
"@earendil-works/pi-agent-core": {
|
|
41
|
+
"optional": true
|
|
42
|
+
},
|
|
43
|
+
"@earendil-works/pi-ai": {
|
|
44
|
+
"optional": true
|
|
45
|
+
},
|
|
46
|
+
"@earendil-works/pi-coding-agent": {
|
|
47
|
+
"optional": true
|
|
48
|
+
},
|
|
49
|
+
"@earendil-works/pi-tui": {
|
|
50
|
+
"optional": true
|
|
51
|
+
},
|
|
52
|
+
"pi-maestro-teammate": {
|
|
53
|
+
"optional": true
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"@earendil-works/pi-agent-core": "0.82.1",
|
|
58
|
+
"@earendil-works/pi-ai": "0.82.1",
|
|
59
|
+
"@earendil-works/pi-coding-agent": "0.82.1",
|
|
60
|
+
"@earendil-works/pi-tui": "0.82.1",
|
|
61
|
+
"@types/node": "^22.0.0",
|
|
62
|
+
"pi-maestro-teammate": "1.3.1",
|
|
63
|
+
"typescript": "^5.5.0"
|
|
64
|
+
},
|
|
65
|
+
"main": "./src/index.ts",
|
|
66
|
+
"exports": {
|
|
67
|
+
".": "./src/index.ts",
|
|
68
|
+
"./src/*": "./src/*"
|
|
69
|
+
}
|
|
70
|
+
}
|