@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.
- package/bin/paseo +2 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +150 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agent/archive.d.ts +17 -0
- package/dist/commands/agent/archive.d.ts.map +1 -0
- package/dist/commands/agent/archive.js +91 -0
- package/dist/commands/agent/archive.js.map +1 -0
- package/dist/commands/agent/attach.d.ts +10 -0
- package/dist/commands/agent/attach.d.ts.map +1 -0
- package/dist/commands/agent/attach.js +166 -0
- package/dist/commands/agent/attach.js.map +1 -0
- package/dist/commands/agent/index.d.ts +3 -0
- package/dist/commands/agent/index.d.ts.map +1 -0
- package/dist/commands/agent/index.js +112 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/agent/inspect.d.ts +14 -0
- package/dist/commands/agent/inspect.d.ts.map +1 -0
- package/dist/commands/agent/inspect.js +185 -0
- package/dist/commands/agent/inspect.js.map +1 -0
- package/dist/commands/agent/logs.d.ts +11 -0
- package/dist/commands/agent/logs.d.ts.map +1 -0
- package/dist/commands/agent/logs.js +207 -0
- package/dist/commands/agent/logs.js.map +1 -0
- package/dist/commands/agent/ls.d.ts +34 -0
- package/dist/commands/agent/ls.d.ts.map +1 -0
- package/dist/commands/agent/ls.js +153 -0
- package/dist/commands/agent/ls.js.map +1 -0
- package/dist/commands/agent/mode.d.ts +18 -0
- package/dist/commands/agent/mode.d.ts.map +1 -0
- package/dist/commands/agent/mode.js +97 -0
- package/dist/commands/agent/mode.js.map +1 -0
- package/dist/commands/agent/run.d.ts +27 -0
- package/dist/commands/agent/run.d.ts.map +1 -0
- package/dist/commands/agent/run.js +146 -0
- package/dist/commands/agent/run.js.map +1 -0
- package/dist/commands/agent/send.d.ts +16 -0
- package/dist/commands/agent/send.d.ts.map +1 -0
- package/dist/commands/agent/send.js +172 -0
- package/dist/commands/agent/send.js.map +1 -0
- package/dist/commands/agent/stop.d.ts +16 -0
- package/dist/commands/agent/stop.d.ts.map +1 -0
- package/dist/commands/agent/stop.js +104 -0
- package/dist/commands/agent/stop.js.map +1 -0
- package/dist/commands/agent/wait.d.ts +16 -0
- package/dist/commands/agent/wait.d.ts.map +1 -0
- package/dist/commands/agent/wait.js +171 -0
- package/dist/commands/agent/wait.js.map +1 -0
- package/dist/commands/daemon/index.d.ts +3 -0
- package/dist/commands/daemon/index.d.ts.map +1 -0
- package/dist/commands/daemon/index.js +41 -0
- package/dist/commands/daemon/index.js.map +1 -0
- package/dist/commands/daemon/local-daemon.d.ts +51 -0
- package/dist/commands/daemon/local-daemon.d.ts.map +1 -0
- package/dist/commands/daemon/local-daemon.js +298 -0
- package/dist/commands/daemon/local-daemon.js.map +1 -0
- package/dist/commands/daemon/pair.d.ts +8 -0
- package/dist/commands/daemon/pair.d.ts.map +1 -0
- package/dist/commands/daemon/pair.js +34 -0
- package/dist/commands/daemon/pair.js.map +1 -0
- package/dist/commands/daemon/restart.d.ts +12 -0
- package/dist/commands/daemon/restart.d.ts.map +1 -0
- package/dist/commands/daemon/restart.js +97 -0
- package/dist/commands/daemon/restart.js.map +1 -0
- package/dist/commands/daemon/start.d.ts +6 -0
- package/dist/commands/daemon/start.d.ts.map +1 -0
- package/dist/commands/daemon/start.js +121 -0
- package/dist/commands/daemon/start.js.map +1 -0
- package/dist/commands/daemon/status.d.ts +10 -0
- package/dist/commands/daemon/status.d.ts.map +1 -0
- package/dist/commands/daemon/status.js +119 -0
- package/dist/commands/daemon/status.js.map +1 -0
- package/dist/commands/daemon/stop.d.ts +12 -0
- package/dist/commands/daemon/stop.d.ts.map +1 -0
- package/dist/commands/daemon/stop.js +56 -0
- package/dist/commands/daemon/stop.js.map +1 -0
- package/dist/commands/permit/allow.d.ts +20 -0
- package/dist/commands/permit/allow.d.ts.map +1 -0
- package/dist/commands/permit/allow.js +133 -0
- package/dist/commands/permit/allow.js.map +1 -0
- package/dist/commands/permit/deny.d.ts +12 -0
- package/dist/commands/permit/deny.d.ts.map +1 -0
- package/dist/commands/permit/deny.js +105 -0
- package/dist/commands/permit/deny.js.map +1 -0
- package/dist/commands/permit/index.d.ts +3 -0
- package/dist/commands/permit/index.d.ts.map +1 -0
- package/dist/commands/permit/index.js +37 -0
- package/dist/commands/permit/index.js.map +1 -0
- package/dist/commands/permit/ls.d.ts +18 -0
- package/dist/commands/permit/ls.d.ts.map +1 -0
- package/dist/commands/permit/ls.js +65 -0
- package/dist/commands/permit/ls.js.map +1 -0
- package/dist/commands/provider/index.d.ts +3 -0
- package/dist/commands/provider/index.d.ts.map +1 -0
- package/dist/commands/provider/index.js +22 -0
- package/dist/commands/provider/index.js.map +1 -0
- package/dist/commands/provider/ls.d.ts +17 -0
- package/dist/commands/provider/ls.d.ts.map +1 -0
- package/dist/commands/provider/ls.js +51 -0
- package/dist/commands/provider/ls.js.map +1 -0
- package/dist/commands/provider/models.d.ts +16 -0
- package/dist/commands/provider/models.d.ts.map +1 -0
- package/dist/commands/provider/models.js +45 -0
- package/dist/commands/provider/models.js.map +1 -0
- package/dist/commands/speech/download.d.ts +14 -0
- package/dist/commands/speech/download.d.ts.map +1 -0
- package/dist/commands/speech/download.js +46 -0
- package/dist/commands/speech/download.js.map +1 -0
- package/dist/commands/speech/index.d.ts +3 -0
- package/dist/commands/speech/index.d.ts.map +1 -0
- package/dist/commands/speech/index.js +25 -0
- package/dist/commands/speech/index.js.map +1 -0
- package/dist/commands/speech/models.d.ts +16 -0
- package/dist/commands/speech/models.d.ts.map +1 -0
- package/dist/commands/speech/models.js +49 -0
- package/dist/commands/speech/models.js.map +1 -0
- package/dist/commands/worktree/archive.d.ts +16 -0
- package/dist/commands/worktree/archive.d.ts.map +1 -0
- package/dist/commands/worktree/archive.js +98 -0
- package/dist/commands/worktree/archive.js.map +1 -0
- package/dist/commands/worktree/index.d.ts +3 -0
- package/dist/commands/worktree/index.d.ts.map +1 -0
- package/dist/commands/worktree/index.js +22 -0
- package/dist/commands/worktree/index.js.map +1 -0
- package/dist/commands/worktree/ls.d.ts +17 -0
- package/dist/commands/worktree/ls.d.ts.map +1 -0
- package/dist/commands/worktree/ls.js +89 -0
- package/dist/commands/worktree/ls.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/output/index.d.ts +45 -0
- package/dist/output/index.d.ts.map +1 -0
- package/dist/output/index.js +47 -0
- package/dist/output/index.js.map +1 -0
- package/dist/output/json.d.ts +11 -0
- package/dist/output/json.d.ts.map +1 -0
- package/dist/output/json.js +37 -0
- package/dist/output/json.js.map +1 -0
- package/dist/output/quiet.d.ts +9 -0
- package/dist/output/quiet.d.ts.map +1 -0
- package/dist/output/quiet.js +22 -0
- package/dist/output/quiet.js.map +1 -0
- package/dist/output/render.d.ts +15 -0
- package/dist/output/render.d.ts.map +1 -0
- package/dist/output/render.js +80 -0
- package/dist/output/render.js.map +1 -0
- package/dist/output/table.d.ts +13 -0
- package/dist/output/table.d.ts.map +1 -0
- package/dist/output/table.js +135 -0
- package/dist/output/table.js.map +1 -0
- package/dist/output/types.d.ts +71 -0
- package/dist/output/types.d.ts.map +1 -0
- package/dist/output/types.js +8 -0
- package/dist/output/types.js.map +1 -0
- package/dist/output/with-output.d.ts +37 -0
- package/dist/output/with-output.d.ts.map +1 -0
- package/dist/output/with-output.js +78 -0
- package/dist/output/with-output.js.map +1 -0
- package/dist/output/yaml.d.ts +11 -0
- package/dist/output/yaml.d.ts.map +1 -0
- package/dist/output/yaml.js +38 -0
- package/dist/output/yaml.js.map +1 -0
- package/dist/utils/client.d.ts +35 -0
- package/dist/utils/client.d.ts.map +1 -0
- package/dist/utils/client.js +110 -0
- package/dist/utils/client.js.map +1 -0
- package/package.json +39 -0
package/bin/paseo
ADDED
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AA2BnC,wBAAgB,SAAS,IAAI,OAAO,CAkJnC"}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { createAgentCommand } from './commands/agent/index.js';
|
|
3
|
+
import { createDaemonCommand } from './commands/daemon/index.js';
|
|
4
|
+
import { createPermitCommand } from './commands/permit/index.js';
|
|
5
|
+
import { createProviderCommand } from './commands/provider/index.js';
|
|
6
|
+
import { createSpeechCommand } from './commands/speech/index.js';
|
|
7
|
+
import { createWorktreeCommand } from './commands/worktree/index.js';
|
|
8
|
+
import { startCommand as daemonStartCommand } from './commands/daemon/start.js';
|
|
9
|
+
import { runStatusCommand as runDaemonStatusCommand } from './commands/daemon/status.js';
|
|
10
|
+
import { runRestartCommand as runDaemonRestartCommand } from './commands/daemon/restart.js';
|
|
11
|
+
import { runLsCommand } from './commands/agent/ls.js';
|
|
12
|
+
import { runRunCommand } from './commands/agent/run.js';
|
|
13
|
+
import { runLogsCommand } from './commands/agent/logs.js';
|
|
14
|
+
import { runStopCommand } from './commands/agent/stop.js';
|
|
15
|
+
import { runSendCommand } from './commands/agent/send.js';
|
|
16
|
+
import { runInspectCommand } from './commands/agent/inspect.js';
|
|
17
|
+
import { runWaitCommand } from './commands/agent/wait.js';
|
|
18
|
+
import { runAttachCommand } from './commands/agent/attach.js';
|
|
19
|
+
import { withOutput } from './output/index.js';
|
|
20
|
+
const VERSION = '0.1.0';
|
|
21
|
+
// Helper function to collect multiple option values into an array
|
|
22
|
+
function collectMultiple(value, previous) {
|
|
23
|
+
return previous.concat([value]);
|
|
24
|
+
}
|
|
25
|
+
export function createCli() {
|
|
26
|
+
const program = new Command();
|
|
27
|
+
program
|
|
28
|
+
.name('paseo')
|
|
29
|
+
.description('Paseo CLI - control your AI coding agents from the command line')
|
|
30
|
+
.version(VERSION, '-v, --version', 'output the version number')
|
|
31
|
+
// Global output options
|
|
32
|
+
.option('-o, --format <format>', 'output format: table, json, yaml', 'table')
|
|
33
|
+
.option('--json', 'output in JSON format (alias for --format json)')
|
|
34
|
+
.option('-q, --quiet', 'minimal output (IDs only)')
|
|
35
|
+
.option('--no-headers', 'omit table headers')
|
|
36
|
+
.option('--no-color', 'disable colored output');
|
|
37
|
+
// Primary agent commands (top-level)
|
|
38
|
+
program
|
|
39
|
+
.command('ls')
|
|
40
|
+
.description('List agents. By default excludes archived agents.')
|
|
41
|
+
.option('-a, --all', 'Include archived agents')
|
|
42
|
+
.option('-g, --global', 'Legacy no-op (kept for compatibility)')
|
|
43
|
+
.option('--label <key=value>', 'Filter by label (can be used multiple times)', collectMultiple, [])
|
|
44
|
+
.option('--json', 'Output in JSON format')
|
|
45
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
46
|
+
.action(withOutput(runLsCommand));
|
|
47
|
+
program
|
|
48
|
+
.command('run')
|
|
49
|
+
.description('Create and start an agent with a task')
|
|
50
|
+
.argument('<prompt>', 'The task/prompt for the agent')
|
|
51
|
+
.option('-d, --detach', 'Run in background (detached)')
|
|
52
|
+
.option('--name <name>', 'Assign a name/title to the agent')
|
|
53
|
+
.option('--provider <provider>', 'Agent provider: claude | codex | opencode', 'claude')
|
|
54
|
+
.option('--model <model>', 'Model to use (e.g., claude-sonnet-4-20250514, claude-3-5-haiku-20241022)')
|
|
55
|
+
.option('--mode <mode>', 'Provider-specific mode (e.g., plan, default, bypass)')
|
|
56
|
+
.option('--worktree <name>', 'Create agent in a new git worktree')
|
|
57
|
+
.option('--base <branch>', 'Base branch for worktree (default: current branch)')
|
|
58
|
+
.option('--image <path>', 'Attach image(s) to the initial prompt (can be used multiple times)', collectMultiple, [])
|
|
59
|
+
.option('--cwd <path>', 'Working directory (default: current)')
|
|
60
|
+
.option('--label <key=value>', 'Add label(s) to the agent (can be used multiple times)', collectMultiple, [])
|
|
61
|
+
.option('--ui', 'Mark as UI agent (equivalent to --label ui=true)')
|
|
62
|
+
.option('--json', 'Output in JSON format')
|
|
63
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
64
|
+
.action(withOutput(runRunCommand));
|
|
65
|
+
program
|
|
66
|
+
.command('attach')
|
|
67
|
+
.description("Attach to a running agent's output stream")
|
|
68
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
69
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
70
|
+
.action(runAttachCommand);
|
|
71
|
+
program
|
|
72
|
+
.command('logs')
|
|
73
|
+
.description('View agent activity/timeline')
|
|
74
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
75
|
+
.option('-f, --follow', 'Follow log output (streaming)')
|
|
76
|
+
.option('--tail <n>', 'Show last n entries')
|
|
77
|
+
.option('--filter <type>', 'Filter by event type (tools, text, errors, permissions)')
|
|
78
|
+
.option('--since <time>', 'Show logs since timestamp')
|
|
79
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
80
|
+
.action(runLogsCommand);
|
|
81
|
+
program
|
|
82
|
+
.command('stop')
|
|
83
|
+
.description('Stop an agent (cancel if running, then terminate)')
|
|
84
|
+
.argument('[id]', 'Agent ID (or prefix) - optional if --all or --cwd specified')
|
|
85
|
+
.option('--all', 'Stop all agents')
|
|
86
|
+
.option('--cwd <path>', 'Stop all agents in directory')
|
|
87
|
+
.option('--json', 'Output in JSON format')
|
|
88
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
89
|
+
.action(withOutput(runStopCommand));
|
|
90
|
+
program
|
|
91
|
+
.command('send')
|
|
92
|
+
.description('Send a message/task to an existing agent')
|
|
93
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
94
|
+
.argument('<prompt>', 'The message to send')
|
|
95
|
+
.option('--no-wait', 'Return immediately without waiting for completion')
|
|
96
|
+
.option('--image <path>', 'Attach image(s) to the message', collectMultiple, [])
|
|
97
|
+
.option('--json', 'Output in JSON format')
|
|
98
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
99
|
+
.action(withOutput(runSendCommand));
|
|
100
|
+
program
|
|
101
|
+
.command('inspect')
|
|
102
|
+
.description('Show detailed information about an agent')
|
|
103
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
104
|
+
.option('--json', 'Output in JSON format')
|
|
105
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
106
|
+
.action(withOutput(runInspectCommand));
|
|
107
|
+
program
|
|
108
|
+
.command('wait')
|
|
109
|
+
.description('Wait for an agent to become idle')
|
|
110
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
111
|
+
.option('--timeout <seconds>', 'Maximum wait time (default: 600)')
|
|
112
|
+
.option('--json', 'Output in JSON format')
|
|
113
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
114
|
+
.action(withOutput(runWaitCommand));
|
|
115
|
+
// Top-level local daemon shortcuts
|
|
116
|
+
program.addCommand(daemonStartCommand());
|
|
117
|
+
program
|
|
118
|
+
.command('status')
|
|
119
|
+
.description('Show local daemon status (alias for "paseo daemon status")')
|
|
120
|
+
.option('--json', 'Output in JSON format')
|
|
121
|
+
.option('--home <path>', 'Paseo home directory (default: ~/.paseo)')
|
|
122
|
+
.action(withOutput(runDaemonStatusCommand));
|
|
123
|
+
program
|
|
124
|
+
.command('restart')
|
|
125
|
+
.description('Restart local daemon (alias for "paseo daemon restart")')
|
|
126
|
+
.option('--json', 'Output in JSON format')
|
|
127
|
+
.option('--home <path>', 'Paseo home directory (default: ~/.paseo)')
|
|
128
|
+
.option('--timeout <seconds>', 'Wait timeout before force step (default: 15)')
|
|
129
|
+
.option('--force', 'Send SIGKILL if graceful stop times out')
|
|
130
|
+
.option('--listen <listen>', 'Listen target for restarted daemon (host:port, port, or unix socket)')
|
|
131
|
+
.option('--port <port>', 'Port for restarted daemon listen target')
|
|
132
|
+
.option('--no-relay', 'Disable relay on restarted daemon')
|
|
133
|
+
.option('--no-mcp', 'Disable Agent MCP on restarted daemon')
|
|
134
|
+
.option('--allowed-hosts <hosts>', 'Comma-separated Host allowlist values (example: "localhost,.example.com" or "true")')
|
|
135
|
+
.action(withOutput(runDaemonRestartCommand));
|
|
136
|
+
// Advanced agent commands (less common operations)
|
|
137
|
+
program.addCommand(createAgentCommand());
|
|
138
|
+
// Daemon commands
|
|
139
|
+
program.addCommand(createDaemonCommand());
|
|
140
|
+
// Permission commands
|
|
141
|
+
program.addCommand(createPermitCommand());
|
|
142
|
+
// Provider commands
|
|
143
|
+
program.addCommand(createProviderCommand());
|
|
144
|
+
// Speech model commands
|
|
145
|
+
program.addCommand(createSpeechCommand());
|
|
146
|
+
// Worktree commands
|
|
147
|
+
program.addCommand(createWorktreeCommand());
|
|
148
|
+
return program;
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAC/E,OAAO,EAAE,gBAAgB,IAAI,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACxF,OAAO,EAAE,iBAAiB,IAAI,uBAAuB,EAAE,MAAM,8BAA8B,CAAA;AAC3F,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAE9C,MAAM,OAAO,GAAG,OAAO,CAAA;AAEvB,kEAAkE;AAClE,SAAS,eAAe,CAAC,KAAa,EAAE,QAAkB;IACxD,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAA;AACjC,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;IAE7B,OAAO;SACJ,IAAI,CAAC,OAAO,CAAC;SACb,WAAW,CAAC,iEAAiE,CAAC;SAC9E,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,2BAA2B,CAAC;QAC/D,wBAAwB;SACvB,MAAM,CAAC,uBAAuB,EAAE,kCAAkC,EAAE,OAAO,CAAC;SAC5E,MAAM,CAAC,QAAQ,EAAE,iDAAiD,CAAC;SACnE,MAAM,CAAC,aAAa,EAAE,2BAA2B,CAAC;SAClD,MAAM,CAAC,cAAc,EAAE,oBAAoB,CAAC;SAC5C,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAAA;IAEjD,qCAAqC;IACrC,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,mDAAmD,CAAC;SAChE,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;SAC9C,MAAM,CAAC,cAAc,EAAE,uCAAuC,CAAC;SAC/D,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,EAAE,eAAe,EAAE,EAAE,CAAC;SAClG,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAA;IAEnC,OAAO;SACJ,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,uCAAuC,CAAC;SACpD,QAAQ,CAAC,UAAU,EAAE,+BAA+B,CAAC;SACrD,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,eAAe,EAAE,kCAAkC,CAAC;SAC3D,MAAM,CAAC,uBAAuB,EAAE,2CAA2C,EAAE,QAAQ,CAAC;SACtF,MAAM,CAAC,iBAAiB,EAAE,0EAA0E,CAAC;SACrG,MAAM,CAAC,eAAe,EAAE,sDAAsD,CAAC;SAC/E,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,CAAC;SACjE,MAAM,CAAC,iBAAiB,EAAE,oDAAoD,CAAC;SAC/E,MAAM,CAAC,gBAAgB,EAAE,oEAAoE,EAAE,eAAe,EAAE,EAAE,CAAC;SACnH,MAAM,CAAC,cAAc,EAAE,sCAAsC,CAAC;SAC9D,MAAM,CAAC,qBAAqB,EAAE,wDAAwD,EAAE,eAAe,EAAE,EAAE,CAAC;SAC5G,MAAM,CAAC,MAAM,EAAE,kDAAkD,CAAC;SAClE,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAA;IAEpC,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,2CAA2C,CAAC;SACxD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,gBAAgB,CAAC,CAAA;IAE3B,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,8BAA8B,CAAC;SAC3C,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,cAAc,EAAE,+BAA+B,CAAC;SACvD,MAAM,CAAC,YAAY,EAAE,qBAAqB,CAAC;SAC3C,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,CAAC;SACpF,MAAM,CAAC,gBAAgB,EAAE,2BAA2B,CAAC;SACrD,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,cAAc,CAAC,CAAA;IAEzB,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,mDAAmD,CAAC;SAChE,QAAQ,CAAC,MAAM,EAAE,6DAA6D,CAAC;SAC/E,MAAM,CAAC,OAAO,EAAE,iBAAiB,CAAC;SAClC,MAAM,CAAC,cAAc,EAAE,8BAA8B,CAAC;SACtD,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAA;IAErC,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;SACxC,QAAQ,CAAC,UAAU,EAAE,qBAAqB,CAAC;SAC3C,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAAC;SACxE,MAAM,CAAC,gBAAgB,EAAE,gCAAgC,EAAE,eAAe,EAAE,EAAE,CAAC;SAC/E,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAA;IAErC,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAExC,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,kCAAkC,CAAC;SAC/C,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;SACxC,MAAM,CAAC,qBAAqB,EAAE,kCAAkC,CAAC;SACjE,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAA;IAErC,mCAAmC;IACnC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAExC,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,4DAA4D,CAAC;SACzE,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;SACnE,MAAM,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAA;IAE7C,OAAO;SACJ,OAAO,CAAC,SAAS,CAAC;SAClB,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;SACzC,MAAM,CAAC,eAAe,EAAE,0CAA0C,CAAC;SACnE,MAAM,CAAC,qBAAqB,EAAE,8CAA8C,CAAC;SAC7E,MAAM,CAAC,SAAS,EAAE,yCAAyC,CAAC;SAC5D,MAAM,CAAC,mBAAmB,EAAE,sEAAsE,CAAC;SACnG,MAAM,CAAC,eAAe,EAAE,yCAAyC,CAAC;SAClE,MAAM,CAAC,YAAY,EAAE,mCAAmC,CAAC;SACzD,MAAM,CAAC,UAAU,EAAE,uCAAuC,CAAC;SAC3D,MAAM,CACL,yBAAyB,EACzB,qFAAqF,CACtF;SACA,MAAM,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAA;IAE9C,mDAAmD;IACnD,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAA;IAExC,kBAAkB;IAClB,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAEzC,sBAAsB;IACtB,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAEzC,oBAAoB;IACpB,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAA;IAE3C,wBAAwB;IACxB,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAA;IAEzC,oBAAoB;IACpB,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAA;IAE3C,OAAO,OAAO,CAAA;AAChB,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import type { CommandOptions, SingleResult, OutputSchema } from '../../output/index.js';
|
|
3
|
+
/** Result type for agent archive command */
|
|
4
|
+
export interface AgentArchiveResult {
|
|
5
|
+
agentId: string;
|
|
6
|
+
status: 'archived';
|
|
7
|
+
archivedAt: string;
|
|
8
|
+
}
|
|
9
|
+
/** Schema for archive command output */
|
|
10
|
+
export declare const archiveSchema: OutputSchema<AgentArchiveResult>;
|
|
11
|
+
export interface AgentArchiveOptions extends CommandOptions {
|
|
12
|
+
force?: boolean;
|
|
13
|
+
host?: string;
|
|
14
|
+
}
|
|
15
|
+
export type AgentArchiveCommandResult = SingleResult<AgentArchiveResult>;
|
|
16
|
+
export declare function runArchiveCommand(agentIdArg: string, options: AgentArchiveOptions, _command: Command): Promise<AgentArchiveCommandResult>;
|
|
17
|
+
//# sourceMappingURL=archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/archive.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAgB,MAAM,uBAAuB,CAAA;AAErG,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,UAAU,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wCAAwC;AACxC,eAAO,MAAM,aAAa,EAAE,YAAY,CAAC,kBAAkB,CAO1D,CAAA;AAED,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,CAAC,kBAAkB,CAAC,CAAA;AAExE,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,yBAAyB,CAAC,CAuFpC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
|
|
2
|
+
/** Schema for archive command output */
|
|
3
|
+
export const archiveSchema = {
|
|
4
|
+
idField: 'agentId',
|
|
5
|
+
columns: [
|
|
6
|
+
{ header: 'AGENT ID', field: 'agentId' },
|
|
7
|
+
{ header: 'STATUS', field: 'status' },
|
|
8
|
+
{ header: 'ARCHIVED AT', field: 'archivedAt' },
|
|
9
|
+
],
|
|
10
|
+
};
|
|
11
|
+
export async function runArchiveCommand(agentIdArg, options, _command) {
|
|
12
|
+
const host = getDaemonHost({ host: options.host });
|
|
13
|
+
// Validate arguments
|
|
14
|
+
if (!agentIdArg || agentIdArg.trim().length === 0) {
|
|
15
|
+
const error = {
|
|
16
|
+
code: 'MISSING_AGENT_ID',
|
|
17
|
+
message: 'Agent ID is required',
|
|
18
|
+
details: 'Usage: paseo agent archive <id>',
|
|
19
|
+
};
|
|
20
|
+
throw error;
|
|
21
|
+
}
|
|
22
|
+
let client;
|
|
23
|
+
try {
|
|
24
|
+
client = await connectToDaemon({ host: options.host });
|
|
25
|
+
}
|
|
26
|
+
catch (err) {
|
|
27
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
28
|
+
const error = {
|
|
29
|
+
code: 'DAEMON_NOT_RUNNING',
|
|
30
|
+
message: `Cannot connect to daemon at ${host}: ${message}`,
|
|
31
|
+
details: 'Start the daemon with: paseo daemon start',
|
|
32
|
+
};
|
|
33
|
+
throw error;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const agent = await client.fetchAgent(agentIdArg);
|
|
37
|
+
if (!agent) {
|
|
38
|
+
const error = {
|
|
39
|
+
code: 'AGENT_NOT_FOUND',
|
|
40
|
+
message: `Agent not found: ${agentIdArg}`,
|
|
41
|
+
details: 'Use "paseo ls" to list available agents',
|
|
42
|
+
};
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
const agentId = agent.id;
|
|
46
|
+
// Check if agent is already archived
|
|
47
|
+
if (agent.archivedAt) {
|
|
48
|
+
const error = {
|
|
49
|
+
code: 'AGENT_ALREADY_ARCHIVED',
|
|
50
|
+
message: `Agent ${agentId.slice(0, 7)} is already archived`,
|
|
51
|
+
details: `Archived at: ${agent.archivedAt}`,
|
|
52
|
+
};
|
|
53
|
+
throw error;
|
|
54
|
+
}
|
|
55
|
+
// Check if agent is running and reject unless --force is set
|
|
56
|
+
if (agent.status === 'running' && !options.force) {
|
|
57
|
+
const error = {
|
|
58
|
+
code: 'AGENT_RUNNING',
|
|
59
|
+
message: `Agent ${agentId.slice(0, 7)} is currently running`,
|
|
60
|
+
details: 'Use --force to archive a running agent, or stop it first with: paseo agent stop',
|
|
61
|
+
};
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
// Archive the agent
|
|
65
|
+
const result = await client.archiveAgent(agentId);
|
|
66
|
+
await client.close();
|
|
67
|
+
return {
|
|
68
|
+
type: 'single',
|
|
69
|
+
data: {
|
|
70
|
+
agentId,
|
|
71
|
+
status: 'archived',
|
|
72
|
+
archivedAt: result.archivedAt,
|
|
73
|
+
},
|
|
74
|
+
schema: archiveSchema,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
await client.close().catch(() => { });
|
|
79
|
+
// Re-throw CommandError as-is
|
|
80
|
+
if (err && typeof err === 'object' && 'code' in err) {
|
|
81
|
+
throw err;
|
|
82
|
+
}
|
|
83
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
84
|
+
const error = {
|
|
85
|
+
code: 'ARCHIVE_FAILED',
|
|
86
|
+
message: `Failed to archive agent: ${message}`,
|
|
87
|
+
};
|
|
88
|
+
throw error;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"archive.js","sourceRoot":"","sources":["../../../src/commands/agent/archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
export interface AgentAttachOptions {
|
|
3
|
+
host?: string;
|
|
4
|
+
[key: string]: unknown;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Attach to a running agent's output stream
|
|
8
|
+
*/
|
|
9
|
+
export declare function runAttachCommand(id: string, options: AgentAttachOptions, _command: Command): Promise<void>;
|
|
10
|
+
//# sourceMappingURL=attach.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/attach.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAUxC,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAgFD;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,IAAI,CAAC,CAwGf"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { connectToDaemon, getDaemonHost } from '../../utils/client.js';
|
|
2
|
+
/**
|
|
3
|
+
* Format and print a timeline item to the terminal
|
|
4
|
+
*/
|
|
5
|
+
function printTimelineItem(item) {
|
|
6
|
+
switch (item.type) {
|
|
7
|
+
case 'assistant_message':
|
|
8
|
+
// Print assistant text directly
|
|
9
|
+
process.stdout.write(item.text);
|
|
10
|
+
break;
|
|
11
|
+
case 'reasoning':
|
|
12
|
+
// Print reasoning in a muted color if available
|
|
13
|
+
console.log(`\n[Reasoning] ${item.text}`);
|
|
14
|
+
break;
|
|
15
|
+
case 'tool_call': {
|
|
16
|
+
const toolName = item.name;
|
|
17
|
+
const status = item.status ?? 'started';
|
|
18
|
+
console.log(`\n[Tool: ${toolName}] ${status}`);
|
|
19
|
+
break;
|
|
20
|
+
}
|
|
21
|
+
case 'todo': {
|
|
22
|
+
const completed = item.items.filter((i) => i.completed).length;
|
|
23
|
+
const total = item.items.length;
|
|
24
|
+
console.log(`\n[Todo] ${completed}/${total} completed`);
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
case 'error':
|
|
28
|
+
console.error(`\n[Error] ${item.message}`);
|
|
29
|
+
break;
|
|
30
|
+
case 'user_message':
|
|
31
|
+
console.log(`\n[User] ${item.text}`);
|
|
32
|
+
break;
|
|
33
|
+
default:
|
|
34
|
+
// Unknown item type, skip
|
|
35
|
+
break;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Format and print a stream event to the terminal
|
|
40
|
+
*/
|
|
41
|
+
function printStreamEvent(event) {
|
|
42
|
+
switch (event.type) {
|
|
43
|
+
case 'timeline':
|
|
44
|
+
// Print the timeline item
|
|
45
|
+
printTimelineItem(event.item);
|
|
46
|
+
break;
|
|
47
|
+
case 'permission_requested':
|
|
48
|
+
console.log(`\n[Permission Required] ${event.request.name}`);
|
|
49
|
+
if (event.request.description) {
|
|
50
|
+
console.log(` ${event.request.description}`);
|
|
51
|
+
}
|
|
52
|
+
break;
|
|
53
|
+
case 'permission_resolved':
|
|
54
|
+
console.log(`\n[Permission ${event.resolution.behavior}]`);
|
|
55
|
+
break;
|
|
56
|
+
case 'turn_failed':
|
|
57
|
+
console.error(`\n[Turn Failed] ${event.error}`);
|
|
58
|
+
break;
|
|
59
|
+
case 'attention_required':
|
|
60
|
+
console.log(`\n[Attention Required: ${event.reason}]`);
|
|
61
|
+
break;
|
|
62
|
+
default:
|
|
63
|
+
// Other event types are internal
|
|
64
|
+
break;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Attach to a running agent's output stream
|
|
69
|
+
*/
|
|
70
|
+
export async function runAttachCommand(id, options, _command) {
|
|
71
|
+
const host = getDaemonHost({ host: options.host });
|
|
72
|
+
if (!id) {
|
|
73
|
+
console.error('Error: Agent ID required');
|
|
74
|
+
console.error('Usage: paseo attach <id>');
|
|
75
|
+
process.exit(1);
|
|
76
|
+
}
|
|
77
|
+
let client;
|
|
78
|
+
try {
|
|
79
|
+
client = await connectToDaemon({ host: options.host });
|
|
80
|
+
}
|
|
81
|
+
catch (err) {
|
|
82
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
83
|
+
console.error(`Error: Cannot connect to daemon at ${host}: ${message}`);
|
|
84
|
+
console.error('Start the daemon with: paseo daemon start');
|
|
85
|
+
process.exit(1);
|
|
86
|
+
}
|
|
87
|
+
try {
|
|
88
|
+
const agent = await client.fetchAgent(id);
|
|
89
|
+
if (!agent) {
|
|
90
|
+
console.error(`Error: No agent found matching: ${id}`);
|
|
91
|
+
console.error('Use `paseo ls` to list available agents');
|
|
92
|
+
await client.close();
|
|
93
|
+
process.exit(1);
|
|
94
|
+
}
|
|
95
|
+
const resolvedId = agent.id;
|
|
96
|
+
// Print header
|
|
97
|
+
console.log(`Attaching to agent ${resolvedId.substring(0, 7)}...`);
|
|
98
|
+
console.log(`(Press Ctrl+C to detach)\n`);
|
|
99
|
+
// Get existing output from snapshot
|
|
100
|
+
const snapshotPromise = new Promise((resolve) => {
|
|
101
|
+
const timeout = setTimeout(() => resolve(), 5000);
|
|
102
|
+
const unsubscribe = client.on('agent_stream_snapshot', (msg) => {
|
|
103
|
+
const message = msg;
|
|
104
|
+
if (message.type !== 'agent_stream_snapshot')
|
|
105
|
+
return;
|
|
106
|
+
if (message.payload.agentId !== resolvedId)
|
|
107
|
+
return;
|
|
108
|
+
clearTimeout(timeout);
|
|
109
|
+
unsubscribe();
|
|
110
|
+
// Print recent events from snapshot
|
|
111
|
+
for (const e of message.payload.events) {
|
|
112
|
+
printStreamEvent(e.event);
|
|
113
|
+
}
|
|
114
|
+
resolve();
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
// Initialize agent to trigger snapshot
|
|
118
|
+
try {
|
|
119
|
+
await client.initializeAgent(resolvedId);
|
|
120
|
+
}
|
|
121
|
+
catch {
|
|
122
|
+
// Agent might already be initialized, continue
|
|
123
|
+
}
|
|
124
|
+
// Wait for snapshot
|
|
125
|
+
await snapshotPromise;
|
|
126
|
+
// Subscribe to new events
|
|
127
|
+
const unsubscribe = client.on('agent_stream', (msg) => {
|
|
128
|
+
const message = msg;
|
|
129
|
+
if (message.type !== 'agent_stream')
|
|
130
|
+
return;
|
|
131
|
+
if (message.payload.agentId !== resolvedId)
|
|
132
|
+
return;
|
|
133
|
+
printStreamEvent(message.payload.event);
|
|
134
|
+
});
|
|
135
|
+
// Handle Ctrl+C to detach gracefully
|
|
136
|
+
let detached = false;
|
|
137
|
+
const detach = () => {
|
|
138
|
+
if (detached)
|
|
139
|
+
return;
|
|
140
|
+
detached = true;
|
|
141
|
+
console.log('\n\nDetaching from agent...');
|
|
142
|
+
unsubscribe();
|
|
143
|
+
client
|
|
144
|
+
.close()
|
|
145
|
+
.then(() => {
|
|
146
|
+
process.exit(0);
|
|
147
|
+
})
|
|
148
|
+
.catch(() => {
|
|
149
|
+
process.exit(1);
|
|
150
|
+
});
|
|
151
|
+
};
|
|
152
|
+
process.on('SIGINT', detach);
|
|
153
|
+
process.on('SIGTERM', detach);
|
|
154
|
+
// Keep the process alive
|
|
155
|
+
await new Promise(() => {
|
|
156
|
+
// Wait indefinitely until interrupted
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
await client.close().catch(() => { });
|
|
161
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
162
|
+
console.error(`Error: Failed to attach to agent: ${message}`);
|
|
163
|
+
process.exit(1);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
//# sourceMappingURL=attach.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attach.js","sourceRoot":"","sources":["../../../src/commands/agent/attach.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAanC,wBAAgB,kBAAkB,IAAI,OAAO,CA8G5C"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { runModeCommand } from './mode.js';
|
|
3
|
+
import { runArchiveCommand } from './archive.js';
|
|
4
|
+
import { runLsCommand } from './ls.js';
|
|
5
|
+
import { runRunCommand } from './run.js';
|
|
6
|
+
import { runLogsCommand } from './logs.js';
|
|
7
|
+
import { runStopCommand } from './stop.js';
|
|
8
|
+
import { runSendCommand } from './send.js';
|
|
9
|
+
import { runInspectCommand } from './inspect.js';
|
|
10
|
+
import { runWaitCommand } from './wait.js';
|
|
11
|
+
import { runAttachCommand } from './attach.js';
|
|
12
|
+
import { withOutput } from '../../output/index.js';
|
|
13
|
+
export function createAgentCommand() {
|
|
14
|
+
const agent = new Command('agent').description('Manage agents (advanced operations)');
|
|
15
|
+
// Helper function to collect multiple option values into an array
|
|
16
|
+
const collectMultiple = (value, previous) => {
|
|
17
|
+
return previous.concat([value]);
|
|
18
|
+
};
|
|
19
|
+
// Primary agent commands (same as top-level)
|
|
20
|
+
agent
|
|
21
|
+
.command('ls')
|
|
22
|
+
.description('List agents. By default excludes archived agents.')
|
|
23
|
+
.option('-a, --all', 'Include archived agents')
|
|
24
|
+
.option('-g, --global', 'Legacy no-op (kept for compatibility)')
|
|
25
|
+
.option('--label <key=value>', 'Filter by label (can be used multiple times)', collectMultiple, [])
|
|
26
|
+
.option('--json', 'Output in JSON format')
|
|
27
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
28
|
+
.action(withOutput(runLsCommand));
|
|
29
|
+
agent
|
|
30
|
+
.command('run')
|
|
31
|
+
.description('Create and start an agent with a task')
|
|
32
|
+
.argument('<prompt>', 'The task/prompt for the agent')
|
|
33
|
+
.option('-d, --detach', 'Run in background (detached)')
|
|
34
|
+
.option('--name <name>', 'Assign a name/title to the agent')
|
|
35
|
+
.option('--provider <provider>', 'Agent provider: claude | codex | opencode', 'claude')
|
|
36
|
+
.option('--model <model>', 'Model to use (e.g., claude-sonnet-4-20250514, claude-3-5-haiku-20241022)')
|
|
37
|
+
.option('--mode <mode>', 'Provider-specific mode (e.g., plan, default, bypass)')
|
|
38
|
+
.option('--cwd <path>', 'Working directory (default: current)')
|
|
39
|
+
.option('--label <key=value>', 'Add label(s) to the agent (can be used multiple times)', collectMultiple, [])
|
|
40
|
+
.option('--ui', 'Mark as UI agent (equivalent to --label ui=true)')
|
|
41
|
+
.option('--json', 'Output in JSON format')
|
|
42
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
43
|
+
.action(withOutput(runRunCommand));
|
|
44
|
+
agent
|
|
45
|
+
.command('attach')
|
|
46
|
+
.description("Attach to a running agent's output stream")
|
|
47
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
48
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
49
|
+
.action(runAttachCommand);
|
|
50
|
+
agent
|
|
51
|
+
.command('logs')
|
|
52
|
+
.description('View agent activity/timeline')
|
|
53
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
54
|
+
.option('-f, --follow', 'Follow log output (streaming)')
|
|
55
|
+
.option('--tail <n>', 'Show last n entries')
|
|
56
|
+
.option('--filter <type>', 'Filter by event type (tools, text, errors, permissions)')
|
|
57
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
58
|
+
.action(runLogsCommand);
|
|
59
|
+
agent
|
|
60
|
+
.command('stop')
|
|
61
|
+
.description('Stop an agent (cancel if running, then terminate)')
|
|
62
|
+
.argument('[id]', 'Agent ID (or prefix) - optional if --all or --cwd specified')
|
|
63
|
+
.option('--all', 'Stop all agents')
|
|
64
|
+
.option('--cwd <path>', 'Stop all agents in directory')
|
|
65
|
+
.option('--json', 'Output in JSON format')
|
|
66
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
67
|
+
.action(withOutput(runStopCommand));
|
|
68
|
+
agent
|
|
69
|
+
.command('send')
|
|
70
|
+
.description('Send a message/task to an existing agent')
|
|
71
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
72
|
+
.argument('<prompt>', 'The message to send')
|
|
73
|
+
.option('--no-wait', 'Return immediately without waiting for completion')
|
|
74
|
+
.option('--json', 'Output in JSON format')
|
|
75
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
76
|
+
.action(withOutput(runSendCommand));
|
|
77
|
+
agent
|
|
78
|
+
.command('inspect')
|
|
79
|
+
.description('Show detailed information about an agent')
|
|
80
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
81
|
+
.option('--json', 'Output in JSON format')
|
|
82
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
83
|
+
.action(withOutput(runInspectCommand));
|
|
84
|
+
agent
|
|
85
|
+
.command('wait')
|
|
86
|
+
.description('Wait for an agent to become idle')
|
|
87
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
88
|
+
.option('--timeout <seconds>', 'Maximum wait time (default: 600)')
|
|
89
|
+
.option('--json', 'Output in JSON format')
|
|
90
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
91
|
+
.action(withOutput(runWaitCommand));
|
|
92
|
+
// Advanced agent commands (less common operations)
|
|
93
|
+
agent
|
|
94
|
+
.command('mode')
|
|
95
|
+
.description("Change an agent's operational mode")
|
|
96
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
97
|
+
.argument('[mode]', 'Mode to set (required unless --list)')
|
|
98
|
+
.option('--list', 'List available modes for this agent')
|
|
99
|
+
.option('--json', 'Output in JSON format')
|
|
100
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
101
|
+
.action(withOutput(runModeCommand));
|
|
102
|
+
agent
|
|
103
|
+
.command('archive')
|
|
104
|
+
.description('Archive an agent (soft-delete)')
|
|
105
|
+
.argument('<id>', 'Agent ID (or prefix)')
|
|
106
|
+
.option('--force', 'Force archive running agent')
|
|
107
|
+
.option('--json', 'Output in JSON format')
|
|
108
|
+
.option('--host <host>', 'Daemon host:port (default: localhost:6767)')
|
|
109
|
+
.action(withOutput(runArchiveCommand));
|
|
110
|
+
return agent;
|
|
111
|
+
}
|
|
112
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/commands/agent/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Command } from 'commander';
|
|
2
|
+
import type { CommandOptions, ListResult } from '../../output/index.js';
|
|
3
|
+
/** Key-value row for table display */
|
|
4
|
+
interface InspectRow {
|
|
5
|
+
key: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}
|
|
8
|
+
export type AgentInspectResult = ListResult<InspectRow>;
|
|
9
|
+
export interface AgentInspectOptions extends CommandOptions {
|
|
10
|
+
host?: string;
|
|
11
|
+
}
|
|
12
|
+
export declare function runInspectCommand(agentIdArg: string, options: AgentInspectOptions, _command: Command): Promise<AgentInspectResult>;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=inspect.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/inspect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAGxC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAA8B,MAAM,uBAAuB,CAAA;AAqCnG,sCAAsC;AACtC,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AA0ID,MAAM,MAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;AAEvD,MAAM,WAAW,mBAAoB,SAAQ,cAAc;IACzD,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAsB,iBAAiB,CACrC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,EAC5B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,kBAAkB,CAAC,CA6D7B"}
|