summaryrefslogtreecommitdiffhomepage
path: root/packages/cli/src/main.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/cli/src/main.ts')
-rw-r--r--packages/cli/src/main.ts19
1 files changed, 15 insertions, 4 deletions
diff --git a/packages/cli/src/main.ts b/packages/cli/src/main.ts
index 9dfc317..cba0de7 100644
--- a/packages/cli/src/main.ts
+++ b/packages/cli/src/main.ts
@@ -24,12 +24,12 @@ import { extractLastText, formatConversationList, renderEvent } from "./render.j
const USAGE = `Usage:
dispatch models [--server <url>]
- dispatch list [<prefix>] [--status <active|idle|closed>] [--all] [--server <url>]
+ dispatch list [<prefix>] [--status <active|idle|closed>] [--workspace <id>] [--all] [--server <url>]
dispatch stop <conversationId> [--server <url>]
dispatch compact <conversationId> [--server <url>]
dispatch read <conversationId> [--server <url>]
dispatch open <conversationId> [--server <url>]
- dispatch send <conversationId> --text "..." [--queue] [--open] [--cwd <dir>] [--effort <level>] [--workspace <id>] [--server <url>]
+ dispatch send <conversationId> --text "..." [--file <path>] [--queue] [--open] [--cwd <dir>] [--effort <level>] [--workspace <id>] [--server <url>]
dispatch <modelName> --text "..." [--file <path>] [--cwd <dir>] [--conversation <id>] [--effort <level>] [--workspace <id>] [--server <url>] [--show-reasoning] [--open]
dispatch --help
@@ -61,6 +61,7 @@ async function main(): Promise<void> {
server: parsed.server,
...(parsed.query !== undefined && { query: parsed.query }),
...(status !== undefined && { status }),
+ ...(parsed.workspaceId !== undefined && { workspaceId: parsed.workspaceId }),
},
);
const table = formatConversationList(result.conversations, Date.now());
@@ -156,10 +157,20 @@ async function main(): Promise<void> {
process.stdout.write(`Signaled frontend to open ${conversationId}\n`);
}
+ let fileContent: string | undefined;
+ if (parsed.file) {
+ fileContent = await readFile(parsed.file, "utf-8");
+ }
+ const message = composeMessage({
+ ...(parsed.text !== undefined && { text: parsed.text }),
+ ...(parsed.file !== undefined && { file: parsed.file }),
+ ...(fileContent !== undefined && { fileContent }),
+ });
+
if (parsed.queue) {
const queued = await enqueueMessage(
{ fetchImpl: globalThis.fetch },
- { server: parsed.server, conversationId, text: parsed.text },
+ { server: parsed.server, conversationId, text: message },
);
const line = queued.startedTurn
? `Started turn for ${conversationId}`
@@ -168,7 +179,7 @@ async function main(): Promise<void> {
} else {
const request = {
conversationId,
- message: parsed.text,
+ message,
...(parsed.cwd !== undefined && { cwd: parsed.cwd }),
...(parsed.reasoningEffort !== undefined && { reasoningEffort: parsed.reasoningEffort }),
...(parsed.workspaceId !== undefined && { workspaceId: parsed.workspaceId }),