const stream = thaliq.agent.stream('Configura la transferencia');
for await (const event of stream) {
if (event.type === 'content.delta') process.stdout.write(event.delta);
}
if (stream.pendingAction) {
const action = stream.pendingAction;
let actionResponse;
switch (action.type) {
case 'consent':
case 'confirm':
const accepted = await askUser(action.message);
actionResponse = accepted
? ActionResponseBuilder.accept(action.instructionId)
: ActionResponseBuilder.reject(action.instructionId);
break;
case 'select':
// action.options = [{ label: 'Wire', value: 'wire' }, ...]
const selected = await showOptions(action.options!);
actionResponse = ActionResponseBuilder.select(action.instructionId, selected);
break;
case 'form':
// action.fields = [{ name: 'amount', label: 'Monto', type: 'number' }, ...]
const values = await showForm(action.fields!);
actionResponse = ActionResponseBuilder.submitForm(action.instructionId, values);
break;
}
const resumed = thaliq.agent.respondToAction({
conversationId: stream.conversationId!,
originalMessage: 'Configura la transferencia',
actionResponse,
});
// Usa finalResponse() para obtener texto + metadata en una sola lectura
const response = await resumed.finalResponse();
console.log(response.message);
console.log(response.insights);
}