@yuriteixeira/pi-muxr 0.2.0 → 0.2.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 +3 -0
- package/dist/cli/dashboard-component.js +11 -3
- package/dist/cli/dashboard-component.js.map +1 -1
- package/dist/cli/index.js +6 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/version.d.ts +1 -0
- package/dist/version.js +5 -0
- package/dist/version.js.map +1 -0
- package/package.json +1 -2
- package/docs/ARCHITECTURE.md +0 -291
- package/docs/BUILDING.md +0 -78
- package/docs/CONTRIBUTING.md +0 -32
- package/docs/resources/fullscreen.png +0 -0
- package/docs/resources/sidebar.png +0 -0
- package/docs/resources/web.png +0 -0
package/README.md
CHANGED
|
@@ -51,6 +51,9 @@ pi-muxr --quit-on-select
|
|
|
51
51
|
# Output Pi sessions to standard output
|
|
52
52
|
pi-muxr --list
|
|
53
53
|
|
|
54
|
+
# Print the installed version
|
|
55
|
+
pi-muxr --version
|
|
56
|
+
|
|
54
57
|
# Start the web app with a terminal emulator
|
|
55
58
|
# so you can continue your work from another device
|
|
56
59
|
pi-muxr --web
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Key, matchesKey, truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
|
|
2
|
+
import { VERSION } from "../version.js";
|
|
2
3
|
import { getStateVisual } from "./dashboard-icons.js";
|
|
3
4
|
import { chooseDashboardLayout, fitCell, getVisibleRowRange, padToWidth, toRowText } from "./dashboard-layout.js";
|
|
4
5
|
import { DEFAULT_DASHBOARD_THEME } from "./dashboard-theme.js";
|
|
@@ -140,7 +141,8 @@ function renderHeader(width, theme) {
|
|
|
140
141
|
return renderSectionTop("pi-muxr", width, theme, theme.bright);
|
|
141
142
|
}
|
|
142
143
|
function statusSectionFits(rows, mode, width, theme) {
|
|
143
|
-
const
|
|
144
|
+
const footerWidth = visibleWidth(renderFooterContent(theme)) + 2 + visibleWidth(`v${VERSION}`);
|
|
145
|
+
const contentWidth = Math.max(visibleWidth(renderStats(rows, mode, theme)), footerWidth);
|
|
144
146
|
return width >= contentWidth + 2;
|
|
145
147
|
}
|
|
146
148
|
function renderStatusSection(rows, mode, width, theme) {
|
|
@@ -148,7 +150,7 @@ function renderStatusSection(rows, mode, width, theme) {
|
|
|
148
150
|
renderSectionTop("status", width, theme),
|
|
149
151
|
frameLine(renderStats(rows, mode, theme), width, theme, theme.surface),
|
|
150
152
|
renderSeparator(width, theme),
|
|
151
|
-
frameLine(renderFooter(theme), width, theme, theme.surface),
|
|
153
|
+
frameLine(renderFooter(width, theme), width, theme, theme.surface),
|
|
152
154
|
renderBottom(width, theme),
|
|
153
155
|
];
|
|
154
156
|
}
|
|
@@ -159,7 +161,13 @@ function renderStats(rows, mode, theme) {
|
|
|
159
161
|
const layout = mode === "wide" ? "wide table" : mode === "medium" ? "compact table" : "small table";
|
|
160
162
|
return ` ${theme.warning("●")} ${unread} unread ${theme.accent("◆")} ${actionable} actionable ${theme.stale("")} ${stale} stale ${theme.muted(layout)}`;
|
|
161
163
|
}
|
|
162
|
-
function renderFooter(theme) {
|
|
164
|
+
function renderFooter(width, theme) {
|
|
165
|
+
const content = renderFooterContent(theme);
|
|
166
|
+
const version = theme.muted(`v${VERSION}`);
|
|
167
|
+
const gapWidth = Math.max(2, width - 2 - visibleWidth(content) - visibleWidth(version));
|
|
168
|
+
return `${content}${" ".repeat(gapWidth)}${version}`;
|
|
169
|
+
}
|
|
170
|
+
function renderFooterContent(theme) {
|
|
163
171
|
return ` ${theme.accent("↑/↓ j/k")} select ${theme.accent("↵")} focus/read ${theme.accent("d")} dismiss ${theme.accent("D")} dismiss read ${theme.accent("r")} refresh ${theme.accent("q")} quit`;
|
|
164
172
|
}
|
|
165
173
|
function renderMessageLines(message, width, theme) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard-component.js","sourceRoot":"","sources":["../../src/cli/dashboard-component.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dashboard-component.js","sourceRoot":"","sources":["../../src/cli/dashboard-component.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { renderRows } from "./format.js";
|
|
|
8
8
|
import { buildDashboardRows } from "./rows.js";
|
|
9
9
|
import { runWebServer } from "../web/server.js";
|
|
10
10
|
import { runDashboard } from "./dashboard.js";
|
|
11
|
+
import { VERSION } from "../version.js";
|
|
11
12
|
const HELP = `pi-muxr
|
|
12
13
|
|
|
13
14
|
Usage:
|
|
@@ -17,6 +18,7 @@ Usage:
|
|
|
17
18
|
pi-muxr --config Print resolved config
|
|
18
19
|
pi-muxr --web Serve browser terminal for a pi-muxr tmux session
|
|
19
20
|
pi-muxr --quit-on-select Exit after Enter focuses the selected row
|
|
21
|
+
pi-muxr --version Show the installed version
|
|
20
22
|
pi-muxr --help Show this help
|
|
21
23
|
|
|
22
24
|
Keys: ↑/↓ or j/k select, Enter focus/read, d dismiss, D dismiss all read, r refresh, q quit.
|
|
@@ -28,6 +30,10 @@ function main(argv) {
|
|
|
28
30
|
console.log(HELP);
|
|
29
31
|
return;
|
|
30
32
|
}
|
|
33
|
+
if (argv.includes("--version")) {
|
|
34
|
+
console.log(VERSION);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
31
37
|
try {
|
|
32
38
|
const sidebarCleanupWindowTarget = parseSidebarCleanupWindowTarget(argv);
|
|
33
39
|
if (sidebarCleanupWindowTarget) {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,+BAA+B,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC7K,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const VERSION: string;
|
package/dist/version.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAM5C,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAoB,CAAC;AAEtE,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC,OAAO,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yuriteixeira/pi-muxr",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "tmux dashboard for Pi coding sessions",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -35,7 +35,6 @@
|
|
|
35
35
|
},
|
|
36
36
|
"files": [
|
|
37
37
|
"dist",
|
|
38
|
-
"docs",
|
|
39
38
|
"examples",
|
|
40
39
|
"LICENSE",
|
|
41
40
|
"README.md"
|
package/docs/ARCHITECTURE.md
DELETED
|
@@ -1,291 +0,0 @@
|
|
|
1
|
-
# `pi-muxr` architecture
|
|
2
|
-
|
|
3
|
-
## Purpose
|
|
4
|
-
|
|
5
|
-
`pi-muxr` gives one view of Pi sessions that run in tmux. It answers three questions:
|
|
6
|
-
|
|
7
|
-
1. Which sessions are active?
|
|
8
|
-
2. Which sessions need attention?
|
|
9
|
-
3. Which tmux pane owns each session?
|
|
10
|
-
|
|
11
|
-
The project does not read terminal output. A Pi extension receives Pi events and publishes structured state. The terminal and browser interfaces read that shared state.
|
|
12
|
-
|
|
13
|
-
## System overview
|
|
14
|
-
|
|
15
|
-
```text
|
|
16
|
-
Pi session
|
|
17
|
-
|
|
|
18
|
-
| Pi extension events
|
|
19
|
-
+--> terminal bell in the Pi pane
|
|
20
|
-
v
|
|
21
|
-
SQLite database: ~/.pi-muxr/pi-muxr.sqlite
|
|
22
|
-
|
|
|
23
|
-
+--> CLI dashboard
|
|
24
|
-
| |
|
|
25
|
-
| +--> terminal input and display
|
|
26
|
-
| +--> tmux pane focus
|
|
27
|
-
|
|
|
28
|
-
+--> Web terminal gateway
|
|
29
|
-
| |
|
|
30
|
-
| +--> browser xterm terminal
|
|
31
|
-
| +--> tmux session through node-pty
|
|
32
|
-
| +--> browser notifications
|
|
33
|
-
|
|
|
34
|
-
+--> Desktop notifications
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
SQLite is the shared boundary between the Pi extension and the user interfaces. It allows the extension and one or more dashboard processes to read and update state without a separate service. Ordered migrations use SQLite `user_version` to update existing databases inside a transaction.
|
|
38
|
-
|
|
39
|
-
## Source layout
|
|
40
|
-
|
|
41
|
-
```text
|
|
42
|
-
src/
|
|
43
|
-
├── domain/ State types and rules that do not depend on I/O
|
|
44
|
-
├── extension/ Pi event integration and session state publishing
|
|
45
|
-
├── state/ SQLite schema and state reads and writes
|
|
46
|
-
├── tmux/ Pane discovery and pane focus
|
|
47
|
-
├── cli/ Terminal entry point and dashboard rendering
|
|
48
|
-
├── web/ HTTP server, browser assets, and terminal gateway
|
|
49
|
-
├── config/ Configuration and path resolution
|
|
50
|
-
└── notifications/ Desktop notification integration
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
The domain layer is kept independent from the terminal, web, tmux, and database layers. This makes state rules easier to test and keeps the user interfaces as clients of the same data model.
|
|
54
|
-
|
|
55
|
-
## State model
|
|
56
|
-
|
|
57
|
-
Each Pi process owns one row in the `sessions` table.
|
|
58
|
-
|
|
59
|
-
Important fields include:
|
|
60
|
-
|
|
61
|
-
- `id`: Stable identifier for the Pi session and tmux pane.
|
|
62
|
-
- `pane_id`: tmux pane identifier such as `%12`.
|
|
63
|
-
- `tmux_session`, `tmux_window`, and `tmux_window_index`: Pane location.
|
|
64
|
-
- `pid`: Pi process ID.
|
|
65
|
-
- `cwd`: Project directory.
|
|
66
|
-
- `pi_session_file`: Pi session file when available.
|
|
67
|
-
- `model`: Selected model.
|
|
68
|
-
- `state`: Current Pi state.
|
|
69
|
-
- `severity`: `low`, `medium`, or `high`.
|
|
70
|
-
- `summary`: Short description of the latest event.
|
|
71
|
-
- `last_prompt`: Latest user prompt, normalized for display.
|
|
72
|
-
- `last_event_at`: Time of the latest meaningful event.
|
|
73
|
-
- `heartbeat_at`: Time of the latest process heartbeat.
|
|
74
|
-
- Read, dismissal, and notification markers.
|
|
75
|
-
|
|
76
|
-
The database also contains `dashboard_presence`. Dashboard processes update this table so the extension can avoid sending desktop notifications when a dashboard is already open.
|
|
77
|
-
|
|
78
|
-
## Session states
|
|
79
|
-
|
|
80
|
-
The domain supports these states:
|
|
81
|
-
|
|
82
|
-
| State | Meaning |
|
|
83
|
-
| --- | --- |
|
|
84
|
-
| `ASK` | Pi is waiting for user input through `ask_user`. |
|
|
85
|
-
| `ERROR` | A turn or tool ended with an error. |
|
|
86
|
-
| `DONE` | A turn completed. |
|
|
87
|
-
| `QUEUED` | Work is waiting to start. |
|
|
88
|
-
| `RUN` | Pi is processing a turn or tool. |
|
|
89
|
-
| `IDLE` | The session is alive but not active. |
|
|
90
|
-
| `STALE` | Internal display classification for an expired heartbeat or a missing tmux pane. |
|
|
91
|
-
|
|
92
|
-
By default, `ASK`, `ERROR`, and `DONE` are actionable. The configuration can change the actionable states used by the dashboard, terminal bell, dismissal actions, and browser notifications. Desktop notifications always use the default actionable states.
|
|
93
|
-
|
|
94
|
-
An event is unread when its `last_event_at` is newer than `read_until_event_at` and it has not been dismissed. Unread and actionable are separate properties. The dashboard can therefore show an unread marker for a state that is not actionable. An event is dismissed when `dismissed_until_event_at` is at least as recent as `last_event_at`. This means a new event becomes visible again after an older event was read or dismissed.
|
|
95
|
-
|
|
96
|
-
## Pi extension flow
|
|
97
|
-
|
|
98
|
-
The extension is loaded by Pi and listens to Pi lifecycle events.
|
|
99
|
-
|
|
100
|
-
```text
|
|
101
|
-
session_start
|
|
102
|
-
-> open database
|
|
103
|
-
-> create session ID
|
|
104
|
-
-> publish IDLE state
|
|
105
|
-
-> start heartbeat timer
|
|
106
|
-
|
|
107
|
-
input
|
|
108
|
-
-> store the submitted user prompt directly in the current session row
|
|
109
|
-
|
|
110
|
-
agent_start / turn_start
|
|
111
|
-
-> publish RUN state
|
|
112
|
-
|
|
113
|
-
tool_call
|
|
114
|
-
-> publish ASK for ask_user
|
|
115
|
-
-> publish RUN for other tools
|
|
116
|
-
|
|
117
|
-
tool_result
|
|
118
|
-
-> retain error information
|
|
119
|
-
-> publish tool summary when needed
|
|
120
|
-
|
|
121
|
-
agent_end
|
|
122
|
-
-> publish ERROR when the turn failed
|
|
123
|
-
-> otherwise publish DONE
|
|
124
|
-
|
|
125
|
-
session_shutdown
|
|
126
|
-
-> stop heartbeat
|
|
127
|
-
-> remove session row
|
|
128
|
-
-> close database
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
The extension also refreshes tmux information when it writes a state update. It uses `TMUX_PANE` and tmux pane discovery to associate a Pi process with its owning pane. When the process enters a configured actionable state, the extension emits one terminal bell. Because the bell comes from the Pi process, tmux assigns the alert to the window that owns the Pi pane.
|
|
132
|
-
|
|
133
|
-
Summaries are truncated before storage. User prompts are normalized to one line and limited to 120 characters, which provides enough text for the dashboard while limiting retained prompt data. This keeps the database small and limits the amount of prompt data retained.
|
|
134
|
-
|
|
135
|
-
## Heartbeats and stale sessions
|
|
136
|
-
|
|
137
|
-
The extension updates `heartbeat_at` on a timer. The dashboard does not trust clean shutdown alone because a process can be killed or a pane can disappear.
|
|
138
|
-
|
|
139
|
-
When dashboard rows are built:
|
|
140
|
-
|
|
141
|
-
- A session is stale when its heartbeat is older than `staleAfterMs`.
|
|
142
|
-
- A session is also stale when its recorded pane is missing.
|
|
143
|
-
- Stale rows are classified as `STALE`, marked as not actionable, and removed from the displayed rows.
|
|
144
|
-
|
|
145
|
-
This check is performed when rows are read. The database does not need a cleanup process for abandoned rows, but abandoned rows remain stored and are hidden from the interfaces.
|
|
146
|
-
|
|
147
|
-
## CLI dashboard flow
|
|
148
|
-
|
|
149
|
-
The CLI has four modes:
|
|
150
|
-
|
|
151
|
-
- Interactive dashboard: `pi-muxr`
|
|
152
|
-
- Tmux sidebar toggle: `pi-muxr --sidebar [left|right]`
|
|
153
|
-
- Plain output: `pi-muxr --list`
|
|
154
|
-
- Browser server: `pi-muxr --web`
|
|
155
|
-
|
|
156
|
-
The interactive dashboard follows this flow:
|
|
157
|
-
|
|
158
|
-
```text
|
|
159
|
-
load configuration
|
|
160
|
-
-> open SQLite database
|
|
161
|
-
-> record dashboard presence
|
|
162
|
-
-> read session rows
|
|
163
|
-
-> list tmux panes
|
|
164
|
-
-> join sessions with panes
|
|
165
|
-
-> mark and remove stale rows
|
|
166
|
-
-> sort active rows
|
|
167
|
-
-> render dashboard
|
|
168
|
-
```
|
|
169
|
-
|
|
170
|
-
The dashboard refreshes once per second and keeps the selected row. The Pi extension emits terminal bells, so the dashboard does not assign alerts to its own window.
|
|
171
|
-
|
|
172
|
-
User actions update SQLite before they affect the display:
|
|
173
|
-
|
|
174
|
-
- `Enter` marks the event as read and focuses its pane.
|
|
175
|
-
- `d` dismisses the selected event.
|
|
176
|
-
- `D` dismisses all read actionable events.
|
|
177
|
-
- `r` refreshes the rows.
|
|
178
|
-
- `q`, `Esc`, or `Ctrl+C` cleans up presence and exits.
|
|
179
|
-
|
|
180
|
-
The rendering layer uses `@earendil-works/pi-tui`. Dashboard orchestration, state updates, tmux commands, and rendering are separate responsibilities.
|
|
181
|
-
|
|
182
|
-
## Tmux integration
|
|
183
|
-
|
|
184
|
-
The extension uses `tmux list-panes` to discover pane metadata. The dashboard joins this data with the session rows by pane ID.
|
|
185
|
-
|
|
186
|
-
When the user focuses a row, `src/tmux/focus.ts` selects the pane and switches to its tmux session and window. When the CLI runs outside tmux, it reports the commands needed to focus the pane instead of pretending that the focus succeeded.
|
|
187
|
-
|
|
188
|
-
The sidebar command splits every window in every tmux session and starts the same `pi-muxr` entrypoint in each new pane. The default side is right, and each pane uses at most 25 percent of the window width. A tmux pane option marks each pane. A global tmux option stores the selected side. Indexed `after-new-session` and `after-new-window` hooks add the sidebar to new sessions and windows without replacing other hooks. An indexed `window-layout-changed` hook closes a sidebar when it is the only pane left in its window. The next sidebar command finds the markers, closes all dashboard sidebar panes, and removes the option and hooks.
|
|
189
|
-
|
|
190
|
-
The browser gateway uses a separate tmux session, named `pi-muxr-web` by default. A query parameter can select another valid session name.
|
|
191
|
-
|
|
192
|
-
## Browser interface
|
|
193
|
-
|
|
194
|
-
The web interface is a local HTTP server with a WebSocket terminal gateway.
|
|
195
|
-
|
|
196
|
-
```text
|
|
197
|
-
Browser
|
|
198
|
-
| HTTP
|
|
199
|
-
v
|
|
200
|
-
Web server
|
|
201
|
-
| serves page, assets, and terminal theme
|
|
202
|
-
|
|
|
203
|
-
| WebSocket
|
|
204
|
-
v
|
|
205
|
-
Terminal gateway
|
|
206
|
-
| node-pty
|
|
207
|
-
v
|
|
208
|
-
tmux attach-session
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
When a browser connects, the gateway:
|
|
212
|
-
|
|
213
|
-
1. Validates the requested tmux session name.
|
|
214
|
-
2. Creates the session when it does not exist.
|
|
215
|
-
3. Temporarily hides the tmux status line.
|
|
216
|
-
4. Starts `tmux attach-session` through `node-pty`.
|
|
217
|
-
5. Forwards terminal output to the browser.
|
|
218
|
-
6. Forwards keyboard input and valid resize messages to the terminal.
|
|
219
|
-
7. Polls SQLite for unread actionable events and sends browser notification messages.
|
|
220
|
-
8. Restores tmux status and closes resources when the connection ends.
|
|
221
|
-
|
|
222
|
-
The web interface is a terminal view, not a second dashboard implementation. It attaches to the tmux session that runs the normal CLI dashboard.
|
|
223
|
-
|
|
224
|
-
## Notifications
|
|
225
|
-
|
|
226
|
-
The terminal bell and browser notifications use the configured actionable states. Desktop notifications use the fixed default states: `ASK`, `ERROR`, and `DONE`.
|
|
227
|
-
|
|
228
|
-
Desktop notification flow:
|
|
229
|
-
|
|
230
|
-
```text
|
|
231
|
-
extension state update
|
|
232
|
-
-> check default desktop notification state
|
|
233
|
-
-> check previous notification marker
|
|
234
|
-
-> check dashboard presence
|
|
235
|
-
-> send desktop notification
|
|
236
|
-
-> store last_notified_event_at
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
The extension avoids repeated desktop notifications for the same state. When configured, a fresh dashboard presence suppresses desktop notifications because the user can already see the event.
|
|
240
|
-
|
|
241
|
-
The Pi extension emits the terminal bell when a session enters a new actionable state. It compares the new state with the stored state to avoid a repeated bell. The browser gateway polls notification state and sends browser messages for new unread actionable rows.
|
|
242
|
-
|
|
243
|
-
## Configuration boundary
|
|
244
|
-
|
|
245
|
-
Configuration is loaded from `~/.pi-muxr/config.json`. If the file does not exist, built in defaults are used.
|
|
246
|
-
|
|
247
|
-
Configuration controls:
|
|
248
|
-
|
|
249
|
-
- Database and state paths.
|
|
250
|
-
- Actionable states for the dashboard, terminal bell, dismissal actions, and browser notifications.
|
|
251
|
-
- Desktop notification behavior for the fixed `ASK`, `ERROR`, and `DONE` states.
|
|
252
|
-
- Terminal bell behavior.
|
|
253
|
-
- Whether dismissed rows are shown.
|
|
254
|
-
- Stale and heartbeat timing.
|
|
255
|
-
- Dashboard presence timing.
|
|
256
|
-
|
|
257
|
-
The CLI, extension, and web gateway all load the same configuration. They share state and timing rules, while desktop notifications retain their fixed default state list.
|
|
258
|
-
|
|
259
|
-
## Design decisions
|
|
260
|
-
|
|
261
|
-
### Structured events instead of screen scraping
|
|
262
|
-
|
|
263
|
-
Pi events provide clear meaning and stable summaries. Screen scraping would depend on terminal formatting and would not reliably identify questions, errors, or completed turns.
|
|
264
|
-
|
|
265
|
-
### SQLite instead of per process files
|
|
266
|
-
|
|
267
|
-
SQLite supports concurrent reads and writes, preserves read and dismissal markers, and keeps the state model in one place.
|
|
268
|
-
|
|
269
|
-
### tmux as the focus layer
|
|
270
|
-
|
|
271
|
-
Pi sessions already run in tmux. Storing the pane ID allows the dashboard to move from an event directly to the owning session without controlling Pi itself.
|
|
272
|
-
|
|
273
|
-
### Shared domain rules
|
|
274
|
-
|
|
275
|
-
Actionable, unread, dismissed, and stale behavior is defined in the domain and used by every interface. This prevents the terminal and browser paths from making different decisions about the same event.
|
|
276
|
-
|
|
277
|
-
### Best effort cleanup with display time checks
|
|
278
|
-
|
|
279
|
-
Clean shutdown removes rows, but stale detection remains necessary for crashes, closed panes, and killed processes.
|
|
280
|
-
|
|
281
|
-
## Extension points
|
|
282
|
-
|
|
283
|
-
The design leaves room for future changes without changing the main data flow:
|
|
284
|
-
|
|
285
|
-
- Add new Pi event mappings in the extension.
|
|
286
|
-
- Add new states to the domain model and configuration.
|
|
287
|
-
- Add another client that reads the SQLite state.
|
|
288
|
-
- Add notification providers beside desktop and browser notifications.
|
|
289
|
-
- Add more tmux actions without changing session publishing.
|
|
290
|
-
|
|
291
|
-
A new interface should read the domain state and reuse the existing row rules. It should not create a second session protocol.
|
package/docs/BUILDING.md
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Building `pi-muxr`
|
|
2
|
-
|
|
3
|
-
This guide explains how to build and run a local copy of `pi-muxr`.
|
|
4
|
-
|
|
5
|
-
## Requirements
|
|
6
|
-
|
|
7
|
-
- Node.js 24 or later
|
|
8
|
-
- pnpm
|
|
9
|
-
- tmux for running the dashboard
|
|
10
|
-
- Pi for testing the extension
|
|
11
|
-
|
|
12
|
-
The CLI uses the built in `node:sqlite` module.
|
|
13
|
-
|
|
14
|
-
## Install and build
|
|
15
|
-
|
|
16
|
-
```bash
|
|
17
|
-
pnpm install
|
|
18
|
-
pnpm build
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
The build output is written to `dist`.
|
|
22
|
-
|
|
23
|
-
For an automatic rebuild during development, run:
|
|
24
|
-
|
|
25
|
-
```bash
|
|
26
|
-
pnpm start
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
## Check the code
|
|
30
|
-
|
|
31
|
-
```bash
|
|
32
|
-
pnpm typecheck
|
|
33
|
-
pnpm test
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Link the CLI
|
|
37
|
-
|
|
38
|
-
To run the local CLI from any directory:
|
|
39
|
-
|
|
40
|
-
```bash
|
|
41
|
-
pnpm link --global
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
The command points to `dist/cli/index.js`. Rebuild after source changes, or keep `pnpm start` running.
|
|
45
|
-
|
|
46
|
-
## Load the Pi extension
|
|
47
|
-
|
|
48
|
-
Build the package, then link the complete extension directory:
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
pnpm build
|
|
52
|
-
mkdir -p ~/.pi/agent/extensions
|
|
53
|
-
rm -f ~/.pi/agent/extensions/pi-muxr.js ~/.pi/agent/extensions/pi-muxr
|
|
54
|
-
ln -sfn "$PWD/dist/extension" ~/.pi/agent/extensions/pi-muxr
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
The directory link is required because the built extension imports sibling modules from `dist`.
|
|
58
|
-
|
|
59
|
-
If Pi is already running, use `/reload` after creating or changing the link.
|
|
60
|
-
|
|
61
|
-
The extension stores state in:
|
|
62
|
-
|
|
63
|
-
```text
|
|
64
|
-
~/.pi-muxr/pi-muxr.sqlite
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
It removes its row during a clean shutdown. Wrappers around Pi are supported when they load the extension.
|
|
68
|
-
|
|
69
|
-
## Run the CLI
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
pi-muxr --help
|
|
73
|
-
pi-muxr --list
|
|
74
|
-
pi-muxr
|
|
75
|
-
pi-muxr --web
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
See the main [README](../README.md) for user configuration, key bindings, and usage details.
|
package/docs/CONTRIBUTING.md
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Contributing to `pi-muxr`
|
|
2
|
-
|
|
3
|
-
## Development workflow
|
|
4
|
-
|
|
5
|
-
1. Create a branch for your change.
|
|
6
|
-
2. Install dependencies with `pnpm install`.
|
|
7
|
-
3. Make a focused change.
|
|
8
|
-
4. Run `pnpm typecheck`.
|
|
9
|
-
5. Run `pnpm test`.
|
|
10
|
-
6. Run `pnpm build` when the change affects the build or package output.
|
|
11
|
-
7. Update the documentation when behavior or setup changes.
|
|
12
|
-
|
|
13
|
-
See [BUILDING.md](BUILDING.md) for local setup and Pi extension loading.
|
|
14
|
-
|
|
15
|
-
## Code changes
|
|
16
|
-
|
|
17
|
-
- Keep domain logic separate from terminal, web, tmux, and storage code.
|
|
18
|
-
- Preserve the SQLite state format unless a schema change is required.
|
|
19
|
-
- Keep session summaries short and safe to store.
|
|
20
|
-
- Add or update tests for domain behavior.
|
|
21
|
-
- Keep keyboard behavior consistent between the terminal and web interfaces where possible.
|
|
22
|
-
|
|
23
|
-
## Pull requests
|
|
24
|
-
|
|
25
|
-
Describe:
|
|
26
|
-
|
|
27
|
-
- What changed.
|
|
28
|
-
- Why it changed.
|
|
29
|
-
- How you tested it.
|
|
30
|
-
- Any tmux, Pi, terminal, or browser behavior that reviewers should check.
|
|
31
|
-
|
|
32
|
-
Keep unrelated changes out of the same pull request.
|
|
Binary file
|
|
Binary file
|
package/docs/resources/web.png
DELETED
|
Binary file
|