fix(10-02): update downstream code for batched answers API

- Update resumeAgentInputSchema: prompt → answers (Record<string, string>)
- Update tRPC router to pass answers map
- Update CLI to accept JSON or single answer (fallback to q1 key)
- Update E2E tests for new resume signature
This commit is contained in:
Lukas May
2026-01-31 18:03:00 +01:00
parent a9e46a2843
commit 2c41e52029
5 changed files with 65 additions and 19 deletions

View File

@@ -193,14 +193,29 @@ export function createCli(serverHandler?: (port?: number) => Promise<void>): Com
}
});
// cw agent resume <name> <response>
// cw agent resume <name> <answers>
// Accepts either JSON object {"q1": "answer1", "q2": "answer2"} or single answer
agentCommand
.command('resume <name> <response>')
.description('Resume an agent that is waiting for input')
.action(async (name: string, response: string) => {
.command('resume <name> <answers>')
.description('Resume an agent with answers (JSON object or single answer string)')
.action(async (name: string, answersInput: string) => {
try {
const client = createDefaultTrpcClient();
const result = await client.resumeAgent.mutate({ name, prompt: response });
// Try parsing as JSON first, fallback to single answer format
let answers: Record<string, string>;
try {
const parsed = JSON.parse(answersInput);
if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
answers = parsed;
} else {
// Not a valid object, treat as single answer
answers = { q1: answersInput };
}
} catch {
// Not valid JSON, treat as single answer with default question ID
answers = { q1: answersInput };
}
const result = await client.resumeAgent.mutate({ name, answers });
console.log(`Agent '${result.name}' resumed`);
} catch (error) {
console.error('Failed to resume agent:', (error as Error).message);