@monster-orange/den 0.4.27 → 0.4.28
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/CHANGELOG.md +47 -0
- package/docs/distributions.md +73 -2
- package/package.json +1 -1
- package/src/shared/agents/claude-helpers.ts +623 -0
- package/src/shared/agents/den-claude.ts +54 -0
- package/src/shared/agents/helpers.ts +175 -0
- package/src/shared/agents/runtime.ts +13 -0
- package/src/shared/den-config.ts +42 -1
- package/src/shared/hub.ts +10 -0
- package/src/ui/cli/agent-ops.ts +144 -0
- package/src/ui/cli/agents-command.ts +127 -1
- package/src/ui/mcp/api.ts +8 -2
- package/src/ui/mcp/server.ts +13 -1
- package/src/ui/mcp/tools.ts +50 -0
- package/src/ui/server/agent-routes.ts +56 -2
- package/src/ui/server/hub-connect.ts +69 -3
- package/src/ui/server/index.ts +7 -1
- package/src/ui/server/public/agent-helpers.js +311 -0
- package/src/ui/server/public/agents-page.js +76 -9
- package/src/ui/server/public/i18n/es.js +39 -0
- package/src/ui/server/public/i18n/ja.js +37 -0
- package/src/ui/server/public/settings-registry.js +37 -1
- package/src/ui/server/public/shell.js +200 -0
- package/src/ui/server/public/transcript-view.js +202 -0
- package/src/ui/server/request-guard.ts +3 -1
- package/src/ui/server/route-classes.ts +16 -0
- package/src/ui/server/session-routes.ts +71 -1
- package/src/ui/server/ui-assets.ts +3 -0
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,53 @@ All notable changes to Den are documented here. Each release lists the
|
|
|
4
4
|
config and manifest changes a distribution must make to move to it under
|
|
5
5
|
**Migrations**.
|
|
6
6
|
|
|
7
|
+
## [0.4.28] - 2026-11-10
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **An agent's helpers (D32).** When an agent starts helpers of its own
|
|
12
|
+
(Claude Code's Agent and Workflow subagents), Den shows them, read-only:
|
|
13
|
+
under the agent's row on the Agents tab, in a **Helpers (n)** list from
|
|
14
|
+
the pane's bar, and as a count on the rail's Agents item on every page.
|
|
15
|
+
Click one to read its transcript: what it was asked, its answers, and
|
|
16
|
+
its tool calls in a few words. Den can't stop or steer a helper, and
|
|
17
|
+
says so; to change what one does, tell the agent. Helpers from the
|
|
18
|
+
agent's earlier conversations are folded under "Earlier (n)". A
|
|
19
|
+
helper's own helpers sit under it, and a running one is listed first,
|
|
20
|
+
with the helper it belongs to. Also
|
|
21
|
+
`<cli> agents helpers <id> [<helper>]` (`--all`, `--limit`, `--json`),
|
|
22
|
+
the MCP tool `agent_helpers`, and the routes `GET
|
|
23
|
+
/api/workspaces/<ws>/agents/<id>/helpers[/<helper>]` and `GET
|
|
24
|
+
/api/sessions/helpers`.
|
|
25
|
+
- **Hub in the rail.** Once this install is connected, the rail has a
|
|
26
|
+
**Hub ↗** link above Settings: the company's page on Hub, in a new tab,
|
|
27
|
+
with a count of the threads waiting on you. When Hub rejects the token
|
|
28
|
+
or forbids the role, the link is greyed and goes to Settings › Hub.
|
|
29
|
+
- **Connect sends `den_url`:** this Den's edge address, when it has one
|
|
30
|
+
(https, else `http://<name>.localhost`), so Hub can link back to it.
|
|
31
|
+
- **`agents.helpers` settings:** `active_minutes` (default 10: no activity
|
|
32
|
+
this long and not known done shows idle) and `collapse_done_minutes`
|
|
33
|
+
(default 30: done helpers fold away after this).
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- **Connect to Hub from a `.localhost` address.** An edge on this machine
|
|
38
|
+
reached over http (`http://<name>.localhost`) now counts as this
|
|
39
|
+
machine, like localhost.
|
|
40
|
+
- **Disconnect asks first,** saying it revokes this Den's Hub key on Hub
|
|
41
|
+
and that agents lose Hub until you Connect again.
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
- The Agents list no longer drops keyboard focus every few seconds: its
|
|
46
|
+
refresh kept redrawing it. Focus stays on the row or button it was on.
|
|
47
|
+
|
|
48
|
+
### Migrations
|
|
49
|
+
|
|
50
|
+
- `helpers` under `agents:` is now a reserved key (D32's settings). A
|
|
51
|
+
distribution with an agent whose id is `helpers` must rename it.
|
|
52
|
+
Nothing else: `agents.helpers` is optional.
|
|
53
|
+
|
|
7
54
|
## [0.4.27] - 2026-11-10
|
|
8
55
|
|
|
9
56
|
### Added
|
package/docs/distributions.md
CHANGED
|
@@ -935,7 +935,12 @@ Settings, connected. Nobody copies a token or edits config.
|
|
|
935
935
|
what protect it. It then moves on to Settings by script, which carries
|
|
936
936
|
the cookie again.
|
|
937
937
|
- Hub can only send the person back to https or to this machine, so
|
|
938
|
-
open Den over https (its edge address)
|
|
938
|
+
open Den over https (its edge address), on localhost, or on a
|
|
939
|
+
`<name>.localhost` address (an edge on this machine over http; RFC 6761
|
|
940
|
+
keeps it on this machine) to Connect.
|
|
941
|
+
- When this Den has an edge address, Connect sends it as `den_url`:
|
|
942
|
+
its https one, else an `http://<name>.localhost` one. Hub links back to Den with it when the browser came over
|
|
943
|
+
loopback. A Reconnect sends it again.
|
|
939
944
|
- This install's label on Hub is `<cli> on <machine>`.
|
|
940
945
|
- The token is the install's (SEC-0), kept in the install's own secrets
|
|
941
946
|
store when it keeps secrets: a 1Password item `<Product> Hub token`
|
|
@@ -947,7 +952,8 @@ Settings, connected. Nobody copies a token or edits config.
|
|
|
947
952
|
- Connect writes `hub.url` (Hub's own address), `hub.token` (the store
|
|
948
953
|
ref, or `file:<path>`) and `hub.mcp_url` (Hub's MCP address, as given)
|
|
949
954
|
to `config/local/user.yml`.
|
|
950
|
-
- **Disconnect** revokes
|
|
955
|
+
- **Disconnect** asks first: "This revokes this Den's Hub key on Hub.
|
|
956
|
+
Agents lose Hub until you Connect again." Then it revokes the token on Hub (`POST <hub>/connect/revoke`),
|
|
951
957
|
then removes it here and clears `hub.token` and `hub.mcp_url`;
|
|
952
958
|
`hub.url` stays, so Connect is one click. If Hub can't be reached,
|
|
953
959
|
nothing is removed; **Remove it here anyway** removes it, and says the
|
|
@@ -955,6 +961,11 @@ Settings, connected. Nobody copies a token or edits config.
|
|
|
955
961
|
- A token Hub no longer accepts (revoked, or replaced by a newer
|
|
956
962
|
connect) shows **Reconnect**. A role that may no longer connect Den
|
|
957
963
|
installs says to ask a Hub admin; Den never retries it.
|
|
964
|
+
- Once connected, the rail has a **Hub ↗** link above Settings. It opens
|
|
965
|
+
the company's page on Hub in a new tab, with the company in its tooltip
|
|
966
|
+
and a count of the threads waiting on you (Hub's `unread`). A token Hub
|
|
967
|
+
rejects, or a role it forbids, greys it, and it goes to Settings › Hub
|
|
968
|
+
instead. Den looks at Hub for it once a minute while a page shows.
|
|
958
969
|
|
|
959
970
|
### Config
|
|
960
971
|
|
|
@@ -3020,6 +3031,66 @@ The pane's header and the workspace's heading in the list link to the
|
|
|
3020
3031
|
Workspaces page focused on that workspace (`/local-dev?ws=<ws>`), and ⌘K
|
|
3021
3032
|
has "Go to workspace <ws>" for each workspace with agents.
|
|
3022
3033
|
|
|
3034
|
+
### Helpers: what an agent started in its own session
|
|
3035
|
+
|
|
3036
|
+
An agent can start helpers of its own: Claude Code's Agent and Workflow
|
|
3037
|
+
subagents (D32). They run inside the agent's session, so Den shows them
|
|
3038
|
+
but can't stop or steer them. To change what they do, tell the agent.
|
|
3039
|
+
|
|
3040
|
+
Where they show:
|
|
3041
|
+
|
|
3042
|
+
- **The Agents tab.** Under a running or stopped agent's row, its recent
|
|
3043
|
+
helpers, running ones first, each with what it was asked to do, its
|
|
3044
|
+
state and when. "All helpers (n)" opens the full list. Done, failed and
|
|
3045
|
+
stopped helpers fold away after a while (`collapse_done_minutes`).
|
|
3046
|
+
- **A pane's bar.** **Helpers (n)** opens the list, with a count while any
|
|
3047
|
+
run. Helpers from the agent's earlier conversations (before a relaunch)
|
|
3048
|
+
are folded under "Earlier (n)".
|
|
3049
|
+
- **A helper's transcript.** Click a helper: what it was asked, its
|
|
3050
|
+
answers, and its tool calls in a few words, the newest at the bottom.
|
|
3051
|
+
Never its thinking.
|
|
3052
|
+
- **The rail.** The Agents item counts the helpers running now, on every
|
|
3053
|
+
page.
|
|
3054
|
+
|
|
3055
|
+
A helper's state comes from Claude Code's files, best evidence first: the
|
|
3056
|
+
person stopped it, its workflow said, the agent was told it ended, its
|
|
3057
|
+
result is in the agent's transcript, its own files say it finished, its
|
|
3058
|
+
last answer went quiet, or recent activity. A helper with no activity for
|
|
3059
|
+
`active_minutes` that isn't known to be done shows **idle**. When the
|
|
3060
|
+
agent isn't running, none of its helpers are. Hover a state to see which
|
|
3061
|
+
evidence it came from.
|
|
3062
|
+
|
|
3063
|
+
From the CLI and MCP:
|
|
3064
|
+
|
|
3065
|
+
```sh
|
|
3066
|
+
<cli> agents helpers <id> # this conversation's helpers
|
|
3067
|
+
<cli> agents helpers <id> --all # earlier conversations' too
|
|
3068
|
+
<cli> agents helpers <id> <helper> # one helper's transcript
|
|
3069
|
+
<cli> agents helpers <id> <helper> --limit 50 --json
|
|
3070
|
+
```
|
|
3071
|
+
|
|
3072
|
+
The MCP tool `agent_helpers` reads the same, in the agent's own workspace
|
|
3073
|
+
or one it is granted. The routes are `GET
|
|
3074
|
+
/api/workspaces/<ws>/agents/<id>/helpers[/<helper>]` and `GET
|
|
3075
|
+
/api/sessions/helpers` (the running count). All of them only read.
|
|
3076
|
+
|
|
3077
|
+
Settings, under `agents.helpers` in the org config:
|
|
3078
|
+
|
|
3079
|
+
```yaml
|
|
3080
|
+
agents:
|
|
3081
|
+
helpers:
|
|
3082
|
+
active_minutes: 10 # no activity this long, not known done: idle
|
|
3083
|
+
collapse_done_minutes: 30 # done helpers fold away after this
|
|
3084
|
+
```
|
|
3085
|
+
|
|
3086
|
+
| Key | Values | Default |
|
|
3087
|
+
| ----------------------- | -------------------------- | ------- |
|
|
3088
|
+
| `active_minutes` | minutes, above 0 to 100000 | 10 |
|
|
3089
|
+
| `collapse_done_minutes` | minutes, above 0 to 100000 | 30 |
|
|
3090
|
+
|
|
3091
|
+
A runtime other than Claude Code shows no helpers: Den says it can't tell
|
|
3092
|
+
which helpers that agent started.
|
|
3093
|
+
|
|
3023
3094
|
### Stopped agents: Resume, Start fresh, Remove
|
|
3024
3095
|
|
|
3025
3096
|
An agent that stops stays in the list, below the running ones (AG-14, the
|