@seawork/cli 1.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/bin/seawork +3 -0
- package/dist/classify.d.ts +19 -0
- package/dist/classify.d.ts.map +1 -0
- package/dist/classify.js +49 -0
- package/dist/classify.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +103 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/agent/archive.d.ts +18 -0
- package/dist/commands/agent/archive.d.ts.map +1 -0
- package/dist/commands/agent/archive.js +102 -0
- package/dist/commands/agent/archive.js.map +1 -0
- package/dist/commands/agent/attach.d.ts +11 -0
- package/dist/commands/agent/attach.d.ts.map +1 -0
- package/dist/commands/agent/attach.js +158 -0
- package/dist/commands/agent/attach.js.map +1 -0
- package/dist/commands/agent/delete.d.ts +15 -0
- package/dist/commands/agent/delete.d.ts.map +1 -0
- package/dist/commands/agent/delete.js +99 -0
- package/dist/commands/agent/delete.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 +46 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/agent/inspect.d.ts +15 -0
- package/dist/commands/agent/inspect.d.ts.map +1 -0
- package/dist/commands/agent/inspect.js +207 -0
- package/dist/commands/agent/inspect.js.map +1 -0
- package/dist/commands/agent/logs.d.ts +16 -0
- package/dist/commands/agent/logs.d.ts.map +1 -0
- package/dist/commands/agent/logs.js +172 -0
- package/dist/commands/agent/logs.js.map +1 -0
- package/dist/commands/agent/ls.d.ts +38 -0
- package/dist/commands/agent/ls.d.ts.map +1 -0
- package/dist/commands/agent/ls.js +191 -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 +100 -0
- package/dist/commands/agent/mode.js.map +1 -0
- package/dist/commands/agent/reload.d.ts +15 -0
- package/dist/commands/agent/reload.d.ts.map +1 -0
- package/dist/commands/agent/reload.js +75 -0
- package/dist/commands/agent/reload.js.map +1 -0
- package/dist/commands/agent/run.d.ts +47 -0
- package/dist/commands/agent/run.d.ts.map +1 -0
- package/dist/commands/agent/run.js +431 -0
- package/dist/commands/agent/run.js.map +1 -0
- package/dist/commands/agent/send.d.ts +19 -0
- package/dist/commands/agent/send.d.ts.map +1 -0
- package/dist/commands/agent/send.js +217 -0
- package/dist/commands/agent/send.js.map +1 -0
- package/dist/commands/agent/stop.d.ts +17 -0
- package/dist/commands/agent/stop.d.ts.map +1 -0
- package/dist/commands/agent/stop.js +107 -0
- package/dist/commands/agent/stop.js.map +1 -0
- package/dist/commands/agent/update.d.ts +18 -0
- package/dist/commands/agent/update.d.ts.map +1 -0
- package/dist/commands/agent/update.js +139 -0
- package/dist/commands/agent/update.js.map +1 -0
- package/dist/commands/agent/wait.d.ts +17 -0
- package/dist/commands/agent/wait.d.ts.map +1 -0
- package/dist/commands/agent/wait.js +164 -0
- package/dist/commands/agent/wait.js.map +1 -0
- package/dist/commands/chat/create.d.ts +9 -0
- package/dist/commands/chat/create.d.ts.map +1 -0
- package/dist/commands/chat/create.js +23 -0
- package/dist/commands/chat/create.js.map +1 -0
- package/dist/commands/chat/delete.d.ts +6 -0
- package/dist/commands/chat/delete.d.ts.map +1 -0
- package/dist/commands/chat/delete.js +20 -0
- package/dist/commands/chat/delete.js.map +1 -0
- package/dist/commands/chat/index.d.ts +3 -0
- package/dist/commands/chat/index.d.ts.map +1 -0
- package/dist/commands/chat/index.js +47 -0
- package/dist/commands/chat/index.js.map +1 -0
- package/dist/commands/chat/inspect.d.ts +6 -0
- package/dist/commands/chat/inspect.d.ts.map +1 -0
- package/dist/commands/chat/inspect.js +20 -0
- package/dist/commands/chat/inspect.js.map +1 -0
- package/dist/commands/chat/ls.d.ts +6 -0
- package/dist/commands/chat/ls.d.ts.map +1 -0
- package/dist/commands/chat/ls.js +20 -0
- package/dist/commands/chat/ls.js.map +1 -0
- package/dist/commands/chat/post.d.ts +9 -0
- package/dist/commands/chat/post.d.ts.map +1 -0
- package/dist/commands/chat/post.js +28 -0
- package/dist/commands/chat/post.js.map +1 -0
- package/dist/commands/chat/read.d.ts +11 -0
- package/dist/commands/chat/read.d.ts.map +1 -0
- package/dist/commands/chat/read.js +40 -0
- package/dist/commands/chat/read.js.map +1 -0
- package/dist/commands/chat/schema.d.ts +36 -0
- package/dist/commands/chat/schema.d.ts.map +1 -0
- package/dist/commands/chat/schema.js +81 -0
- package/dist/commands/chat/schema.js.map +1 -0
- package/dist/commands/chat/shared.d.ts +16 -0
- package/dist/commands/chat/shared.d.ts.map +1 -0
- package/dist/commands/chat/shared.js +108 -0
- package/dist/commands/chat/shared.js.map +1 -0
- package/dist/commands/chat/wait.d.ts +9 -0
- package/dist/commands/chat/wait.d.ts.map +1 -0
- package/dist/commands/chat/wait.js +30 -0
- package/dist/commands/chat/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 +34 -0
- package/dist/commands/daemon/index.js.map +1 -0
- package/dist/commands/daemon/local-daemon.d.ts +54 -0
- package/dist/commands/daemon/local-daemon.d.ts.map +1 -0
- package/dist/commands/daemon/local-daemon.js +400 -0
- package/dist/commands/daemon/local-daemon.js.map +1 -0
- package/dist/commands/daemon/pair.d.ts +9 -0
- package/dist/commands/daemon/pair.d.ts.map +1 -0
- package/dist/commands/daemon/pair.js +42 -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 +98 -0
- package/dist/commands/daemon/restart.js.map +1 -0
- package/dist/commands/daemon/runtime-toolchain.d.ts +6 -0
- package/dist/commands/daemon/runtime-toolchain.d.ts.map +1 -0
- package/dist/commands/daemon/runtime-toolchain.js +102 -0
- package/dist/commands/daemon/runtime-toolchain.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 +49 -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 +269 -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/loop/index.d.ts +3 -0
- package/dist/commands/loop/index.d.ts.map +1 -0
- package/dist/commands/loop/index.js +18 -0
- package/dist/commands/loop/index.js.map +1 -0
- package/dist/commands/loop/inspect.d.ts +13 -0
- package/dist/commands/loop/inspect.d.ts.map +1 -0
- package/dist/commands/loop/inspect.js +100 -0
- package/dist/commands/loop/inspect.js.map +1 -0
- package/dist/commands/loop/logs.d.ts +8 -0
- package/dist/commands/loop/logs.d.ts.map +1 -0
- package/dist/commands/loop/logs.js +69 -0
- package/dist/commands/loop/logs.js.map +1 -0
- package/dist/commands/loop/ls.d.ts +18 -0
- package/dist/commands/loop/ls.d.ts.map +1 -0
- package/dist/commands/loop/ls.js +62 -0
- package/dist/commands/loop/ls.js.map +1 -0
- package/dist/commands/loop/run.d.ts +26 -0
- package/dist/commands/loop/run.d.ts.map +1 -0
- package/dist/commands/loop/run.js +116 -0
- package/dist/commands/loop/run.js.map +1 -0
- package/dist/commands/loop/stop.d.ts +15 -0
- package/dist/commands/loop/stop.d.ts.map +1 -0
- package/dist/commands/loop/stop.js +56 -0
- package/dist/commands/loop/stop.js.map +1 -0
- package/dist/commands/loop/types.d.ts +134 -0
- package/dist/commands/loop/types.d.ts.map +1 -0
- package/dist/commands/loop/types.js +2 -0
- package/dist/commands/loop/types.js.map +1 -0
- package/dist/commands/onboard.d.ts +10 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +374 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/open.d.ts +2 -0
- package/dist/commands/open.d.ts.map +1 -0
- package/dist/commands/open.js +82 -0
- package/dist/commands/open.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 +134 -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 +106 -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 +27 -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 +66 -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 +16 -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 +38 -0
- package/dist/commands/provider/ls.js.map +1 -0
- package/dist/commands/provider/models.d.ts +20 -0
- package/dist/commands/provider/models.d.ts.map +1 -0
- package/dist/commands/provider/models.js +53 -0
- package/dist/commands/provider/models.js.map +1 -0
- package/dist/commands/schedule/create.d.ts +13 -0
- package/dist/commands/schedule/create.d.ts.map +1 -0
- package/dist/commands/schedule/create.js +32 -0
- package/dist/commands/schedule/create.js.map +1 -0
- package/dist/commands/schedule/delete.d.ts +10 -0
- package/dist/commands/schedule/delete.d.ts.map +1 -0
- package/dist/commands/schedule/delete.js +32 -0
- package/dist/commands/schedule/delete.js.map +1 -0
- package/dist/commands/schedule/index.d.ts +3 -0
- package/dist/commands/schedule/index.d.ts.map +1 -0
- package/dist/commands/schedule/index.js +37 -0
- package/dist/commands/schedule/index.js.map +1 -0
- package/dist/commands/schedule/inspect.d.ts +6 -0
- package/dist/commands/schedule/inspect.d.ts.map +1 -0
- package/dist/commands/schedule/inspect.js +24 -0
- package/dist/commands/schedule/inspect.js.map +1 -0
- package/dist/commands/schedule/logs.d.ts +6 -0
- package/dist/commands/schedule/logs.d.ts.map +1 -0
- package/dist/commands/schedule/logs.js +23 -0
- package/dist/commands/schedule/logs.js.map +1 -0
- package/dist/commands/schedule/ls.d.ts +5 -0
- package/dist/commands/schedule/ls.d.ts.map +1 -0
- package/dist/commands/schedule/ls.js +23 -0
- package/dist/commands/schedule/ls.js.map +1 -0
- package/dist/commands/schedule/pause.d.ts +5 -0
- package/dist/commands/schedule/pause.d.ts.map +1 -0
- package/dist/commands/schedule/pause.js +23 -0
- package/dist/commands/schedule/pause.js.map +1 -0
- package/dist/commands/schedule/resume.d.ts +5 -0
- package/dist/commands/schedule/resume.d.ts.map +1 -0
- package/dist/commands/schedule/resume.js +23 -0
- package/dist/commands/schedule/resume.js.map +1 -0
- package/dist/commands/schedule/schema.d.ts +21 -0
- package/dist/commands/schedule/schema.d.ts.map +1 -0
- package/dist/commands/schedule/schema.js +67 -0
- package/dist/commands/schedule/schema.js.map +1 -0
- package/dist/commands/schedule/shared.d.ts +33 -0
- package/dist/commands/schedule/shared.d.ts.map +1 -0
- package/dist/commands/schedule/shared.js +148 -0
- package/dist/commands/schedule/shared.js.map +1 -0
- package/dist/commands/schedule/types.d.ts +137 -0
- package/dist/commands/schedule/types.d.ts.map +1 -0
- package/dist/commands/schedule/types.js +2 -0
- package/dist/commands/schedule/types.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 +5 -0
- package/dist/commands/speech/index.js.map +1 -0
- package/dist/commands/terminal/capture.d.ts +10 -0
- package/dist/commands/terminal/capture.d.ts.map +1 -0
- package/dist/commands/terminal/capture.js +68 -0
- package/dist/commands/terminal/capture.js.map +1 -0
- package/dist/commands/terminal/create.d.ts +10 -0
- package/dist/commands/terminal/create.d.ts.map +1 -0
- package/dist/commands/terminal/create.js +28 -0
- package/dist/commands/terminal/create.js.map +1 -0
- package/dist/commands/terminal/index.d.ts +3 -0
- package/dist/commands/terminal/index.d.ts.map +1 -0
- package/dist/commands/terminal/index.js +43 -0
- package/dist/commands/terminal/index.js.map +1 -0
- package/dist/commands/terminal/kill.d.ts +6 -0
- package/dist/commands/terminal/kill.d.ts.map +1 -0
- package/dist/commands/terminal/kill.js +36 -0
- package/dist/commands/terminal/kill.js.map +1 -0
- package/dist/commands/terminal/ls.d.ts +10 -0
- package/dist/commands/terminal/ls.d.ts.map +1 -0
- package/dist/commands/terminal/ls.js +21 -0
- package/dist/commands/terminal/ls.js.map +1 -0
- package/dist/commands/terminal/schema.d.ts +18 -0
- package/dist/commands/terminal/schema.d.ts.map +1 -0
- package/dist/commands/terminal/schema.js +23 -0
- package/dist/commands/terminal/schema.js.map +1 -0
- package/dist/commands/terminal/send-keys.d.ts +7 -0
- package/dist/commands/terminal/send-keys.d.ts.map +1 -0
- package/dist/commands/terminal/send-keys.js +76 -0
- package/dist/commands/terminal/send-keys.js.map +1 -0
- package/dist/commands/terminal/shared.d.ts +12 -0
- package/dist/commands/terminal/shared.d.ts.map +1 -0
- package/dist/commands/terminal/shared.js +61 -0
- package/dist/commands/terminal/shared.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 +99 -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 +15 -0
- package/dist/commands/worktree/index.js.map +1 -0
- package/dist/commands/worktree/ls.d.ts +19 -0
- package/dist/commands/worktree/ls.d.ts.map +1 -0
- package/dist/commands/worktree/ls.js +97 -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 +24 -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 +83 -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 +73 -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 +87 -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-id.d.ts +2 -0
- package/dist/utils/client-id.d.ts.map +1 -0
- package/dist/utils/client-id.js +37 -0
- package/dist/utils/client-id.js.map +1 -0
- package/dist/utils/client.d.ts +47 -0
- package/dist/utils/client.d.ts.map +1 -0
- package/dist/utils/client.js +230 -0
- package/dist/utils/client.js.map +1 -0
- package/dist/utils/command-options.d.ts +6 -0
- package/dist/utils/command-options.d.ts.map +1 -0
- package/dist/utils/command-options.js +17 -0
- package/dist/utils/command-options.js.map +1 -0
- package/dist/utils/duration.d.ts +7 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +38 -0
- package/dist/utils/duration.js.map +1 -0
- package/dist/utils/errors.d.ts +5 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +10 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/paths.d.ts +12 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +22 -0
- package/dist/utils/paths.js.map +1 -0
- package/dist/utils/timeline.d.ts +8 -0
- package/dist/utils/timeline.d.ts.map +1 -0
- package/dist/utils/timeline.js +9 -0
- package/dist/utils/timeline.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
import { collectMultiple } from "../../utils/command-options.js";
|
|
2
|
+
import { connectToDaemon, getDaemonHost } from "../../utils/client.js";
|
|
3
|
+
import { readFile } from "node:fs/promises";
|
|
4
|
+
import { extname, resolve } from "node:path";
|
|
5
|
+
/** Schema for agent send output */
|
|
6
|
+
export const agentSendSchema = {
|
|
7
|
+
idField: "agentId",
|
|
8
|
+
columns: [
|
|
9
|
+
{ header: "AGENT ID", field: "agentId", width: 12 },
|
|
10
|
+
{ header: "STATUS", field: "status", width: 12 },
|
|
11
|
+
{ header: "MESSAGE", field: "message", width: 40 },
|
|
12
|
+
],
|
|
13
|
+
};
|
|
14
|
+
export function addSendOptions(cmd) {
|
|
15
|
+
return cmd
|
|
16
|
+
.description("Send a message/task to an existing agent")
|
|
17
|
+
.argument("<id>", "Agent ID (or prefix)")
|
|
18
|
+
.argument("[prompt]", "The message to send")
|
|
19
|
+
.option("--prompt <text>", "Provide the message inline as a flag")
|
|
20
|
+
.option("--prompt-file <path>", "Read the message from a UTF-8 text file")
|
|
21
|
+
.option("--image <path>", "Attach image(s) to the message", collectMultiple, [])
|
|
22
|
+
.option("--no-wait", "Return immediately without waiting for completion");
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Read image files and convert them to base64 data URIs
|
|
26
|
+
*/
|
|
27
|
+
async function readImageFiles(imagePaths) {
|
|
28
|
+
const images = [];
|
|
29
|
+
for (const path of imagePaths) {
|
|
30
|
+
try {
|
|
31
|
+
const buffer = await readFile(path);
|
|
32
|
+
const ext = extname(path).toLowerCase();
|
|
33
|
+
// Determine media type from extension
|
|
34
|
+
let mimeType = "image/jpeg";
|
|
35
|
+
switch (ext) {
|
|
36
|
+
case ".png":
|
|
37
|
+
mimeType = "image/png";
|
|
38
|
+
break;
|
|
39
|
+
case ".jpg":
|
|
40
|
+
case ".jpeg":
|
|
41
|
+
mimeType = "image/jpeg";
|
|
42
|
+
break;
|
|
43
|
+
case ".gif":
|
|
44
|
+
mimeType = "image/gif";
|
|
45
|
+
break;
|
|
46
|
+
case ".webp":
|
|
47
|
+
mimeType = "image/webp";
|
|
48
|
+
break;
|
|
49
|
+
default:
|
|
50
|
+
// Default to jpeg for unknown types
|
|
51
|
+
mimeType = "image/jpeg";
|
|
52
|
+
}
|
|
53
|
+
const data = buffer.toString("base64");
|
|
54
|
+
images.push({
|
|
55
|
+
data,
|
|
56
|
+
mimeType,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
catch (err) {
|
|
60
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
61
|
+
const error = {
|
|
62
|
+
code: "IMAGE_READ_ERROR",
|
|
63
|
+
message: `Failed to read image file: ${path}`,
|
|
64
|
+
details: message,
|
|
65
|
+
};
|
|
66
|
+
throw error;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return images;
|
|
70
|
+
}
|
|
71
|
+
async function resolvePromptInput(options) {
|
|
72
|
+
const promptText = options.promptArgument?.trim();
|
|
73
|
+
const promptOptionText = options.promptOption?.trim();
|
|
74
|
+
const promptFilePath = options.promptFile?.trim();
|
|
75
|
+
const providedSourceCount = [promptText, promptOptionText, promptFilePath].filter(Boolean).length;
|
|
76
|
+
if (providedSourceCount > 1) {
|
|
77
|
+
const error = {
|
|
78
|
+
code: "CONFLICTING_PROMPT_INPUT",
|
|
79
|
+
message: "Provide exactly one of prompt argument, --prompt, or --prompt-file",
|
|
80
|
+
};
|
|
81
|
+
throw error;
|
|
82
|
+
}
|
|
83
|
+
if (promptText) {
|
|
84
|
+
return options.promptArgument;
|
|
85
|
+
}
|
|
86
|
+
if (promptOptionText) {
|
|
87
|
+
return options.promptOption;
|
|
88
|
+
}
|
|
89
|
+
if (!promptFilePath) {
|
|
90
|
+
const error = {
|
|
91
|
+
code: "MISSING_PROMPT",
|
|
92
|
+
message: "A prompt is required",
|
|
93
|
+
details: "Usage: seawork agent send [options] <id> [prompt] | --prompt <text> | --prompt-file <path>",
|
|
94
|
+
};
|
|
95
|
+
throw error;
|
|
96
|
+
}
|
|
97
|
+
try {
|
|
98
|
+
return await readFile(resolve(promptFilePath), "utf8");
|
|
99
|
+
}
|
|
100
|
+
catch (err) {
|
|
101
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
102
|
+
const error = {
|
|
103
|
+
code: "PROMPT_FILE_READ_ERROR",
|
|
104
|
+
message: `Failed to read prompt file: ${promptFilePath}`,
|
|
105
|
+
details: message,
|
|
106
|
+
};
|
|
107
|
+
throw error;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
export async function runSendCommand(agentIdArg, prompt, options, _command) {
|
|
111
|
+
const host = getDaemonHost({ host: options.host });
|
|
112
|
+
// Validate arguments
|
|
113
|
+
if (!agentIdArg || agentIdArg.trim().length === 0) {
|
|
114
|
+
const error = {
|
|
115
|
+
code: "MISSING_AGENT_ID",
|
|
116
|
+
message: "Agent ID is required",
|
|
117
|
+
details: "Usage: seawork agent send [options] <id> [prompt]",
|
|
118
|
+
};
|
|
119
|
+
throw error;
|
|
120
|
+
}
|
|
121
|
+
const promptInput = await resolvePromptInput({
|
|
122
|
+
promptArgument: prompt,
|
|
123
|
+
promptOption: options.prompt,
|
|
124
|
+
promptFile: options.promptFile,
|
|
125
|
+
});
|
|
126
|
+
let client;
|
|
127
|
+
try {
|
|
128
|
+
client = await connectToDaemon({ host: options.host });
|
|
129
|
+
}
|
|
130
|
+
catch (err) {
|
|
131
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
132
|
+
const error = {
|
|
133
|
+
code: "DAEMON_NOT_RUNNING",
|
|
134
|
+
message: `Cannot connect to daemon at ${host}: ${message}`,
|
|
135
|
+
details: "Start the daemon with: seawork daemon start",
|
|
136
|
+
};
|
|
137
|
+
throw error;
|
|
138
|
+
}
|
|
139
|
+
try {
|
|
140
|
+
// Read image files if provided
|
|
141
|
+
const images = options.image && options.image.length > 0 ? await readImageFiles(options.image) : undefined;
|
|
142
|
+
// Send the message
|
|
143
|
+
await client.sendAgentMessage(agentIdArg, promptInput, { images });
|
|
144
|
+
// If --no-wait, return immediately
|
|
145
|
+
if (options.wait === false) {
|
|
146
|
+
await client.close();
|
|
147
|
+
return {
|
|
148
|
+
type: "single",
|
|
149
|
+
data: {
|
|
150
|
+
agentId: agentIdArg,
|
|
151
|
+
status: "sent",
|
|
152
|
+
message: "Message sent, not waiting for completion",
|
|
153
|
+
},
|
|
154
|
+
schema: agentSendSchema,
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
// Wait for agent to finish
|
|
158
|
+
const state = await client.waitForFinish(agentIdArg, 600000); // 10 minute timeout
|
|
159
|
+
await client.close();
|
|
160
|
+
if (state.status === "timeout") {
|
|
161
|
+
return {
|
|
162
|
+
type: "single",
|
|
163
|
+
data: {
|
|
164
|
+
agentId: state.final?.id ?? agentIdArg,
|
|
165
|
+
status: "timeout",
|
|
166
|
+
message: "Timed out waiting for agent to finish",
|
|
167
|
+
},
|
|
168
|
+
schema: agentSendSchema,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
if (state.status === "permission") {
|
|
172
|
+
return {
|
|
173
|
+
type: "single",
|
|
174
|
+
data: {
|
|
175
|
+
agentId: state.final?.id ?? agentIdArg,
|
|
176
|
+
status: "permission",
|
|
177
|
+
message: "Agent is waiting for permission",
|
|
178
|
+
},
|
|
179
|
+
schema: agentSendSchema,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
if (state.status === "error") {
|
|
183
|
+
return {
|
|
184
|
+
type: "single",
|
|
185
|
+
data: {
|
|
186
|
+
agentId: state.final?.id ?? agentIdArg,
|
|
187
|
+
status: "error",
|
|
188
|
+
message: state.error ?? "Agent finished with error",
|
|
189
|
+
},
|
|
190
|
+
schema: agentSendSchema,
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
return {
|
|
194
|
+
type: "single",
|
|
195
|
+
data: {
|
|
196
|
+
agentId: state.final?.id ?? agentIdArg,
|
|
197
|
+
status: "completed",
|
|
198
|
+
message: "Agent completed processing the message",
|
|
199
|
+
},
|
|
200
|
+
schema: agentSendSchema,
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
catch (err) {
|
|
204
|
+
await client.close().catch(() => { });
|
|
205
|
+
// Re-throw CommandError as-is
|
|
206
|
+
if (err && typeof err === "object" && "code" in err) {
|
|
207
|
+
throw err;
|
|
208
|
+
}
|
|
209
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
210
|
+
const error = {
|
|
211
|
+
code: "SEND_FAILED",
|
|
212
|
+
message: `Failed to send message: ${message}`,
|
|
213
|
+
};
|
|
214
|
+
throw error;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
//# sourceMappingURL=send.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../src/commands/agent/send.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import type { CommandOptions, SingleResult, OutputSchema } from "../../output/index.js";
|
|
3
|
+
/** Result type for agent stop command */
|
|
4
|
+
export interface StopResult {
|
|
5
|
+
stoppedCount: number;
|
|
6
|
+
agentIds: string[];
|
|
7
|
+
}
|
|
8
|
+
/** Schema for stop command output */
|
|
9
|
+
export declare const stopSchema: OutputSchema<StopResult>;
|
|
10
|
+
export declare function addStopOptions(cmd: Command): Command;
|
|
11
|
+
export interface AgentStopOptions extends CommandOptions {
|
|
12
|
+
all?: boolean;
|
|
13
|
+
cwd?: string;
|
|
14
|
+
}
|
|
15
|
+
export type AgentStopResult = SingleResult<StopResult>;
|
|
16
|
+
export declare function runStopCommand(id: string | undefined, options: AgentStopOptions, _command: Command): Promise<AgentStopResult>;
|
|
17
|
+
//# sourceMappingURL=stop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/stop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAE/B,yCAAyC;AACzC,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,qCAAqC;AACrC,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,UAAU,CAI/C,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAMpD;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,eAAe,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;AAEvD,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,eAAe,CAAC,CA2F1B"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { connectToDaemon, getDaemonHost } from "../../utils/client.js";
|
|
2
|
+
import { isSameOrDescendantPath } from "../../utils/paths.js";
|
|
3
|
+
/** Schema for stop command output */
|
|
4
|
+
export const stopSchema = {
|
|
5
|
+
// For quiet mode, output the stopped agent IDs (one per line)
|
|
6
|
+
idField: (item) => item.agentIds.join("\n"),
|
|
7
|
+
columns: [{ header: "INTERRUPTED", field: "stoppedCount" }],
|
|
8
|
+
};
|
|
9
|
+
export function addStopOptions(cmd) {
|
|
10
|
+
return cmd
|
|
11
|
+
.description("Interrupt an agent if it is running (no-op for idle agents)")
|
|
12
|
+
.argument("[id]", "Agent ID (or prefix) - optional if --all or --cwd specified")
|
|
13
|
+
.option("--all", "Stop all agents")
|
|
14
|
+
.option("--cwd <path>", "Stop all agents in directory");
|
|
15
|
+
}
|
|
16
|
+
export async function runStopCommand(id, options, _command) {
|
|
17
|
+
const host = getDaemonHost({ host: options.host });
|
|
18
|
+
// Validate arguments - need either an id, --all, or --cwd
|
|
19
|
+
if (!id && !options.all && !options.cwd) {
|
|
20
|
+
const error = {
|
|
21
|
+
code: "MISSING_ARGUMENT",
|
|
22
|
+
message: "Agent ID required unless --all or --cwd is specified",
|
|
23
|
+
details: "Usage: seawork agent stop <id> | --all | --cwd <path>",
|
|
24
|
+
};
|
|
25
|
+
throw error;
|
|
26
|
+
}
|
|
27
|
+
let client;
|
|
28
|
+
try {
|
|
29
|
+
client = await connectToDaemon({ host: options.host });
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
33
|
+
const error = {
|
|
34
|
+
code: "DAEMON_NOT_RUNNING",
|
|
35
|
+
message: `Cannot connect to daemon at ${host}: ${message}`,
|
|
36
|
+
details: "Start the daemon with: seawork daemon start",
|
|
37
|
+
};
|
|
38
|
+
throw error;
|
|
39
|
+
}
|
|
40
|
+
try {
|
|
41
|
+
const fetchPayload = await client.fetchAgents({ filter: { includeArchived: true } });
|
|
42
|
+
let agents = fetchPayload.entries.map((entry) => entry.agent);
|
|
43
|
+
const stoppedIds = [];
|
|
44
|
+
if (options.all) {
|
|
45
|
+
// Stop all agents (not archived)
|
|
46
|
+
agents = agents.filter((a) => !a.archivedAt);
|
|
47
|
+
}
|
|
48
|
+
else if (options.cwd) {
|
|
49
|
+
// Stop agents in directory
|
|
50
|
+
agents = agents.filter((a) => {
|
|
51
|
+
if (a.archivedAt)
|
|
52
|
+
return false;
|
|
53
|
+
return isSameOrDescendantPath(options.cwd, a.cwd);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
else if (id) {
|
|
57
|
+
// Stop specific agent
|
|
58
|
+
const fetchResult = await client.fetchAgent(id);
|
|
59
|
+
if (!fetchResult) {
|
|
60
|
+
const error = {
|
|
61
|
+
code: "AGENT_NOT_FOUND",
|
|
62
|
+
message: `No agent found matching: ${id}`,
|
|
63
|
+
details: "Use `seawork ls` to list available agents",
|
|
64
|
+
};
|
|
65
|
+
throw error;
|
|
66
|
+
}
|
|
67
|
+
agents = [fetchResult.agent];
|
|
68
|
+
}
|
|
69
|
+
// Interrupt each running agent. Idle agents are a no-op.
|
|
70
|
+
for (const agent of agents) {
|
|
71
|
+
try {
|
|
72
|
+
if (agent.status === "running") {
|
|
73
|
+
await client.cancelAgent(agent.id);
|
|
74
|
+
stoppedIds.push(agent.id);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
// Continue interrupting other agents even if one fails
|
|
79
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
80
|
+
console.error(`Warning: Failed to stop agent ${agent.id.slice(0, 7)}: ${message}`);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
await client.close();
|
|
84
|
+
return {
|
|
85
|
+
type: "single",
|
|
86
|
+
data: {
|
|
87
|
+
stoppedCount: stoppedIds.length,
|
|
88
|
+
agentIds: stoppedIds,
|
|
89
|
+
},
|
|
90
|
+
schema: stopSchema,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
catch (err) {
|
|
94
|
+
await client.close().catch(() => { });
|
|
95
|
+
// Re-throw if it's already a CommandError
|
|
96
|
+
if (err && typeof err === "object" && "code" in err) {
|
|
97
|
+
throw err;
|
|
98
|
+
}
|
|
99
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
100
|
+
const error = {
|
|
101
|
+
code: "STOP_AGENT_FAILED",
|
|
102
|
+
message: `Failed to stop agent(s): ${message}`,
|
|
103
|
+
};
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=stop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stop.js","sourceRoot":"","sources":["../../../src/commands/agent/stop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Command } from "commander";
|
|
2
|
+
import type { CommandOptions, SingleResult, OutputSchema } from "../../output/index.js";
|
|
3
|
+
/** Result type for agent update command */
|
|
4
|
+
export interface AgentUpdateResult {
|
|
5
|
+
agentId: string;
|
|
6
|
+
name: string | null;
|
|
7
|
+
labels: string;
|
|
8
|
+
}
|
|
9
|
+
/** Schema for update command output */
|
|
10
|
+
export declare const updateSchema: OutputSchema<AgentUpdateResult>;
|
|
11
|
+
export interface AgentUpdateOptions extends CommandOptions {
|
|
12
|
+
name?: string;
|
|
13
|
+
label?: string[];
|
|
14
|
+
host?: string;
|
|
15
|
+
}
|
|
16
|
+
export type AgentUpdateCommandResult = SingleResult<AgentUpdateResult>;
|
|
17
|
+
export declare function runUpdateCommand(agentIdArg: string, options: AgentUpdateOptions, _command: Command): Promise<AgentUpdateCommandResult>;
|
|
18
|
+
//# sourceMappingURL=update.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/update.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAE/B,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uCAAuC;AACvC,eAAO,MAAM,YAAY,EAAE,YAAY,CAAC,iBAAiB,CAOxD,CAAC;AAEF,MAAM,WAAW,kBAAmB,SAAQ,cAAc;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,wBAAwB,GAAG,YAAY,CAAC,iBAAiB,CAAC,CAAC;AAmDvE,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,wBAAwB,CAAC,CA8FnC"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { connectToDaemon, getDaemonHost } from "../../utils/client.js";
|
|
2
|
+
/** Schema for update command output */
|
|
3
|
+
export const updateSchema = {
|
|
4
|
+
idField: "agentId",
|
|
5
|
+
columns: [
|
|
6
|
+
{ header: "AGENT ID", field: "agentId" },
|
|
7
|
+
{ header: "NAME", field: "name" },
|
|
8
|
+
{ header: "LABELS", field: "labels" },
|
|
9
|
+
],
|
|
10
|
+
};
|
|
11
|
+
function parseLabelOptions(labels) {
|
|
12
|
+
const parsed = {};
|
|
13
|
+
if (!labels) {
|
|
14
|
+
return parsed;
|
|
15
|
+
}
|
|
16
|
+
for (const rawLabel of labels) {
|
|
17
|
+
for (const segment of rawLabel.split(",")) {
|
|
18
|
+
const label = segment.trim();
|
|
19
|
+
if (!label) {
|
|
20
|
+
continue;
|
|
21
|
+
}
|
|
22
|
+
const eqIndex = label.indexOf("=");
|
|
23
|
+
if (eqIndex === -1) {
|
|
24
|
+
const error = {
|
|
25
|
+
code: "INVALID_LABEL",
|
|
26
|
+
message: `Invalid label format: ${label}`,
|
|
27
|
+
details: "Labels must be in key=value format",
|
|
28
|
+
};
|
|
29
|
+
throw error;
|
|
30
|
+
}
|
|
31
|
+
const key = label.slice(0, eqIndex).trim();
|
|
32
|
+
const value = label.slice(eqIndex + 1);
|
|
33
|
+
if (!key) {
|
|
34
|
+
const error = {
|
|
35
|
+
code: "INVALID_LABEL",
|
|
36
|
+
message: `Invalid label format: ${label}`,
|
|
37
|
+
details: "Labels must include a non-empty key in key=value format",
|
|
38
|
+
};
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
parsed[key] = value;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return parsed;
|
|
45
|
+
}
|
|
46
|
+
function formatLabels(labels) {
|
|
47
|
+
const entries = Object.entries(labels);
|
|
48
|
+
if (entries.length === 0) {
|
|
49
|
+
return "-";
|
|
50
|
+
}
|
|
51
|
+
return entries.map(([key, value]) => `${key}=${value}`).join(",");
|
|
52
|
+
}
|
|
53
|
+
export async function runUpdateCommand(agentIdArg, options, _command) {
|
|
54
|
+
const host = getDaemonHost({ host: options.host });
|
|
55
|
+
// Validate arguments
|
|
56
|
+
if (!agentIdArg || agentIdArg.trim().length === 0) {
|
|
57
|
+
const error = {
|
|
58
|
+
code: "MISSING_AGENT_ID",
|
|
59
|
+
message: "Agent ID is required",
|
|
60
|
+
details: "Usage: seawork agent update <id> [--name <name>] [--label <key=value>]",
|
|
61
|
+
};
|
|
62
|
+
throw error;
|
|
63
|
+
}
|
|
64
|
+
const name = options.name?.trim();
|
|
65
|
+
if (options.name !== undefined && !name) {
|
|
66
|
+
const error = {
|
|
67
|
+
code: "INVALID_NAME",
|
|
68
|
+
message: "Name cannot be empty",
|
|
69
|
+
details: "Use --name <name> with a non-empty value",
|
|
70
|
+
};
|
|
71
|
+
throw error;
|
|
72
|
+
}
|
|
73
|
+
const labels = parseLabelOptions(options.label);
|
|
74
|
+
if (!name && Object.keys(labels).length === 0) {
|
|
75
|
+
const error = {
|
|
76
|
+
code: "NO_CHANGES_PROVIDED",
|
|
77
|
+
message: "Nothing to update",
|
|
78
|
+
details: "Provide at least one of: --name <name>, --label <key=value>",
|
|
79
|
+
};
|
|
80
|
+
throw error;
|
|
81
|
+
}
|
|
82
|
+
let client;
|
|
83
|
+
try {
|
|
84
|
+
client = await connectToDaemon({ host: options.host });
|
|
85
|
+
}
|
|
86
|
+
catch (err) {
|
|
87
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
88
|
+
const error = {
|
|
89
|
+
code: "DAEMON_NOT_RUNNING",
|
|
90
|
+
message: `Cannot connect to daemon at ${host}: ${message}`,
|
|
91
|
+
details: "Start the daemon with: seawork daemon start",
|
|
92
|
+
};
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
try {
|
|
96
|
+
const fetchResult = await client.fetchAgent(agentIdArg);
|
|
97
|
+
if (!fetchResult) {
|
|
98
|
+
const error = {
|
|
99
|
+
code: "AGENT_NOT_FOUND",
|
|
100
|
+
message: `Agent not found: ${agentIdArg}`,
|
|
101
|
+
details: 'Use "seawork ls" to list available agents',
|
|
102
|
+
};
|
|
103
|
+
throw error;
|
|
104
|
+
}
|
|
105
|
+
const agentId = fetchResult.agent.id;
|
|
106
|
+
await client.updateAgent(agentId, {
|
|
107
|
+
...(name ? { name } : {}),
|
|
108
|
+
...(Object.keys(labels).length > 0 ? { labels } : {}),
|
|
109
|
+
});
|
|
110
|
+
const updatedResult = await client.fetchAgent(agentId);
|
|
111
|
+
if (!updatedResult) {
|
|
112
|
+
throw new Error(`Agent not found after update: ${agentId}`);
|
|
113
|
+
}
|
|
114
|
+
await client.close();
|
|
115
|
+
return {
|
|
116
|
+
type: "single",
|
|
117
|
+
data: {
|
|
118
|
+
agentId,
|
|
119
|
+
name: updatedResult.agent.title,
|
|
120
|
+
labels: formatLabels(updatedResult.agent.labels),
|
|
121
|
+
},
|
|
122
|
+
schema: updateSchema,
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
await client.close().catch(() => { });
|
|
127
|
+
// Re-throw CommandError as-is
|
|
128
|
+
if (err && typeof err === "object" && "code" in err) {
|
|
129
|
+
throw err;
|
|
130
|
+
}
|
|
131
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
132
|
+
const error = {
|
|
133
|
+
code: "UPDATE_FAILED",
|
|
134
|
+
message: `Failed to update agent: ${message}`,
|
|
135
|
+
};
|
|
136
|
+
throw error;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=update.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/commands/agent/update.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Command } from "commander";
|
|
2
|
+
import type { CommandOptions, SingleResult, OutputSchema } from "../../output/index.js";
|
|
3
|
+
/** Result type for agent wait command */
|
|
4
|
+
export interface AgentWaitResult {
|
|
5
|
+
agentId: string;
|
|
6
|
+
status: "idle" | "timeout" | "permission" | "error";
|
|
7
|
+
message: string;
|
|
8
|
+
}
|
|
9
|
+
/** Schema for agent wait output */
|
|
10
|
+
export declare const agentWaitSchema: OutputSchema<AgentWaitResult>;
|
|
11
|
+
export interface AgentWaitOptions extends CommandOptions {
|
|
12
|
+
timeout?: string;
|
|
13
|
+
host?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function addWaitOptions(cmd: Command): Command;
|
|
16
|
+
export declare function runWaitCommand(agentIdArg: string, options: AgentWaitOptions, _command: Command): Promise<SingleResult<AgentWaitResult>>;
|
|
17
|
+
//# sourceMappingURL=wait.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/wait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EACV,cAAc,EACd,YAAY,EACZ,YAAY,EAEb,MAAM,uBAAuB,CAAC;AAI/B,yCAAyC;AACzC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,OAAO,CAAC;IACpD,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mCAAmC;AACnC,eAAO,MAAM,eAAe,EAAE,YAAY,CAAC,eAAe,CAOzD,CAAC;AAEF,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAwBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAKpD;AAED,wBAAsB,cAAc,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,gBAAgB,EACzB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC,CA0IxC"}
|