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:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user