@omercnet/paseo-agent-monitor 1.2.2 → 2.0.0
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/OVERVIEW.md +2 -2
- package/README.md +5 -6
- package/index.client.tsx +22 -47
- package/package.json +5 -5
- package/paseo-plugin.json +1 -1
- package/client/capabilities.ts +0 -13
package/OVERVIEW.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
Agent monitor is one roster of every agent on a host, so you can see which ones need you without walking the workspace tree. It adds an **Agent monitor** sidebar screen and a Command Center item. Agents are grouped by project and workspace and sorted into Attention, Running, Idle and Closed, where Attention covers agents that need input, have errored, or have a pending permission request.
|
|
1
|
+
Agent monitor is one roster of every agent on a host, so you can see which ones need you without walking the workspace tree. It adds an **Agent monitor** sidebar screen and a Command Center item. Agents are grouped by project and workspace and sorted into Attention, Running, Idle and Closed, where Attention covers agents that need input, have errored, or have a pending permission request. The sidebar row also shows a count of agents needing attention.
|
|
2
2
|
|
|
3
3
|
Settings control grouping, sort order, density, which details each row shows, and the default filter. They are stored per host and shared by every connected client.
|
|
4
4
|
|
|
5
5
|
It reads agent, workspace and project lists through the selected host's existing connection and opens no connection of its own. The one action it performs is archiving, either a single agent or all closed agents. It cannot interrupt a running turn.
|
|
6
6
|
|
|
7
|
-
Requires Paseo ^0.
|
|
7
|
+
Requires Paseo ^0.11.0.
|
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# agent-monitor
|
|
2
2
|
|
|
3
3
|
One roster for every agent on a daemon: an `Agent monitor` screen in the sidebar plus a global
|
|
4
|
-
Command Center item (`Open agent monitor`).
|
|
4
|
+
Command Center item (`Open agent monitor`). The sidebar row also counts the agents
|
|
5
5
|
that need attention.
|
|
6
6
|
|
|
7
7
|
Answers "which of my 38 agents needs me right now" without walking the workspace tree.
|
|
@@ -46,7 +46,7 @@ no private organization names remained in the rendered page.
|
|
|
46
46
|
collapsed) to open its workspace through Paseo's cross-platform navigation API.
|
|
47
47
|
- Archive one agent, or sweep every closed agent (two taps).
|
|
48
48
|
|
|
49
|
-
## Sidebar row
|
|
49
|
+
## Sidebar row
|
|
50
50
|
|
|
51
51
|
- The row's badge counts the Attention bucket, using the same rule as the roster. It shows no
|
|
52
52
|
number while the roster loads or after a refresh fails, and `N+` once the agent list reaches the
|
|
@@ -56,7 +56,6 @@ no private organization names remained in the rendered page.
|
|
|
56
56
|
- The monitor screen accepts a `bucket` param (`attention`, `running`, `idle`, `closed`, or `all`)
|
|
57
57
|
as its initial filter, so a link such as `…/surface/monitor?param.bucket=attention` opens
|
|
58
58
|
filtered and keeps that filter on reload. Chips then filter in place without changing the URL.
|
|
59
|
-
- Paseo 0.9 and 0.10 keep the static sidebar item that opens the monitor surface.
|
|
60
59
|
|
|
61
60
|
## How it reads state
|
|
62
61
|
|
|
@@ -78,7 +77,7 @@ Open the monitor and select the agent there.
|
|
|
78
77
|
|
|
79
78
|
## Install
|
|
80
79
|
|
|
81
|
-
Requires Paseo `^0.
|
|
80
|
+
Requires Paseo `^0.11.0`. Development uses the 0.11 SDK line from the workspace catalog.
|
|
82
81
|
|
|
83
82
|
Install the published package on the daemon host:
|
|
84
83
|
|
|
@@ -100,8 +99,8 @@ bun run typecheck
|
|
|
100
99
|
Release Please maintains the version, changelog, component tag, and GitHub release from
|
|
101
100
|
Conventional Commits in the monorepo.
|
|
102
101
|
|
|
103
|
-
The project supports Paseo `^0.
|
|
104
|
-
`@getpaseo/protocol`, and `@getpaseo/cli` to the
|
|
102
|
+
The project supports Paseo `^0.11.0` and pins `@getpaseo/plugin`, `@getpaseo/client`,
|
|
103
|
+
`@getpaseo/protocol`, and `@getpaseo/cli` to the 0.11 SDK line through the workspace catalog. Renovate groups `@getpaseo/*`
|
|
105
104
|
updates so the SDKs move together.
|
|
106
105
|
|
|
107
106
|
React `19.1` and React Native `0.81` intentionally match the versions supplied by Paseo.
|
package/index.client.tsx
CHANGED
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
PluginClientContext,
|
|
3
|
-
PluginScreenProps,
|
|
4
|
-
PluginSurfaceProps,
|
|
5
|
-
} from "@getpaseo/plugin/client";
|
|
1
|
+
import type { PluginClientContext, PluginScreenProps } from "@getpaseo/plugin/client";
|
|
6
2
|
import { AgentMonitor } from "./client/agent-monitor";
|
|
7
|
-
import { supportsScreens } from "./client/capabilities";
|
|
8
3
|
import { MonitorSettingsScreen } from "./client/settings-screen";
|
|
9
4
|
import { MONITOR_SCREEN_ID, MonitorSidebarItem } from "./client/sidebar";
|
|
10
5
|
|
|
11
6
|
export default function contribute(client: PluginClientContext) {
|
|
12
|
-
const hasScreens = supportsScreens(client);
|
|
13
|
-
const removers: Array<() => void> = [];
|
|
14
|
-
|
|
15
7
|
const removeSettings = client.addSettingsScreen({
|
|
16
8
|
id: "monitor",
|
|
17
9
|
title: "Monitor settings",
|
|
@@ -19,40 +11,23 @@ export default function contribute(client: PluginClientContext) {
|
|
|
19
11
|
Component: MonitorSettingsScreen,
|
|
20
12
|
});
|
|
21
13
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
Component: MonitorSidebarItem,
|
|
40
|
-
}),
|
|
41
|
-
);
|
|
42
|
-
} else {
|
|
43
|
-
const MonitorSurface = (props: PluginSurfaceProps) => (
|
|
44
|
-
<AgentMonitor {...props} onOpenSettings={() => client.openSettings("monitor")} />
|
|
45
|
-
);
|
|
46
|
-
removers.push(
|
|
47
|
-
client.addSurface("monitor", MonitorSurface),
|
|
48
|
-
client.addSidebarItem({
|
|
49
|
-
id: "monitor",
|
|
50
|
-
title: "Agent monitor",
|
|
51
|
-
icon: "Radar",
|
|
52
|
-
surface: "monitor",
|
|
53
|
-
}),
|
|
54
|
-
);
|
|
55
|
-
}
|
|
14
|
+
// Registered under the retired sidebar item's id so saved links keep working.
|
|
15
|
+
const removeScreen = client.addScreen({
|
|
16
|
+
id: MONITOR_SCREEN_ID,
|
|
17
|
+
title: "Agent monitor",
|
|
18
|
+
Component: (props: PluginScreenProps) => (
|
|
19
|
+
<AgentMonitor
|
|
20
|
+
{...props}
|
|
21
|
+
bucketParam={props.params.bucket}
|
|
22
|
+
onOpenSettings={() => client.openSettings("monitor")}
|
|
23
|
+
/>
|
|
24
|
+
),
|
|
25
|
+
});
|
|
26
|
+
const removeSidebarItem = client.addSidebarHeaderItem({
|
|
27
|
+
id: "monitor",
|
|
28
|
+
title: "Agent monitor",
|
|
29
|
+
Component: MonitorSidebarItem,
|
|
30
|
+
});
|
|
56
31
|
|
|
57
32
|
const removeOpenMonitor = client.addCommandCenterItem({
|
|
58
33
|
id: "open-monitor",
|
|
@@ -60,9 +35,8 @@ export default function contribute(client: PluginClientContext) {
|
|
|
60
35
|
icon: "Radar",
|
|
61
36
|
keywords: ["agents", "sessions", "monitor", "triage"],
|
|
62
37
|
context: "global",
|
|
63
|
-
onSelect({ openScreen
|
|
64
|
-
|
|
65
|
-
else openSurface("monitor");
|
|
38
|
+
onSelect({ openScreen }) {
|
|
39
|
+
openScreen({ screenId: MONITOR_SCREEN_ID });
|
|
66
40
|
},
|
|
67
41
|
});
|
|
68
42
|
const removeConfigureMonitor = client.addCommandCenterItem({
|
|
@@ -79,7 +53,8 @@ export default function contribute(client: PluginClientContext) {
|
|
|
79
53
|
return () => {
|
|
80
54
|
removeConfigureMonitor();
|
|
81
55
|
removeOpenMonitor();
|
|
82
|
-
|
|
56
|
+
removeSidebarItem();
|
|
57
|
+
removeScreen();
|
|
83
58
|
removeSettings();
|
|
84
59
|
};
|
|
85
60
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@omercnet/paseo-agent-monitor",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "A Paseo plugin that provides a host-wide agent triage roster.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -46,10 +46,10 @@
|
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@biomejs/biome": "^2.5.10",
|
|
49
|
-
"@getpaseo/cli": "0.11.
|
|
50
|
-
"@getpaseo/client": "0.11.
|
|
51
|
-
"@getpaseo/plugin": "0.11.
|
|
52
|
-
"@getpaseo/protocol": "0.11.
|
|
49
|
+
"@getpaseo/cli": "0.11.1",
|
|
50
|
+
"@getpaseo/client": "0.11.1",
|
|
51
|
+
"@getpaseo/plugin": "0.11.1",
|
|
52
|
+
"@getpaseo/protocol": "0.11.1",
|
|
53
53
|
"@tanstack/react-query": "^5.102.3",
|
|
54
54
|
"@types/node": "^24.10.1",
|
|
55
55
|
"@types/react": "^19.2.18",
|
package/paseo-plugin.json
CHANGED
package/client/capabilities.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import type { PluginClientContext } from "@getpaseo/plugin/client";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* True on hosts that register screens and live sidebar items (Paseo 0.11+). Older hosts only have
|
|
5
|
-
* `addSurface` and `addSidebarItem`, and their `@getpaseo/plugin/client/ui` lacks `SidebarRow`.
|
|
6
|
-
*/
|
|
7
|
-
export function supportsScreens(
|
|
8
|
-
client: Partial<Pick<PluginClientContext, "addScreen" | "addSidebarHeaderItem">>,
|
|
9
|
-
): boolean {
|
|
10
|
-
return (
|
|
11
|
-
typeof client.addScreen === "function" && typeof client.addSidebarHeaderItem === "function"
|
|
12
|
-
);
|
|
13
|
-
}
|