@getpaseo/cli 0.1.2

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.
Files changed (170) hide show
  1. package/bin/paseo +2 -0
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +150 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/commands/agent/archive.d.ts +17 -0
  7. package/dist/commands/agent/archive.d.ts.map +1 -0
  8. package/dist/commands/agent/archive.js +91 -0
  9. package/dist/commands/agent/archive.js.map +1 -0
  10. package/dist/commands/agent/attach.d.ts +10 -0
  11. package/dist/commands/agent/attach.d.ts.map +1 -0
  12. package/dist/commands/agent/attach.js +166 -0
  13. package/dist/commands/agent/attach.js.map +1 -0
  14. package/dist/commands/agent/index.d.ts +3 -0
  15. package/dist/commands/agent/index.d.ts.map +1 -0
  16. package/dist/commands/agent/index.js +112 -0
  17. package/dist/commands/agent/index.js.map +1 -0
  18. package/dist/commands/agent/inspect.d.ts +14 -0
  19. package/dist/commands/agent/inspect.d.ts.map +1 -0
  20. package/dist/commands/agent/inspect.js +185 -0
  21. package/dist/commands/agent/inspect.js.map +1 -0
  22. package/dist/commands/agent/logs.d.ts +11 -0
  23. package/dist/commands/agent/logs.d.ts.map +1 -0
  24. package/dist/commands/agent/logs.js +207 -0
  25. package/dist/commands/agent/logs.js.map +1 -0
  26. package/dist/commands/agent/ls.d.ts +34 -0
  27. package/dist/commands/agent/ls.d.ts.map +1 -0
  28. package/dist/commands/agent/ls.js +153 -0
  29. package/dist/commands/agent/ls.js.map +1 -0
  30. package/dist/commands/agent/mode.d.ts +18 -0
  31. package/dist/commands/agent/mode.d.ts.map +1 -0
  32. package/dist/commands/agent/mode.js +97 -0
  33. package/dist/commands/agent/mode.js.map +1 -0
  34. package/dist/commands/agent/run.d.ts +27 -0
  35. package/dist/commands/agent/run.d.ts.map +1 -0
  36. package/dist/commands/agent/run.js +146 -0
  37. package/dist/commands/agent/run.js.map +1 -0
  38. package/dist/commands/agent/send.d.ts +16 -0
  39. package/dist/commands/agent/send.d.ts.map +1 -0
  40. package/dist/commands/agent/send.js +172 -0
  41. package/dist/commands/agent/send.js.map +1 -0
  42. package/dist/commands/agent/stop.d.ts +16 -0
  43. package/dist/commands/agent/stop.d.ts.map +1 -0
  44. package/dist/commands/agent/stop.js +104 -0
  45. package/dist/commands/agent/stop.js.map +1 -0
  46. package/dist/commands/agent/wait.d.ts +16 -0
  47. package/dist/commands/agent/wait.d.ts.map +1 -0
  48. package/dist/commands/agent/wait.js +171 -0
  49. package/dist/commands/agent/wait.js.map +1 -0
  50. package/dist/commands/daemon/index.d.ts +3 -0
  51. package/dist/commands/daemon/index.d.ts.map +1 -0
  52. package/dist/commands/daemon/index.js +41 -0
  53. package/dist/commands/daemon/index.js.map +1 -0
  54. package/dist/commands/daemon/local-daemon.d.ts +51 -0
  55. package/dist/commands/daemon/local-daemon.d.ts.map +1 -0
  56. package/dist/commands/daemon/local-daemon.js +298 -0
  57. package/dist/commands/daemon/local-daemon.js.map +1 -0
  58. package/dist/commands/daemon/pair.d.ts +8 -0
  59. package/dist/commands/daemon/pair.d.ts.map +1 -0
  60. package/dist/commands/daemon/pair.js +34 -0
  61. package/dist/commands/daemon/pair.js.map +1 -0
  62. package/dist/commands/daemon/restart.d.ts +12 -0
  63. package/dist/commands/daemon/restart.d.ts.map +1 -0
  64. package/dist/commands/daemon/restart.js +97 -0
  65. package/dist/commands/daemon/restart.js.map +1 -0
  66. package/dist/commands/daemon/start.d.ts +6 -0
  67. package/dist/commands/daemon/start.d.ts.map +1 -0
  68. package/dist/commands/daemon/start.js +121 -0
  69. package/dist/commands/daemon/start.js.map +1 -0
  70. package/dist/commands/daemon/status.d.ts +10 -0
  71. package/dist/commands/daemon/status.d.ts.map +1 -0
  72. package/dist/commands/daemon/status.js +119 -0
  73. package/dist/commands/daemon/status.js.map +1 -0
  74. package/dist/commands/daemon/stop.d.ts +12 -0
  75. package/dist/commands/daemon/stop.d.ts.map +1 -0
  76. package/dist/commands/daemon/stop.js +56 -0
  77. package/dist/commands/daemon/stop.js.map +1 -0
  78. package/dist/commands/permit/allow.d.ts +20 -0
  79. package/dist/commands/permit/allow.d.ts.map +1 -0
  80. package/dist/commands/permit/allow.js +133 -0
  81. package/dist/commands/permit/allow.js.map +1 -0
  82. package/dist/commands/permit/deny.d.ts +12 -0
  83. package/dist/commands/permit/deny.d.ts.map +1 -0
  84. package/dist/commands/permit/deny.js +105 -0
  85. package/dist/commands/permit/deny.js.map +1 -0
  86. package/dist/commands/permit/index.d.ts +3 -0
  87. package/dist/commands/permit/index.d.ts.map +1 -0
  88. package/dist/commands/permit/index.js +37 -0
  89. package/dist/commands/permit/index.js.map +1 -0
  90. package/dist/commands/permit/ls.d.ts +18 -0
  91. package/dist/commands/permit/ls.d.ts.map +1 -0
  92. package/dist/commands/permit/ls.js +65 -0
  93. package/dist/commands/permit/ls.js.map +1 -0
  94. package/dist/commands/provider/index.d.ts +3 -0
  95. package/dist/commands/provider/index.d.ts.map +1 -0
  96. package/dist/commands/provider/index.js +22 -0
  97. package/dist/commands/provider/index.js.map +1 -0
  98. package/dist/commands/provider/ls.d.ts +17 -0
  99. package/dist/commands/provider/ls.d.ts.map +1 -0
  100. package/dist/commands/provider/ls.js +51 -0
  101. package/dist/commands/provider/ls.js.map +1 -0
  102. package/dist/commands/provider/models.d.ts +16 -0
  103. package/dist/commands/provider/models.d.ts.map +1 -0
  104. package/dist/commands/provider/models.js +45 -0
  105. package/dist/commands/provider/models.js.map +1 -0
  106. package/dist/commands/speech/download.d.ts +14 -0
  107. package/dist/commands/speech/download.d.ts.map +1 -0
  108. package/dist/commands/speech/download.js +46 -0
  109. package/dist/commands/speech/download.js.map +1 -0
  110. package/dist/commands/speech/index.d.ts +3 -0
  111. package/dist/commands/speech/index.d.ts.map +1 -0
  112. package/dist/commands/speech/index.js +25 -0
  113. package/dist/commands/speech/index.js.map +1 -0
  114. package/dist/commands/speech/models.d.ts +16 -0
  115. package/dist/commands/speech/models.d.ts.map +1 -0
  116. package/dist/commands/speech/models.js +49 -0
  117. package/dist/commands/speech/models.js.map +1 -0
  118. package/dist/commands/worktree/archive.d.ts +16 -0
  119. package/dist/commands/worktree/archive.d.ts.map +1 -0
  120. package/dist/commands/worktree/archive.js +98 -0
  121. package/dist/commands/worktree/archive.js.map +1 -0
  122. package/dist/commands/worktree/index.d.ts +3 -0
  123. package/dist/commands/worktree/index.d.ts.map +1 -0
  124. package/dist/commands/worktree/index.js +22 -0
  125. package/dist/commands/worktree/index.js.map +1 -0
  126. package/dist/commands/worktree/ls.d.ts +17 -0
  127. package/dist/commands/worktree/ls.d.ts.map +1 -0
  128. package/dist/commands/worktree/ls.js +89 -0
  129. package/dist/commands/worktree/ls.js.map +1 -0
  130. package/dist/index.d.ts +2 -0
  131. package/dist/index.d.ts.map +1 -0
  132. package/dist/index.js +7 -0
  133. package/dist/index.js.map +1 -0
  134. package/dist/output/index.d.ts +45 -0
  135. package/dist/output/index.d.ts.map +1 -0
  136. package/dist/output/index.js +47 -0
  137. package/dist/output/index.js.map +1 -0
  138. package/dist/output/json.d.ts +11 -0
  139. package/dist/output/json.d.ts.map +1 -0
  140. package/dist/output/json.js +37 -0
  141. package/dist/output/json.js.map +1 -0
  142. package/dist/output/quiet.d.ts +9 -0
  143. package/dist/output/quiet.d.ts.map +1 -0
  144. package/dist/output/quiet.js +22 -0
  145. package/dist/output/quiet.js.map +1 -0
  146. package/dist/output/render.d.ts +15 -0
  147. package/dist/output/render.d.ts.map +1 -0
  148. package/dist/output/render.js +80 -0
  149. package/dist/output/render.js.map +1 -0
  150. package/dist/output/table.d.ts +13 -0
  151. package/dist/output/table.d.ts.map +1 -0
  152. package/dist/output/table.js +135 -0
  153. package/dist/output/table.js.map +1 -0
  154. package/dist/output/types.d.ts +71 -0
  155. package/dist/output/types.d.ts.map +1 -0
  156. package/dist/output/types.js +8 -0
  157. package/dist/output/types.js.map +1 -0
  158. package/dist/output/with-output.d.ts +37 -0
  159. package/dist/output/with-output.d.ts.map +1 -0
  160. package/dist/output/with-output.js +78 -0
  161. package/dist/output/with-output.js.map +1 -0
  162. package/dist/output/yaml.d.ts +11 -0
  163. package/dist/output/yaml.d.ts.map +1 -0
  164. package/dist/output/yaml.js +38 -0
  165. package/dist/output/yaml.js.map +1 -0
  166. package/dist/utils/client.d.ts +35 -0
  167. package/dist/utils/client.d.ts.map +1 -0
  168. package/dist/utils/client.js +110 -0
  169. package/dist/utils/client.js.map +1 -0
  170. package/package.json +39 -0
