pum-agent 0.2.14-beta.1 → 0.2.16-beta.2

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 CHANGED
@@ -114,6 +114,9 @@ The package is named `pum-agent` because the bare `pum` name is already owned. T
114
114
  ```text
115
115
  pum [options]
116
116
  pum login [options]
117
+ pum s [login] [options] [directory[:ro|:rw] ...]
118
+ pum sr [login] [options] [directory[:ro|:rw] ...]
119
+ pum ss
117
120
  ```
118
121
 
119
122
  | Option or command | Action |
@@ -122,35 +125,53 @@ pum login [options]
122
125
  | `-v`, `--version` | Print the exact `pum-agent` package version and exit |
123
126
  | `-r`, `--resume` | Resume the latest session for the current directory |
124
127
  | `login` | Start PUM with the provider login panel open |
128
+ | `s` | Start PUM in a writable outer `claudebox` sandbox |
129
+ | `sr` | Start PUM with the current directory read-only |
130
+ | `ss` | Check the `claudebox` runtime and protocol version |
125
131
 
126
- Help and version handling do not initialize the TUI, configuration, credentials, or sessions. Unknown options and commands return an error and a help hint.
132
+ Plain extra directories use the command default. Add `:ro` or `:rw` to select explicit access. `pum sr` always keeps the launch directory read-only, but it permits an explicit writable extra directory. A custom `PUM_DIR` must remain outside the project for `pum sr`.
127
133
 
128
- Set `PUM_DIR` to override PUM's complete configuration and data directory. Run `pum --help` for a concise directory summary. Enter `?` on an empty in-app prompt to see all controls.
134
+ Help, version, and sandbox setup checks do not initialize the TUI, credentials, or sessions. Unknown options and commands return an error and a help hint.
135
+
136
+ Set `PUM_DIR` to override PUM's complete configuration and data directory. Set `PUM_CLAUDEBOX` to select a specific `claudebox` executable. Run `pum --help` for a concise directory summary. Enter `?` on an empty in-app prompt to see all controls.
137
+
138
+ ### Outer sandbox MVP
139
+
140
+ `pum s` and `pum sr` currently require Linux. On Windows, install PUM and `claudebox` inside WSL 2 and run the commands there.
141
+
142
+ PUM requires `claudebox` launcher protocol 1. Run `pum ss` to verify the executable and protocol. The runtime also needs `runsc`, `pasta`, `iptables`, `ip6tables`, `ip`, `nsenter`, and `unshare`.
143
+
144
+ The launcher hides the normal home mount. It mounts the project, explicit extra directories, the required PUM runtime files, and the PUM configuration directory. The sandboxed child uses the saved Check mode setting and disables nested Bubblewrap.
145
+
146
+ This MVP mounts the PUM configuration directory, including provider credentials, inside gVisor. When Check mode is on, it blocks credential access through supported tools, but it is not a second OS boundary. A host-side credential broker is planned for stronger separation.
129
147
 
130
148
  ## Essential controls
131
149
 
132
150
  | Key | Action |
133
151
  |---|---|
134
- | `Enter` | Send a prompt, or steer the selected working agent |
152
+ | `Enter` | Send or steer; while input mode is on, insert a new line |
153
+ | `Alt+I` | Toggle multiline input mode; the prompt gutter changes to `i` while active |
135
154
  | `↑` on an empty prompt | Recall the newest queued user message for the selected agent |
136
155
  | `Ctrl+Enter` / `Shift+Enter` | Insert a new line |
137
- | `Alt+Enter` | Stash the prompt without sending |
138
- | `Tab` | Open the prompt stash on an empty input |
139
- | `Shift+↑` / `Shift+↓` | Select a range of stashed tasks |
156
+ | `Alt+Enter` / `Ctrl+Alt+Enter` | Cache without sending; the Ctrl alias works around terminals that reserve Alt+Enter |
157
+ | `Tab` | Open the prompt cache on an empty input |
158
+ | `Shift+↑` / `Shift+↓` | Select a range of cached tasks |
140
159
  | `Alt+V` | Attach an image from the graphical clipboard |
