@omercnet/paseo-agent-monitor 2.0.0 → 3.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
@@ -4,4 +4,4 @@ Settings control grouping, sort order, density, which details each row shows, an
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.11.0.
7
+ Requires Paseo ^0.12.0.
package/README.md CHANGED
@@ -66,18 +66,19 @@ agent whose workspace is beyond the paged workspace list still lands under its r
66
66
  refresh from agent, workspace, and project subscription deltas, debounced 750ms, with a 30s
67
67
  backstop refetch. The screen, the sidebar row, and its popover share that query, subscription set,
68
68
  and backstop; on web and desktop, refreshes pause while the window is hidden and catch up when it returns. The plugin
69
- borrows the selected host's connection; it opens no socket of its own.
69
+ borrows the selected host's connection; it opens no socket of its own. Agents and workspaces in
70
+ background workspaces are included.
70
71
 
71
72
  ## Limits
72
73
 
73
74
  Interrupting a turn is not part of `PaseoApi`, so archive is the only lifecycle action here.
74
75
 
75
- The sidebar popover lists agents but cannot open them: Paseo 0.11 gives popovers no navigation.
76
+ The sidebar popover lists agents but cannot open them: Paseo 0.12 gives popovers no navigation.
76
77
  Open the monitor and select the agent there.
77
78
 
78
79
  ## Install
79
80
 
80
- Requires Paseo `^0.11.0`. Development uses the 0.11 SDK line from the workspace catalog.
81
+ Requires Paseo `^0.12.0`, whose background workspaces the monitor lists. Development uses the 0.12 SDK line from the workspace catalog.
81
82
 
82
83
  Install the published package on the daemon host:
83
84
 
@@ -99,8 +100,8 @@ bun run typecheck
99
100
  Release Please maintains the version, changelog, component tag, and GitHub release from
100
101
  Conventional Commits in the monorepo.
101
102
 
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/*`
103
+ The project supports Paseo `^0.12.0` and pins `@getpaseo/plugin`, `@getpaseo/client`,
104
+ `@getpaseo/protocol`, and `@getpaseo/cli` to the 0.12 SDK line through the workspace catalog. Renovate groups `@getpaseo/*`
104
105
  updates so the SDKs move together.
105
106
 
106
107
  React `19.1` and React Native `0.81` intentionally match the versions supplied by Paseo.
@@ -59,7 +59,7 @@ export function observeDirectoryInvalidation(paseo: PaseoApi, invalidate: () =>
59
59
  let stopped = false;
60
60
 
61
61
  const attachAgents = async () => {
62
- const { subscription } = await paseo.agents.list({ subscribe: {} });
62
+ const { subscription } = await paseo.agents.list({ subscribe: {}, includeBackground: true });
63
63
  if (stopped) {
64
64
  await subscription.release().catch((error: unknown) => {
65
65
  console.error("Agent Monitor agent observation cleanup failed", error);
@@ -74,7 +74,10 @@ export function observeDirectoryInvalidation(paseo: PaseoApi, invalidate: () =>
74
74
  };
75
75
 
76
76
  const attachWorkspaces = async () => {
77
- const { subscription } = await paseo.workspaces.list({ subscribe: {} });
77
+ const { subscription } = await paseo.workspaces.list({
78
+ subscribe: {},
79
+ includeBackground: true,
80
+ });
78
81
  if (stopped) {
79
82
  await subscription.release().catch((error: unknown) => {
80
83
  console.error("Agent Monitor workspace observation cleanup failed", error);
@@ -27,12 +27,15 @@ export type MonitorData = {
27
27
  truncated: boolean;
28
28
  };
29
29
 
30
- async function loadAgents(paseo: PaseoApi): Promise<{ entries: AgentEntry[]; truncated: boolean }> {
30
+ export async function loadAgents(
31
+ paseo: PaseoApi,
32
+ ): Promise<{ entries: AgentEntry[]; truncated: boolean }> {
31
33
  const entries: AgentEntry[] = [];
32
34
  let cursor: string | undefined;
33
35
  for (let page = 0; page < MAX_PAGES; page += 1) {
34
36
  const result = await paseo.agents.list({
35
- sort: [{ key: "updated_at", direction: "desc" }],
37
+ includeBackground: true,
38
+ sort: [{ key: "created_at", direction: "desc" }],
36
39
  page: { limit: PAGE_LIMIT, ...(cursor ? { cursor } : {}) },
37
40
  });
38
41
  entries.push(...result.entries);
@@ -42,11 +45,12 @@ async function loadAgents(paseo: PaseoApi): Promise<{ entries: AgentEntry[]; tru
42
45
  return { entries, truncated: true };
43
46
  }
44
47
 
45
- async function loadWorkspaces(paseo: PaseoApi): Promise<PaseoWorkspace[]> {
48
+ export async function loadWorkspaces(paseo: PaseoApi): Promise<PaseoWorkspace[]> {
46
49
  const workspaces: PaseoWorkspace[] = [];
47
50
  let cursor: string | undefined;
48
51
  for (let page = 0; page < MAX_PAGES; page += 1) {
49
52
  const result = await paseo.workspaces.list({
53
+ includeBackground: true,
50
54
  page: { limit: PAGE_LIMIT, ...(cursor ? { cursor } : {}) },
51
55
  });
52
56
  workspaces.push(...result.entries);
package/client/monitor.ts CHANGED
@@ -64,7 +64,7 @@ export type Roster =
64
64
 
65
65
  export const PARENT_AGENT_ID_LABEL = "paseo.parent-agent-id";
66
66
 
67
- /** Prefers the first-class snapshot field; older hosts only carry the legacy label. */
67
+ /** Prefers the first-class snapshot field; falls back to the parent label when it is empty. */
68
68
  export function parentAgentId(agent: AgentSnapshot): string | null {
69
69
  const firstClass = "parentAgentId" in agent ? agent.parentAgentId : null;
70
70
  if (typeof firstClass === "string" && firstClass.trim()) return firstClass.trim();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omercnet/paseo-agent-monitor",
3
- "version": "2.0.0",
3
+ "version": "3.0.0",
4
4
  "type": "module",
5
5
  "description": "A Paseo plugin that provides a host-wide agent triage roster.",
6
6
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "publishConfig": {
17
17
  "access": "public"
18
18
  },
19
- "packageManager": "bun@1.4.2",
19
+ "packageManager": "bun@1.4.3",
20
20
  "engines": {
21
21
  "node": ">=24"
22
22
  },
@@ -46,10 +46,10 @@
46
46
  },
47
47
  "devDependencies": {
48
48
  "@biomejs/biome": "^2.5.10",
49
- "@getpaseo/cli": "0.11.1",
50
- "@getpaseo/client": "0.11.1",
51
- "@getpaseo/plugin": "0.11.1",
52
- "@getpaseo/protocol": "0.11.1",
49
+ "@getpaseo/cli": "0.12.0",
50
+ "@getpaseo/client": "0.12.0",
51
+ "@getpaseo/plugin": "0.12.0",
52
+ "@getpaseo/protocol": "0.12.0",
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.11.0" }
4
+ "requirements": { "paseo": "^0.12.0" }
5
5
  }