@@ -0,0 +1,185 @@
1
+ import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
2
+ /** Schema for key-value display with custom serialization for JSON/YAML */
3
+ function createInspectSchema(agent) {
4
+ return {
5
+ idField: 'key',
6
+ columns: [
7
+ { header: 'KEY', field: 'key' },
8
+ {
9
+ header: 'VALUE',
10
+ field: 'value',
11
+ color: (_, item) => {
12
+ if (item.key === 'Status') {
13
+ if (item.value === 'running')
14
+ return 'green';
15
+ if (item.value === 'idle')
16
+ return 'yellow';
17
+ if (item.value === 'error')
18
+ return 'red';
19
+ }
20
+ return undefined;
21
+ },
22
+ },
23
+ ],
24
+ // For JSON/YAML, return the structured agent object
25
+ serialize: (_item) => agent,
26
+ };
27
+ }
28
+ /** Shorten home directory in path */
29
+ function shortenPath(path) {
30
+ const home = process.env.HOME;
31
+ if (home && path.startsWith(home)) {
32
+ return '~' + path.slice(home.length);
33
+ }
34
+ return path;
35
+ }
36
+ /** Format cost in USD */
37
+ function formatCost(costUsd) {
38
+ if (costUsd === 0)
39
+ return '$0.00';
40
+ if (costUsd < 0.01)
41
+ return `$${costUsd.toFixed(4)}`;
42
+ return `$${costUsd.toFixed(2)}`;
43
+ }
44
+ /** Convert agent snapshot to inspection data */
45
+ function toInspectData(snapshot) {
46
+ const lastUsage = snapshot.lastUsage
47
+ ? {
48
+ InputTokens: snapshot.lastUsage.inputTokens ?? 0,
49
+ OutputTokens: snapshot.lastUsage.outputTokens ?? 0,
50
+ CachedTokens: snapshot.lastUsage.cachedInputTokens ?? 0,
51
+ CostUsd: snapshot.lastUsage.totalCostUsd ?? 0,
52
+ }
53
+ : null;
54
+ const capabilities = snapshot.capabilities
55
+ ? {
56
+ Streaming: snapshot.capabilities.supportsStreaming ?? false,
57
+ Persistence: snapshot.capabilities.supportsSessionPersistence ?? false,
58
+ DynamicModes: snapshot.capabilities.supportsDynamicModes ?? false,
59
+ McpServers: snapshot.capabilities.supportsMcpServers ?? false,
60
+ }
61
+ : null;
62
+ // Extract worktree and parentAgentId from labels if they exist
63
+ const worktree = snapshot.labels?.['paseo.worktree'] ?? null;
64
+ const parentAgentId = snapshot.labels?.['paseo.parent-agent-id'] ?? null;
65
+ return {
66
+ Id: snapshot.id,
67
+ Name: snapshot.title ?? '-',
68
+ Provider: snapshot.provider,
69
+ Model: snapshot.model ?? '-',
70
+ Status: snapshot.status,
71
+ Mode: snapshot.currentModeId ?? 'default',
72
+ Cwd: snapshot.cwd,
73
+ CreatedAt: snapshot.createdAt,
74
+ UpdatedAt: snapshot.updatedAt,
75
+ LastUsage: lastUsage,
76
+ Capabilities: capabilities,
77
+ AvailableModes: snapshot.availableModes
78
+ ? snapshot.availableModes.map((m) => ({ id: m.id, label: m.label }))
79
+ : null,
80
+ PendingPermissions: (snapshot.pendingPermissions ?? []).map((p) => ({
81
+ id: p.id,
82
+ tool: p.name ?? 'unknown',
83
+ })),
84
+ Worktree: worktree,
85
+ ParentAgentId: parentAgentId,
86
+ };
87
+ }
88
+ /** Convert agent to key-value rows for table display */
89
+ function toInspectRows(agent) {
90
+ const rows = [
91
+ { key: 'Id', value: agent.Id },
92
+ { key: 'Name', value: agent.Name },
93
+ { key: 'Provider', value: agent.Provider },
94
+ { key: 'Model', value: agent.Model },
95
+ { key: 'Status', value: agent.Status },
96
+ { key: 'Mode', value: agent.Mode },
97
+ { key: 'Cwd', value: shortenPath(agent.Cwd) },
98
+ { key: 'CreatedAt', value: agent.CreatedAt },
99
+ { key: 'UpdatedAt', value: agent.UpdatedAt },
100
+ ];
101
+ if (agent.LastUsage) {
102
+ rows.push({
103
+ key: 'LastUsage',
104
+ value: `InputTokens: ${agent.LastUsage.InputTokens}, OutputTokens: ${agent.LastUsage.OutputTokens}, CachedTokens: ${agent.LastUsage.CachedTokens}, CostUsd: ${formatCost(agent.LastUsage.CostUsd)}`,
105
+ });
106
+ }
107
+ if (agent.Capabilities) {
108
+ rows.push({
109
+ key: 'Capabilities',
110
+ value: `Streaming: ${agent.Capabilities.Streaming}, Persistence: ${agent.Capabilities.Persistence}, DynamicModes: ${agent.Capabilities.DynamicModes}, McpServers: ${agent.Capabilities.McpServers}`,
111
+ });
112
+ }
113
+ if (agent.AvailableModes && agent.AvailableModes.length > 0) {
114
+ rows.push({
115
+ key: 'AvailableModes',
116
+ value: agent.AvailableModes.map((m) => `${m.id} (${m.label})`).join(', '),
117
+ });
118
+ }
119
+ rows.push({
120
+ key: 'PendingPermissions',
121
+ value: agent.PendingPermissions.length > 0
122
+ ? agent.PendingPermissions.map(p => `${p.id} (${p.tool})`).join(', ')
123
+ : '[]'
124
+ });
125
+ rows.push({ key: 'Worktree', value: agent.Worktree ?? 'null' });
126
+ rows.push({ key: 'ParentAgentId', value: agent.ParentAgentId ?? 'null' });
127
+ return rows;
128
+ }
129
+ export async function runInspectCommand(agentIdArg, options, _command) {
130
+ const host = getDaemonHost({ host: options.host });
131
+ // Validate arguments
132
+ if (!agentIdArg || agentIdArg.trim().length === 0) {
133
+ const error = {
134
+ code: 'MISSING_AGENT_ID',
135
+ message: 'Agent ID is required',
136
+ details: 'Usage: paseo agent inspect <id>',
137
+ };
138
+ throw error;
139
+ }
140
+ let client;
141
+ try {
142
+ client = await connectToDaemon({ host: options.host });
143
+ }
144
+ catch (err) {
145
+ const message = err instanceof Error ? err.message : String(err);
146
+ const error = {
147
+ code: 'DAEMON_NOT_RUNNING',
148
+ message: `Cannot connect to daemon at ${host}: ${message}`,
149
+ details: 'Start the daemon with: paseo daemon start',
150
+ };
151
+ throw error;
152
+ }
153
+ try {
154
+ const snapshot = await client.fetchAgent(agentIdArg);
155
+ if (!snapshot) {
156
+ const error = {
157
+ code: 'AGENT_NOT_FOUND',
158
+ message: `Agent not found: ${agentIdArg}`,
159
+ details: 'Use "paseo ls" to list available agents',
160
+ };
161
+ throw error;
162
+ }
163
+ await client.close();
164
+ const inspectData = toInspectData(snapshot);
165
+ return {
166
+ type: 'list',
167
+ data: toInspectRows(inspectData),
168
+ schema: createInspectSchema(inspectData),
169
+ };
170
+ }
171
+ catch (err) {
172
+ await client.close().catch(() => { });
173
+ // Re-throw CommandError as-is
174
+ if (err && typeof err === 'object' && 'code' in err) {
175
+ throw err;
176
+ }
177
+ const message = err instanceof Error ? err.message : String(err);
178
+ const error = {
179
+ code: 'INSPECT_FAILED',
180
+ message: `Failed to inspect agent: ${message}`,
181
+ };
182
+ throw error;
183
+ }
184
+ }
185
+ //# sourceMappingURL=inspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/commands/agent/inspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { Command } from 'commander';
2
+ import type { CommandOptions } from '../../output/index.js';
3
+ export interface AgentLogsOptions extends CommandOptions {
4
+ follow?: boolean;
5
+ tail?: string;
6
+ filter?: string;
7
+ since?: string;
8
+ }
9
+ export type AgentLogsResult = void;
10
+ export declare function runLogsCommand(id: string, options: AgentLogsOptions, _command: Command): Promise<AgentLogsResult>;
11
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/logs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAS3D,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAGD,MAAM,MAAM,eAAe,GAAG,IAAI,CAAA;AAkDlC,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,eAAe,CAAC,CA+F1B"}
@@ -0,0 +1,207 @@
1
+ import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
2
+ import { curateAgentActivity } from '@getpaseo/server';
3
+ function parseTailCount(raw) {
4
+ if (raw === undefined)
5
+ return undefined;
6
+ const parsed = Number.parseInt(raw, 10);
7
+ if (Number.isNaN(parsed) || parsed < 0) {
8
+ return undefined;
9
+ }
10
+ return parsed;
11
+ }
12
+ /**
13
+ * Check if a timeline item matches the filter type
14
+ */
15
+ function matchesFilter(item, filter) {
16
+ if (!filter)
17
+ return true;
18
+ const filterLower = filter.toLowerCase();
19
+ const type = item.type.toLowerCase();
20
+ switch (filterLower) {
21
+ case 'tools':
22
+ return type === 'tool_call';
23
+ case 'text':
24
+ return type === 'user_message' || type === 'assistant_message' || type === 'reasoning';
25
+ case 'errors':
26
+ return type === 'error';
27
+ case 'permissions':
28
+ // Permissions might be in tool_call status or a separate event type
29
+ return type.includes('permission');
30
+ default:
31
+ // If filter doesn't match predefined types, match against the actual type
32
+ return type.includes(filterLower);
33
+ }
34
+ }
35
+ /**
36
+ * Extract timeline items from an agent_stream_snapshot message
37
+ */
38
+ function extractTimelineFromSnapshot(message) {
39
+ const items = [];
40
+ for (const e of message.payload.events) {
41
+ if (e.event.type === 'timeline') {
42
+ items.push(e.event.item);
43
+ }
44
+ }
45
+ return items;
46
+ }
47
+ export async function runLogsCommand(id, options, _command) {
48
+ const host = getDaemonHost({ host: options.host });
49
+ if (!id) {
50
+ console.error('Error: Agent ID required');
51
+ console.error('Usage: paseo agent logs <id>');
52
+ process.exit(1);
53
+ }
54
+ let client;
55
+ try {
56
+ client = await connectToDaemon({ host: options.host });
57
+ }
58
+ catch (err) {
59
+ const message = err instanceof Error ? err.message : String(err);
60
+ console.error(`Error: Cannot connect to daemon at ${host}: ${message}`);
61
+ console.error('Start the daemon with: paseo daemon start');
62
+ process.exit(1);
63
+ }
64
+ try {
65
+ const agent = await client.fetchAgent(id);
66
+ if (!agent) {
67
+ console.error(`Error: No agent found matching: ${id}`);
68
+ console.error('Use `paseo ls` to list available agents');
69
+ await client.close();
70
+ process.exit(1);
71
+ }
72
+ const resolvedId = agent.id;
73
+ // For follow mode, we stream events continuously
74
+ if (options.follow) {
75
+ if (options.tail !== undefined && parseTailCount(options.tail) === undefined) {
76
+ console.error(`Error: Invalid --tail value: ${options.tail}`);
77
+ console.error('Usage: --tail <n> (where n is >= 0)');
78
+ await client.close().catch(() => { });
79
+ process.exit(1);
80
+ }
81
+ await runFollowMode(client, resolvedId, options);
82
+ return;
83
+ }
84
+ // For non-follow mode, initialize the agent to get timeline snapshot
85
+ // Set up handler for timeline events before initializing
86
+ const snapshotPromise = new Promise((resolve) => {
87
+ const timeout = setTimeout(() => resolve([]), 10000);
88
+ const unsubscribe = client.on('agent_stream_snapshot', (msg) => {
89
+ const message = msg;
90
+ if (message.type !== 'agent_stream_snapshot')
91
+ return;
92
+ if (message.payload.agentId !== resolvedId)
93
+ return;
94
+ clearTimeout(timeout);
95
+ unsubscribe();
96
+ resolve(extractTimelineFromSnapshot(message));
97
+ });
98
+ });
99
+ // Initialize agent to trigger timeline snapshot
100
+ try {
101
+ await client.initializeAgent(resolvedId);
102
+ }
103
+ catch {
104
+ // Agent might already be initialized, continue to collect from queue
105
+ }
106
+ // Get timeline from snapshot
107
+ let timelineItems = await snapshotPromise;
108
+ // Apply filter
109
+ if (options.filter) {
110
+ timelineItems = timelineItems.filter((item) => matchesFilter(item, options.filter));
111
+ }
112
+ const tailCount = parseTailCount(options.tail);
113
+ if (options.tail !== undefined && tailCount === undefined) {
114
+ console.error(`Error: Invalid --tail value: ${options.tail}`);
115
+ console.error('Usage: --tail <n> (where n is >= 0)');
116
+ await client.close().catch(() => { });
117
+ process.exit(1);
118
+ }
119
+ await client.close();
120
+ // Use curateAgentActivity to format the transcript
121
+ if (tailCount === 0) {
122
+ return;
123
+ }
124
+ const transcript = curateAgentActivity(timelineItems, tailCount !== undefined ? { maxItems: tailCount } : undefined);
125
+ console.log(transcript);
126
+ }
127
+ catch (err) {
128
+ const message = err instanceof Error ? err.message : String(err);
129
+ console.error(`Error: Failed to get logs: ${message}`);
130
+ await client.close().catch(() => { });
131
+ process.exit(1);
132
+ }
133
+ }
134
+ /**
135
+ * Follow mode: stream logs in real-time until interrupted
136
+ */
137
+ async function runFollowMode(client, agentId, options) {
138
+ const DEFAULT_FOLLOW_TAIL = 10;
139
+ const tailCount = parseTailCount(options.tail) ?? DEFAULT_FOLLOW_TAIL;
140
+ // First, get existing timeline
141
+ const snapshotPromise = new Promise((resolve) => {
142
+ const timeout = setTimeout(() => resolve([]), 10000);
143
+ const unsubscribe = client.on('agent_stream_snapshot', (msg) => {
144
+ const message = msg;
145
+ if (message.type !== 'agent_stream_snapshot')
146
+ return;
147
+ if (message.payload.agentId !== agentId)
148
+ return;
149
+ clearTimeout(timeout);
150
+ unsubscribe();
151
+ resolve(extractTimelineFromSnapshot(message));
152
+ });
153
+ });
154
+ // Initialize agent to trigger timeline snapshot
155
+ try {
156
+ await client.initializeAgent(agentId);
157
+ }
158
+ catch {
159
+ // Agent might already be initialized
160
+ }
161
+ // Get existing timeline
162
+ let existingItems = await snapshotPromise;
163
+ // Apply filter to existing items
164
+ if (options.filter) {
165
+ existingItems = existingItems.filter((item) => matchesFilter(item, options.filter));
166
+ }
167
+ // Print existing transcript (tail-like behavior)
168
+ if (tailCount > 0) {
169
+ const existingTranscript = curateAgentActivity(existingItems, { maxItems: tailCount });
170
+ if (existingTranscript !== 'No activity to display.') {
171
+ console.log(existingTranscript);
172
+ }
173
+ }
174
+ // Subscribe to new events
175
+ const tailLabel = tailCount === 0 ? 'no history' : `last ${tailCount} entr${tailCount === 1 ? 'y' : 'ies'}`;
176
+ console.log(`\n--- Following logs (${tailLabel}; Ctrl+C to stop) ---\n`);
177
+ const unsubscribe = client.on('agent_stream', (msg) => {
178
+ const message = msg;
179
+ if (message.type !== 'agent_stream')
180
+ return;
181
+ if (message.payload.agentId !== agentId)
182
+ return;
183
+ if (message.payload.event.type === 'timeline') {
184
+ const item = message.payload.event.item;
185
+ // Apply filter
186
+ if (options.filter && !matchesFilter(item, options.filter)) {
187
+ return;
188
+ }
189
+ // Print each timeline item as it arrives using the curator format
190
+ const transcript = curateAgentActivity([item]);
191
+ if (transcript !== 'No activity to display.') {
192
+ console.log(transcript);
193
+ }
194
+ }
195
+ });
196
+ // Wait for interrupt
197
+ await new Promise((resolve) => {
198
+ const cleanup = () => {
199
+ unsubscribe();
200
+ resolve();
201
+ };
202
+ process.on('SIGINT', cleanup);
203
+ process.on('SIGTERM', cleanup);
204
+ });
205
+ await client.close();
206
+ }
207
+ //# sourceMappingURL=logs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/commands/agent/logs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Command } from 'commander';
2
+ import type { CommandOptions, ListResult, OutputSchema } from '../../output/index.js';
3
+ /** Agent list item for display */
4
+ export interface AgentListItem {
5
+ id: string;
6
+ shortId: string;
7
+ name: string;
8
+ provider: string;
9
+ status: string;
10
+ cwd: string;
11
+ created: string;
12
+ }
13
+ /** Schema for agent ls output */
14
+ export declare const agentLsSchema: OutputSchema<AgentListItem>;
15
+ export type AgentLsResult = ListResult<AgentListItem>;
16
+ export interface AgentLsOptions extends CommandOptions {
17
+ /** -a: Include archived agents */
18
+ all?: boolean;
19
+ /** Legacy flag retained for CLI compatibility */
20
+ global?: boolean;
21
+ /** Filter by specific status */
22
+ status?: string;
23
+ /** Filter by specific cwd */
24
+ cwd?: string;
25
+ /** Filter by labels (key=value format) */
26
+ label?: string[];
27
+ }
28
+ /**
29
+ * Agent ls command semantics:
30
+ * - `paseo agent ls` → all non-archived agents
31
+ * - `paseo agent ls -a` → include archived agents
32
+ */
33
+ export declare function runLsCommand(options: AgentLsOptions, _command: Command): Promise<AgentLsResult>;
34
+ //# sourceMappingURL=ls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ls.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/ls.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,YAAY,EAAgB,MAAM,uBAAuB,CAAA;AAEnG,kCAAkC;AAClC,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;CAChB;AAuBD,iCAAiC;AACjC,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,aAAa,CAoBrD,CAAA;AAeD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;AAErD,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,kCAAkC;IAClC,GAAG,CAAC,EAAE,OAAO,CAAA;IACb,iDAAiD;IACjD,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,aAAa,CAAC,CAgGxB"}
@@ -0,0 +1,153 @@
1
+ import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
2
+ /** Helper to get relative time string */
3
+ function relativeTime(date) {
4
+ const now = Date.now();
5
+ const then = new Date(date).getTime();
6
+ const seconds = Math.floor((now - then) / 1000);
7
+ if (seconds < 60)
8
+ return 'just now';
9
+ if (seconds < 3600)
10
+ return `${Math.floor(seconds / 60)} minutes ago`;
11
+ if (seconds < 86400)
12
+ return `${Math.floor(seconds / 3600)} hours ago`;
13
+ return `${Math.floor(seconds / 86400)} days ago`;
14
+ }
15
+ /** Shorten home directory in path */
16
+ function shortenPath(path) {
17
+ const home = process.env.HOME;
18
+ if (home && path.startsWith(home)) {
19
+ return '~' + path.slice(home.length);
20
+ }
21
+ return path;
22
+ }
23
+ /** Schema for agent ls output */
24
+ export const agentLsSchema = {
25
+ idField: 'shortId',
26
+ columns: [
27
+ { header: 'AGENT ID', field: 'shortId', width: 12 },
28
+ { header: 'NAME', field: 'name', width: 20 },
29
+ { header: 'PROVIDER', field: 'provider', width: 15 },
30
+ {
31
+ header: 'STATUS',
32
+ field: 'status',
33
+ width: 10,
34
+ color: (value) => {
35
+ if (value === 'running')
36
+ return 'green';
37
+ if (value === 'idle')
38
+ return 'yellow';
39
+ if (value === 'error')
40
+ return 'red';
41
+ return undefined;
42
+ },
43
+ },
44
+ { header: 'CWD', field: 'cwd', width: 30 },
45
+ { header: 'CREATED', field: 'created', width: 15 },
46
+ ],
47
+ };
48
+ /** Transform agent snapshot to AgentListItem */
49
+ function toListItem(agent) {
50
+ return {
51
+ id: agent.id,
52
+ shortId: agent.id.slice(0, 7),
53
+ name: agent.title ?? '-',
54
+ provider: agent.model ? `${agent.provider}/${agent.model}` : agent.provider,
55
+ status: agent.status,
56
+ cwd: shortenPath(agent.cwd),
57
+ created: relativeTime(agent.createdAt),
58
+ };
59
+ }
60
+ /**
61
+ * Agent ls command semantics:
62
+ * - `paseo agent ls` → all non-archived agents
63
+ * - `paseo agent ls -a` → include archived agents
64
+ */
65
+ export async function runLsCommand(options, _command) {
66
+ const host = getDaemonHost({ host: options.host });
67
+ let client;
68
+ try {
69
+ client = await connectToDaemon({ host: options.host });
70
+ }
71
+ catch (err) {
72
+ const message = err instanceof Error ? err.message : String(err);
73
+ const error = {
74
+ code: 'DAEMON_NOT_RUNNING',
75
+ message: `Cannot connect to daemon at ${host}: ${message}`,
76
+ details: 'Start the daemon with: paseo daemon start',
77
+ };
78
+ throw error;
79
+ }
80
+ try {
81
+ let agents = await client.fetchAgents();
82
+ // By default, exclude archived agents. `-a` includes them.
83
+ if (!options.all) {
84
+ agents = agents.filter((a) => !a.archivedAt);
85
+ }
86
+ // If explicit status filter is provided, apply it.
87
+ if (options.status) {
88
+ agents = agents.filter((a) => a.status === options.status);
89
+ }
90
+ // Optional cwd filter.
91
+ if (options.cwd) {
92
+ const targetCwd = options.cwd.replace(/\/$/, '');
93
+ agents = agents.filter((a) => {
94
+ const agentCwd = a.cwd.replace(/\/$/, '');
95
+ return agentCwd === targetCwd || agentCwd.startsWith(targetCwd + '/');
96
+ });
97
+ }
98
+ // Parse --label filters (key=value).
99
+ const labelFilters = {};
100
+ if (options.label) {
101
+ for (const labelStr of options.label) {
102
+ const eqIndex = labelStr.indexOf('=');
103
+ if (eqIndex !== -1) {
104
+ const key = labelStr.slice(0, eqIndex);
105
+ const value = labelStr.slice(eqIndex + 1);
106
+ labelFilters[key] = value;
107
+ }
108
+ }
109
+ }
110
+ // Apply label filtering only when explicitly requested.
111
+ if (Object.keys(labelFilters).length > 0) {
112
+ agents = agents.filter((a) => {
113
+ const agentLabels = a.labels;
114
+ for (const [key, value] of Object.entries(labelFilters)) {
115
+ if (agentLabels[key] !== value) {
116
+ return false;
117
+ }
118
+ }
119
+ return true;
120
+ });
121
+ }
122
+ await client.close();
123
+ // Sort agents: running first, then idle, then others; within each group, most recent first
124
+ const statusOrder = { running: 0, idle: 1 };
125
+ agents.sort((a, b) => {
126
+ // Primary sort: by status
127
+ const aOrder = statusOrder[a.status] ?? 999;
128
+ const bOrder = statusOrder[b.status] ?? 999;
129
+ if (aOrder !== bOrder)
130
+ return aOrder - bOrder;
131
+ // Secondary sort: by creation time (most recent first)
132
+ const aTime = new Date(a.createdAt).getTime();
133
+ const bTime = new Date(b.createdAt).getTime();
134
+ return bTime - aTime;
135
+ });
136
+ const items = agents.map(toListItem);
137
+ return {
138
+ type: 'list',
139
+ data: items,
140
+ schema: agentLsSchema,
141
+ };
142
+ }
143
+ catch (err) {
144
+ await client.close().catch(() => { });
145
+ const message = err instanceof Error ? err.message : String(err);
146
+ const error = {
147
+ code: 'LIST_AGENTS_FAILED',
148
+ message: `Failed to list agents: ${message}`,
149
+ };
150
+ throw error;
151
+ }
152
+ }
153
+ //# sourceMappingURL=ls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ls.js","sourceRoot":"","sources":["../../../src/commands/agent/ls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Command } from 'commander';
2
+ import type { CommandOptions, OutputSchema, AnyCommandResult } from '../../output/index.js';
3
+ import type { AgentMode } from '@getpaseo/server';
4
+ /** Result for setting mode */
5
+ export interface SetModeResult {
6
+ agentId: string;
7
+ mode: string;
8
+ }
9
+ /** Schema for mode list output */
10
+ export declare const modeListSchema: OutputSchema<AgentMode>;
11
+ /** Schema for set mode output */
12
+ export declare const setModeSchema: OutputSchema<SetModeResult>;
13
+ export interface AgentModeOptions extends CommandOptions {
14
+ list?: boolean;
15
+ }
16
+ export type AgentModeResult = AnyCommandResult<any>;
17
+ export declare function runModeCommand(id: string, mode: string | undefined, options: AgentModeOptions, _command: Command): Promise<AgentModeResult>;
18
+ //# sourceMappingURL=mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EAEZ,gBAAgB,EACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAEjD,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;CACb;AAED,kCAAkC;AAClC,eAAO,MAAM,cAAc,EAAE,YAAY,CAAC,SAAS,CAOlD,CAAA;AAED,iCAAiC;AACjC,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,aAAa,CAMrD,CAAA;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAGD,MAAM,MAAM,eAAe,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;AAEnD,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,eAAe,CAAC,CAmF1B"}