@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 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. On Paseo 0.11 the sidebar row also shows a count of agents needing attention.
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.9.0, ^0.10.0 or ^0.11.0. Paseo 0.9 and 0.10 get the sidebar item without the count.
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`). On Paseo 0.11 the sidebar row also counts the agents
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 (Paseo 0.11)
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.9.0 || ^0.10.0 || ^0.11.0`. Development uses the stable 0.9 SDK line.
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.9.0 || ^0.10.0 || ^0.11.0` and pins `@getpaseo/plugin`, `@getpaseo/client`,
104
- `@getpaseo/protocol`, and `@getpaseo/cli` to the stable 0.9 SDK line. Renovate groups `@getpaseo/*`
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
- if (hasScreens) {
23
- // Registered under the deprecated sidebar item's id so saved links keep working.
24
- removers.push(
25
- client.addScreen({
26
- id: MONITOR_SCREEN_ID,
27
- title: "Agent monitor",
28
- Component: (props: PluginScreenProps) => (
29
- <AgentMonitor
30
- {...props}
31
- bucketParam={props.params.bucket}
32
- onOpenSettings={() => client.openSettings("monitor")}
33
- />
34
- ),
35
- }),
36
- client.addSidebarHeaderItem({
37
- id: "monitor",
38
- title: "Agent monitor",
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, openSurface }) {
64
- if (hasScreens) openScreen({ screenId: MONITOR_SCREEN_ID });
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
- for (const remove of removers.reverse()) remove();
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": "1.2.2",
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.0-beta.5",
50
- "@getpaseo/client": "0.11.0-beta.5",
51
- "@getpaseo/plugin": "0.11.0-beta.5",
52
- "@getpaseo/protocol": "0.11.0-beta.5",
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
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "id": "agent-monitor",
3
3
  "description": "A Paseo plugin that provides a host-wide agent triage roster.",
4
- "requirements": { "paseo": "^0.9.0 || ^0.10.0 || ^0.11.0" }
4
+ "requirements": { "paseo": "^0.11.0" }
5
5
  }
@@ -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
- }