Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions apps/cli/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,9 @@ scope run list
# Submit a run
scope run submit -s config/scenarios/hello-world.yaml -w coder-acp-copilot

# Submit a task directly
scope run submit --task "Create a hello-world app" -w coder-acp-copilot

# Get run details
scope run get -i <run-id>

Expand All @@ -91,6 +94,9 @@ scope --help
scope run --help
```

`--task` is the name of the direct task option. The former `--message` option
remains accepted as a hidden compatibility alias; `-m` still works.

### Provider secrets

`scope secret` manages provider credentials (GitHub tokens, Anthropic keys,
Expand Down
1 change: 1 addition & 0 deletions apps/cli/src/__snapshots__/cli-commands.test.ts.snap
Original file line number Diff line number Diff line change
Expand Up @@ -844,6 +844,7 @@ exports[`CLI command registration > full command tree matches snapshot 1`] = `
"--resources",
"--scenario",
"--skills",
"--task",
"--traits",
"--url",
"--worker",
Expand Down
2 changes: 1 addition & 1 deletion apps/cli/src/commands/run.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ describe("run submit gates", () => {
await program.parseAsync([
"run",
"submit",
"--message",
"--task",
"Implement the task",
"--worker",
"dynamic-worker",
Expand Down
7 changes: 4 additions & 3 deletions apps/cli/src/commands/run.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ run
.option("-s, --scenario <path>", "Path to scenario YAML file (provides task + criteria)")
.option("-p, --persona <path>", "Path to persona YAML file (provides judge personality)")
.option("-t, --traits <path>", "Path to traits.yaml (default: config/traits.yaml next to persona)")
.option("-m, --message <message>", "Message/task to process (overrides scenario task)")
.option("-m, --task <task>", "Task to process (overrides scenario task)")
.addOption(new Option("--message <message>", "Deprecated alias for --task.").hideHelp())
.option("-w, --worker <worker>", "Registered worker ID (see `scope agent list`)")
.option("-c, --criteria <criteria...>", "Evaluation criteria (overrides scenario criteria)")
.option("--max-iterations <number>", "Max judge iterations for multi-turn mode", parseInt)
Expand Down Expand Up @@ -105,7 +106,7 @@ run

try {
// Resolve scenario + persona YAML if provided
let message = options.message;
let message = options.task ?? options.message;
let criteria = options.criteria;
let personaInstructions: string | undefined;
let personaObj: Record<string, unknown> | undefined;
Expand All @@ -126,7 +127,7 @@ run
}

if (!message) {
console.error(errorText("Error: --message or --scenario is required"));
console.error(errorText("Error: --task or --scenario is required"));
process.exit(1);
}

Expand Down