blob: e5017bef08f216d42501b443e1910d4d5f6700ce (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# panto-herdr
`panto-herdr` reports panto lifecycle state to [Herdr](https://herdr.dev/) when
panto is running in a Herdr pane. It reports `panto` as the agent label and
uses `thinking`, `responding`, `compacting`, and `tool:<name>` as short report
messages.
Install it through panto's rock loader:
```toml
[extensions]
rocks = ["panto-herdr"]
```
Then run `panto update`. Start panto in Herdr, for example:
```sh
herdr agent start panto --cwd "$PWD" -- panto
```
The extension is inert outside Herdr: it only activates when `HERDR_PANE_ID`
is set. It invokes the local `herdr` executable asynchronously and discards
its JSON output, so reporting does not affect the panto terminal UI.
## State mapping
| panto event | Herdr state |
| --- | --- |
| `session_start`, `session_ready` | `idle` |
| `user_message`, `thinking`, `compaction`, `tool_details`, `assistant_text` | `working` |
| `assistant_text_complete` | `idle` |
| `session_end` | agent released |
`session_ready` restores `idle` after panto replays historical lifecycle events
while loading a resumed session. `session_end` removes panto's agent report when
the process shuts down, so Herdr also clears the pane/space activity indicator
once no reported agents remain.
`assistant_text_complete` is the block-level idle boundary; an assistant text
block followed by a tool call can show `idle` briefly before the next lifecycle
event restores `working`. Native session restore is out of scope until panto
exposes a stable session reference to extensions.
## Check
Run the module-level check with panto's Lua runtime:
```sh
panto lua _selfcheck.lua
```
|