141
160
  | `Ctrl+L` | Open the agent transcript selector |
142
161
  | `Shift+Tab` / `Ctrl+Shift+Tab` | Cycle through agent transcripts |
143
- | `Ctrl+H` | Open session history when the terminal reports the key distinctly |
162
+ | `Ctrl+H` | Open session history when reported distinctly; use `/history` otherwise |
144
163
  | `Ctrl+N` | Open recent answers (News) |
145
- | `n` / `p` in News | Jump to the answer / user prompt |
164
+ | `n` / `p` in News | Jump to the answer / source |
146
165
  | `Ctrl+End` | Scroll to the end of the selected transcript |
147
166
  | `Ctrl+P` | Open settings |
148
- | `Ctrl+T` | Open supervised external triggers |
167
+ | `Ctrl+T` | Open Processes for supervised triggers and shells |
149
168
  | `Esc` twice | Cancel the selected working agent |
150
- | `Ctrl+C` | Clear the selected non-empty draft; on an empty draft, press twice to quit |
169
+ | `Ctrl+C` | Close the active popup, or clear a non-empty draft; on an empty prompt, press twice to quit |
151
170
  | `?` | Show all controls when the prompt is empty |
152
171
 
153
- Useful commands include `/login`, `/history`, `/news`, `/triggers`, `/check-path`, `/clear`, `/compress`, and `/worktree`.
172
+ Sent-prompt history with `↑` / `↓` is available in the main transcript. Wrapped or multiline drafts keep those keys for cursor movement. Subagent views still support empty-prompt queued-message recall.
173
+
174
+ Useful commands include `/login`, `/history`, `/news`, `/processes`, `/triggers`, `/check-path`, `/clear`, `/compress`, and `/worktree`. `/triggers` opens Processes directly on the Triggers tab.
154
175
 
155
176
  For automated benchmarks, add `--statsFile <path>` to a headless `-p` run. PUM writes a versioned JSON artifact with run metadata and all `/stats` data. PUM creates missing parent directories. PUM rejects an existing file before startup unless `--override` is present. The alias `--stats-file` is also accepted.
156
177
 
@@ -182,7 +203,7 @@ Open the News popup with `Ctrl+N` or `/news`. It lists the final answers of user
182
203
 
183
204
  - `←` / `→` — move between answers
184
205
  - `n` — jump to the answer
185
- - `p` — jump to the user prompt
206
+ - `p` — jump to the source prompt or completion notice
186
207
  - `Space` — toggle an answer between read and unread
187
208
  - `c` — copy the current answer to the clipboard
188
209
  - `Enter` — reply to the current answer with a quoted draft
@@ -199,7 +220,7 @@ PUM runs up to 10 active subagents by default. Configure a limit from 1 through
199
220
  - Its own transcript, draft, usage data, and cancellation state
200
221
  - Tools for progress messages and a single final completion report
201
222
 
202
- Select a range of stashed prompts and press `Enter`. The main agent can group related work and run independent groups in parallel. A managed merge requires both authoritative `completed` status and a persisted completion notice. Idle settlement is not completion. Successful managed merges remove the completed worktree and branch. A parent cannot finish, merge, or be removed until every retained descendant closes deepest-first.
223
+ Select a range of cached prompts and press `Enter`. The main agent can group related work and run independent groups in parallel. A managed merge requires both authoritative `completed` status and a persisted completion notice. Idle settlement is not completion. Successful managed merges remove the completed worktree and branch. A parent cannot finish, merge, or be removed until every retained descendant closes deepest-first.
203
224
 
204
225
  Use `Ctrl+L` to select an agent transcript. Input then goes to that agent. Finished or interrupted agents remain available until PUM merges or removes them.
205
226
 
@@ -215,7 +236,7 @@ Idle notices report settled work cycles to the direct spawner. They are not comp
215
236
 
216
237
  ### Interactive questionnaires
217
238
 
