fix: keep AgentRun output flags local

This commit is contained in:
Codex
2026-06-11 06:00:56 +00:00
parent c70edd39a6
commit b1dcbb51ef
2 changed files with 68 additions and 12 deletions
+40
View File
@@ -0,0 +1,40 @@
import { describe, expect, test } from "bun:test";
import { stripAgentRunResourceWrapperArgs } from "./agentrun";
describe("AgentRun resource bridge argv", () => {
test("does not forward UniDesk output flags to create task prompt argv", () => {
expect(stripAgentRunResourceWrapperArgs([
"--aipod",
"Artificer",
"--prompt-stdin",
"-o",
"json",
"--idempotency-key",
"case-262",
"--dry-run",
])).toEqual([
"--aipod",
"Artificer",
"--prompt-stdin",
"--idempotency-key",
"case-262",
"--dry-run",
]);
});
test("strips wrapper display flags while preserving official apply arguments", () => {
expect(stripAgentRunResourceWrapperArgs([
"-f",
"-",
"--output=yaml",
"--raw",
"--full",
"--full-text",
"--dry-run",
])).toEqual([
"-f",
"-",
"--dry-run",
]);
});
});
+28 -12
View File
@@ -272,26 +272,42 @@ async function runAgentRunResourceCommand(config: UniDeskConfig, verb: AgentRunR
if (verb === "explain") return renderedCliResult(true, "agentrun explain", agentRunExplain(action ?? "task"));
const resourceArgs = action === undefined ? actionArgs : [action, ...actionArgs];
const options = parseResourceOptions(resourceArgs);
const bridgeActionArgs = stripAgentRunResourceWrapperArgs(actionArgs);
const command = `agentrun ${canonicalArgs.join(" ")}`.trim();
try {
if (verb === "get") return await resourceGet(config, command, action, actionArgs, options);
if (verb === "describe") return await resourceDescribe(config, command, action, actionArgs, options);
if (verb === "events") return await resourceEvents(config, command, action, actionArgs, options);
if (verb === "logs") return await resourceLogs(config, command, action, actionArgs, options);
if (verb === "result") return await resourceResult(config, command, action, actionArgs, options);
if (verb === "ack") return await resourceAck(config, command, action, actionArgs, options);
if (verb === "cancel") return await resourceCancel(config, command, action, actionArgs, options);
if (verb === "dispatch") return await resourceDispatch(config, command, action, actionArgs, options);
if (verb === "create") return await resourceCreate(config, command, action, actionArgs, options);
if (verb === "apply") return await resourceApply(config, command, actionArgs, options);
if (verb === "steer") return await resourceSessionPromptCommand(config, command, "steer", action, actionArgs, options);
if (verb === "send") return await resourceSessionPromptCommand(config, command, "turn", action, actionArgs, options);
if (verb === "get") return await resourceGet(config, command, action, bridgeActionArgs, options);
if (verb === "describe") return await resourceDescribe(config, command, action, bridgeActionArgs, options);
if (verb === "events") return await resourceEvents(config, command, action, bridgeActionArgs, options);
if (verb === "logs") return await resourceLogs(config, command, action, bridgeActionArgs, options);
if (verb === "result") return await resourceResult(config, command, action, bridgeActionArgs, options);
if (verb === "ack") return await resourceAck(config, command, action, bridgeActionArgs, options);
if (verb === "cancel") return await resourceCancel(config, command, action, bridgeActionArgs, options);
if (verb === "dispatch") return await resourceDispatch(config, command, action, bridgeActionArgs, options);
if (verb === "create") return await resourceCreate(config, command, action, bridgeActionArgs, options);
if (verb === "apply") return await resourceApply(config, command, bridgeActionArgs, options);
if (verb === "steer") return await resourceSessionPromptCommand(config, command, "steer", action, bridgeActionArgs, options);
if (verb === "send") return await resourceSessionPromptCommand(config, command, "turn", action, bridgeActionArgs, options);
} catch (error) {
return renderedCliResult(false, command, `Error: ${error instanceof Error ? error.message : String(error)}`);
}
return renderedCliResult(false, command, `Unsupported AgentRun resource command. Try: bun scripts/cli.ts agentrun --help`);
}
export function stripAgentRunResourceWrapperArgs(args: string[]): string[] {
const result: string[] = [];
for (let index = 0; index < args.length; index += 1) {
const arg = args[index] ?? "";
if (arg === "-o" || arg === "--output") {
index += 1;
continue;
}
if (arg.startsWith("--output=") || arg.startsWith("-o=")) continue;
if (arg === "--full" || arg === "--raw" || arg === "--debug" || arg === "--full-text") continue;
result.push(arg);
}
return result;
}
function parseResourceOptions(args: string[]): AgentRunResourceOptions {
const options: AgentRunResourceOptions = {
output: "human",