218
- The `questionnaire` tool asks one or more questions inside PUM's OpenTUI interface. Each question provides selectable options and a custom-answer field. Use arrow keys or `Tab` to move, `Enter` to select, and `Esc` to cancel.
239
+ The `questionnaire` tool asks one or more questions inside PUM's OpenTUI interface. Each question provides selectable options and a custom-answer field. Use arrow keys or `Tab` to move and `Enter` to select. `Esc` cancels from the option view; while editing a custom answer, it returns to the options.
219
240
 
220
241
  PUM returns structured answers to the requesting main agent or managed child agent. Custom text stays outside React labels and session data until the user explicitly submits the answer.
221
242
 
@@ -231,7 +252,7 @@ The `message_cache_send` tool accepts stable entry IDs. Single entries use the s
231
252
 
232
253
  The trigger tools create process-local supervised commands with an executable and argument array. Trigger definitions can be listed, inspected, paused, resumed, cancelled, or run manually. Definitions disappear when PUM exits.
233
254
 
234
- Use `Ctrl+T` or `/triggers` to inspect active definitions. PUM limits definitions, pending deliveries, output size, run counts, repeat frequency, and lifetime. Output goes to a private temporary file and is removed after the triggered turn settles.
255
+ Use `Ctrl+T` or `/processes` to open the combined Processes view. `/triggers` is an alias that opens its Triggers tab. PUM limits definitions, pending deliveries, output size, run counts, repeat frequency, and lifetime. Output goes to a private temporary file and is removed after the triggered turn settles.
235
256
 
236
257
  Trigger events target one exact main or retained child session. A missing session or child cancels its definitions instead of redirecting them. Check mode evaluates each process proposal without flattening its argument boundaries into shell text.
237
258
 
@@ -295,6 +316,8 @@ Verifier prompts stay bounded. For an oversized On-mode review, PUM sends comple
295
316
 
296
317
  Web search is on by default for supported OpenAI Codex providers. Searches appear as transcript tool rows and persist in resumed sessions. Other providers continue without the hosted search tool. Disable web search in `Ctrl+P`.
297
318
 
319
+ Detailed explanations show text results for every tool call, including `read`. The **Tool output lines** setting limits each result to five source lines by default. PUM shows this setting only while explanations are detailed.
320
+
298
321
  ### Themes and Markdown
299
322
 
300
323
  PUM includes `tokyonight`, `gruvbox`, `catppuccin`, `nord`, `dracula`, `rosepine`, `solarized`, `kanagawa`, and `github-light`. Select a preset in `Ctrl+P`.
@@ -325,14 +348,14 @@ Set `PUM_DIR` to override the complete PUM data directory.
325
348
  | `auth.json` | Provider credentials and custom-provider keys |
326
349
  | `models.json` | Custom endpoints and model metadata; submitted keys are not stored here |
327
350
  | `settings.json` | Model and thinking level managed by pi |
328
- | `pum.json` | Theme, animation, search, writing, explanation, Check mode, sandbox, and subagent settings |
351
+ | `pum.json` | Theme, animation, transcript output, search, writing, explanation, Check mode, sandbox, and subagent settings |
329
352
  | `theme.json` | Optional semantic color overrides |
330
353
  | `history.json` | Prompt history by working directory |
331
- | `prompt-stash.json` | Stashed prompts by working directory |
354
+ | `prompt-stash.json` | Cached prompts by working directory (legacy filename) |
332
355
  | `sessions/` | Main conversation sessions |
333
356
  | `subagents/` | Persistent subagent sessions |
334
357
 
335
- PUM preserves all stashed prompt occurrences. PUM also keeps the 100 most recent additional sent-history occurrences for each working directory.
358
+ PUM preserves all cached prompt occurrences. PUM also keeps the 100 most recent additional sent-history occurrences for each working directory.
336
359
 
337
360
  Session history shows the latest sent user-message time, on-disk JSONL size, and known outgoing, incoming, and cache-read token counts. Corrupt or partially written session lines do not prevent the history popup from opening.
338
361
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pum-agent",
3
- "version": "0.2.14-beta.1",
3
+ "version": "0.2.16-beta.2",
4
4
  "description": "A compact terminal coding agent powered by pi and OpenTUI.",
5
5
  "license": "MIT",
6
6
  "type": "module",